All classes:
- dulwich.file.FileLocked
- dulwich.file._GitFile
- dulwich.config.CaseInsensitiveOrderedMultiDict
- dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView
- dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView
- dulwich.config.Config
- dulwich.config.ConfigDict
- dulwich.config.ConfigFile
- dulwich.config.StackedConfig
- dulwich.attrs.Pattern
- dulwich.attrs.GitAttributes
- dulwich.errors.ChecksumMismatch
- dulwich.errors.WrongObjectException
- dulwich.errors.NotCommitError
- dulwich.errors.NotTreeError
- dulwich.errors.NotTagError
- dulwich.errors.NotBlobError
- dulwich.errors.MissingCommitError
- dulwich.errors.ObjectMissing
- dulwich.errors.ApplyDeltaError
- dulwich.errors.NotGitRepository
- dulwich.errors.GitProtocolError
- dulwich.errors.SendPackError
- dulwich.errors.HangupException
- dulwich.errors.UnexpectedCommandError
- dulwich.errors.FileFormatException
- dulwich.errors.PackedRefsException
- dulwich.errors.ObjectFormatException
- dulwich.errors.NoIndexPresent
- dulwich.errors.CommitError
- dulwich.errors.RefFormatError
- dulwich.errors.HookError
- dulwich.errors.WorkingTreeModifiedError
- dulwich.objects.EmptyFileException
- dulwich.objects.FixedSha
- dulwich.objects.ShaFile
- dulwich.objects.Blob
- dulwich.objects.Tag
- dulwich.objects.TreeEntry
- dulwich.objects.SubmoduleEncountered
- dulwich.objects.Tree
- dulwich.objects.Commit
- dulwich.midx.MultiPackIndex
- dulwich.refs.SymrefLoop
- dulwich.refs.RefsContainer
- dulwich.refs.DictRefsContainer
- dulwich.refs.DiskRefsContainer
- dulwich.refs.locked_ref
- dulwich.refs.NamespacedRefsContainer
- dulwich.commit_graph.CommitGraphEntry
- dulwich.commit_graph.CommitGraphChunk
- dulwich.commit_graph.CommitGraph
- dulwich.diff_tree.TreeChange
- dulwich.diff_tree.RenameDetector
- dulwich.object_store.GraphWalker
- dulwich.object_store.ObjectReachabilityProvider
- dulwich.object_store.PackContainer
- dulwich.object_store.BaseObjectStore
- dulwich.object_store.PackCapableObjectStore
- dulwich.object_store.PackBasedObjectStore
- dulwich.object_store.DiskObjectStore
- dulwich.object_store.MemoryObjectStore
- dulwich.object_store.ObjectIterator
- dulwich.object_store.MissingObjectFinder
- dulwich.object_store.ObjectStoreGraphWalker
- dulwich.object_store.OverlayObjectStore
- dulwich.object_store.BucketBasedObjectStore
- dulwich.object_store.GraphTraversalReachability
- dulwich.object_store.BitmapReachability
- dulwich.bitmap.EWAHBitmap
- dulwich.bitmap.BitmapEntry
- dulwich.bitmap.PackBitmap
- dulwich.lru_cache._LRUNode
- dulwich.lru_cache.LRUCache
- dulwich.lru_cache.LRUSizeCache
- dulwich.pack.UnresolvedDeltas
- dulwich.pack.ObjectContainer
- dulwich.pack.PackedObjectContainer
- dulwich.pack.UnpackedObjectStream
- dulwich.pack.PackFileDisappeared
- dulwich.pack.UnpackedObject
- dulwich.pack.PackIndex
- dulwich.pack.MemoryPackIndex
- dulwich.pack.FilePackIndex
- dulwich.pack.PackIndex1
- dulwich.pack.PackIndex2
- dulwich.pack.PackIndex3
- dulwich.pack.PackStreamReader
- dulwich.pack.PackStreamCopier
- dulwich.pack.PackData
- dulwich.pack.DeltaChainIterator
- dulwich.pack.UnpackedObjectIterator
- dulwich.pack.PackIndexer
- dulwich.pack.PackInflater
- dulwich.pack.SHA1Reader
- dulwich.pack.SHA1Writer
- dulwich.pack.PackChunkGenerator
- dulwich.pack.Pack
- dulwich.protocol.Protocol
- dulwich.protocol.ReceivableProtocol
- dulwich.protocol.BufferedPktLineWriter
- dulwich.protocol.PktLineParser
- dulwich.index.Stage
- dulwich.index.SerializedIndexEntry
- dulwich.index.IndexExtension
- dulwich.index.TreeExtension
- dulwich.index.ResolveUndoExtension
- dulwich.index.UntrackedExtension
- dulwich.index.SparseDirExtension
- dulwich.index.IndexEntry
- dulwich.index.ConflictedIndexEntry
- dulwich.index.UnmergedEntries
- dulwich.index.UnsupportedIndexFormat
- dulwich.index.Index
- dulwich.index.WindowsSymlinkPermissionError
- dulwich.index.locked_index
- dulwich.notes.NotesTree
- dulwich.notes.Notes
- dulwich.graph.WorkList
- dulwich.merge_drivers.MergeDriver
- dulwich.merge_drivers.ProcessMergeDriver
- dulwich.merge_drivers.MergeDriverRegistry
- dulwich.merge.MergeConflict
- dulwich.merge.Merger
- dulwich.objectspec.AmbiguousShortId
- dulwich.rebase.RebaseError
- dulwich.rebase.RebaseConflict
- dulwich.rebase.RebaseAbort
- dulwich.rebase.RebaseTodoCommand
- dulwich.rebase.RebaseTodoEntry
- dulwich.rebase.RebaseTodo
- dulwich.rebase.RebaseStateManager
- dulwich.rebase.DiskRebaseStateManager
- dulwich.rebase.RebaseState
- dulwich.rebase.MemoryRebaseStateManager
- dulwich.rebase.Rebaser
- dulwich.walk.WalkEntry
- dulwich.walk._CommitTimeQueue
- dulwich.walk.Walker
- dulwich.trailers.Trailer
- dulwich.worktree.WorkTreeInfo
- dulwich.worktree.WorkTreeContainer
- dulwich.worktree.WorkTree
- dulwich.hooks.Hook
- dulwich.hooks.ShellHook
- dulwich.hooks.PreCommitShellHook
- dulwich.hooks.PostCommitShellHook
- dulwich.hooks.CommitMsgShellHook
- dulwich.hooks.PostReceiveShellHook
- dulwich.repo.InvalidUserIdentity
- dulwich.repo.DefaultIdentityNotFound
- dulwich.repo.ParentsProvider
- dulwich.repo.BaseRepo
- dulwich.repo.UnsupportedVersion
- dulwich.repo.UnsupportedExtension
- dulwich.repo.Repo
- dulwich.reftable.RefValue
- dulwich.reftable.RefUpdate
- dulwich.reftable.RefRecord
- dulwich.reftable.LogBlock
- dulwich.reftable.RefBlock
- dulwich.reftable.ReftableWriter
- dulwich.reftable.ReftableReader
- dulwich.reftable._ReftableBatchContext
- dulwich.reftable.ReftableRefsContainer
- dulwich.repo.MemoryRepo
- dulwich.filters.FilterError
- dulwich.filters.FilterDriver
- dulwich.filters.CompositeFilterDriver
- dulwich.filters.ProcessFilterDriver
- dulwich.filters.FilterContext
- dulwich.filters.FilterRegistry
- dulwich.lfs.LFSAction
- dulwich.lfs.LFSErrorInfo
- dulwich.lfs.LFSBatchObject
- dulwich.lfs.LFSBatchResponse
- dulwich.lfs.LFSStore
- dulwich.lfs.LFSPointer
- dulwich.lfs.LFSFilterDriver
- dulwich.lfs.LFSClient
- dulwich.lfs.HTTPLFSClient
- dulwich.client.HTTPResponse
- dulwich.client.GeneratePackDataFunc
- dulwich.client.DetermineWantsFunc
- dulwich.bundle.PackDataLike
- dulwich.bundle.Bundle
- dulwich.bundle.create_bundle_from_repo._BundlePackData
- dulwich.client.InvalidWants
- dulwich.client.HTTPUnauthorized
- dulwich.client.HTTPProxyUnauthorized
- dulwich.client.ReportStatusParser
- dulwich.client._DeprecatedDictProxy
- dulwich.client.FetchPackResult
- dulwich.client.LsRemoteResult
- dulwich.client.SendPackResult
- dulwich.client._v1ReceivePackHeader
- dulwich.client.GitClient
- dulwich.client.TraditionalGitClient
- dulwich.client.TCPGitClient
- dulwich.client.SubprocessWrapper
- dulwich.client.SubprocessGitClient
- dulwich.client.LocalGitClient
- dulwich.client.BundleClient
- dulwich.client.SSHVendor
- dulwich.client.StrangeHostname
- dulwich.client.SubprocessSSHVendor
- dulwich.client.PLinkSSHVendor
- dulwich.client.SSHGitClient
- dulwich.client.AbstractHttpGitClient
- dulwich.dumb.DumbHTTPObjectStore
- dulwich.dumb.DumbRemoteHTTPRepo
- dulwich.client.Urllib3HttpGitClient
- dulwich.lfs.FileLFSClient
- dulwich.lfs.LFSError
- dulwich.patch.DiffAlgorithmNotAvailable
- dulwich.patch.MailinfoResult
- dulwich.line_ending.LineEndingFilter
- dulwich.line_ending.BlobNormalizer
- dulwich.line_ending.TreeBlobNormalizer
- dulwich.filters.FilterBlobNormalizer
- dulwich.log_utils._NullHandler
- dulwich.archive.ChunkedBytesIO
- dulwich.server.Backend
- dulwich.server.BackendRepo
- dulwich.server.DictBackend
- dulwich.server.FileSystemBackend
- dulwich.server.Handler
- dulwich.server.PackHandler
- dulwich.server.UploadPackHandler
- dulwich.server.AckGraphWalkerImpl
- dulwich.server._ProtocolGraphWalker
- dulwich.server.SingleAckGraphWalkerImpl
- dulwich.server.MultiAckGraphWalkerImpl
- dulwich.server.MultiAckDetailedGraphWalkerImpl
- dulwich.server.ReceivePackHandler
- dulwich.server.UploadArchiveHandler
- dulwich.server.TCPGitRequestHandler
- dulwich.server.TCPGitServer
- dulwich.whitespace.WhitespaceChecker
- dulwich.ignore.Pattern
- dulwich.ignore.IgnoreFilter
- dulwich.ignore.IgnoreFilterStack
- dulwich.ignore.IgnoreFilterManager
- dulwich.sparse_patterns.SparseCheckoutConflictError
- dulwich.sparse_patterns.BlobNotFoundError
- dulwich.filter_branch.CommitData
- dulwich.filter_branch.CommitFilter
- dulwich.gc.GCStats
- dulwich.rerere.RerereCache
- dulwich.maintenance.MaintenanceSchedule
- dulwich.maintenance.MaintenanceResult
- dulwich.maintenance.MaintenanceTask
- dulwich.maintenance.GcTask
- dulwich.maintenance.CommitGraphTask
- dulwich.maintenance.LooseObjectsTask
- dulwich.maintenance.IncrementalRepackTask
- dulwich.maintenance.PackRefsTask
- dulwich.maintenance.PrefetchTask
- dulwich.bisect.BisectState
- dulwich.porcelain.TransportKwargs
- dulwich.porcelain.CountObjectsResult
- dulwich.porcelain.NoneStream
- dulwich.porcelain.Error
- dulwich.porcelain.RemoteExists
- dulwich.porcelain.TimezoneFormatError
- dulwich.porcelain.CheckoutError
- dulwich.porcelain.DivergedBranches
- dulwich.diff.ColorizedDiffStream
- dulwich.porcelain.show_commit._StreamWrapper
- dulwich.web.StartResponse
- dulwich.web.HandlerConstructor
- dulwich.web.ChunkReader
- dulwich.web._LengthLimitedFile
- dulwich.web.HTTPGitRequest
- dulwich.web.HTTPGitApplication
- dulwich.web.GunzipFilter
- dulwich.web.LimitedInputFilter
- dulwich.web.ServerHandlerLogger
- dulwich.web.WSGIRequestHandlerLogger
- dulwich.web.WSGIServerLogger
- dulwich.mailmap.Mailmap
- dulwich.stash.CommitKwargs
- dulwich.stash.Stash
- dulwich.cli.AutoFlushTextIOWrapper
- dulwich.cli.AutoFlushBinaryIOWrapper
- dulwich.cli.CommitMessageError
- dulwich.cli.PagerBuffer
- dulwich.cli.Pager
- dulwich.cli._StreamContextAdapter
- dulwich.cli.Command
- dulwich.cli.cmd_archive
- dulwich.cli.cmd_add
- dulwich.cli.cmd_annotate
- dulwich.cli.cmd_blame
- dulwich.cli.cmd_rm
- dulwich.cli.cmd_mv
- dulwich.cli.cmd_fetch_pack
- dulwich.cli.cmd_fetch
- dulwich.cli.cmd_for_each_ref
- dulwich.cli.cmd_fsck
- dulwich.cli.cmd_log
- dulwich.cli.cmd_diff
- dulwich.cli.cmd_dump_pack
- dulwich.cli.cmd_dump_index
- dulwich.cli.cmd_interpret_trailers
- dulwich.cli.cmd_stripspace
- dulwich.cli.cmd_column
- dulwich.cli.cmd_init
- dulwich.cli.cmd_clone
- dulwich.cli.cmd_config
- dulwich.cli.cmd_commit
- dulwich.cli.cmd_commit_tree
- dulwich.cli.cmd_update_server_info
- dulwich.cli.cmd_symbolic_ref
- dulwich.cli.cmd_pack_refs
- dulwich.cli.cmd_var
- dulwich.cli.cmd_show
- dulwich.cli.cmd_show_ref
- dulwich.cli.cmd_show_branch
- dulwich.cli.cmd_diff_tree
- dulwich.cli.cmd_rev_list
- dulwich.cli.cmd_tag
- dulwich.cli.cmd_verify_commit
- dulwich.cli.cmd_verify_tag
- dulwich.cli.cmd_repack
- dulwich.cli.cmd_reflog
- dulwich.cli.cmd_reset
- dulwich.cli.cmd_revert
- dulwich.cli.cmd_daemon
- dulwich.cli.cmd_web_daemon
- dulwich.cli.cmd_write_tree
- dulwich.cli.cmd_receive_pack
- dulwich.cli.cmd_upload_pack
- dulwich.cli.cmd_shortlog
- dulwich.cli.cmd_status
- dulwich.cli.cmd_ls_remote
- dulwich.cli.cmd_ls_tree
- dulwich.cli.cmd_pack_objects
- dulwich.cli.cmd_unpack_objects
- dulwich.cli.cmd_prune
- dulwich.cli.cmd_pull
- dulwich.cli.cmd_push
- dulwich.cli.cmd_remote_add
- dulwich.cli.SuperCommand
- dulwich.cli.cmd_remote
- dulwich.cli.cmd_submodule_list
- dulwich.cli.cmd_submodule_init
- dulwich.cli.cmd_submodule_add
- dulwich.cli.cmd_submodule_update
- dulwich.cli.cmd_submodule
- dulwich.cli.cmd_check_ignore
- dulwich.cli.cmd_check_mailmap
- dulwich.cli.cmd_branch
- dulwich.cli.cmd_checkout
- dulwich.cli.cmd_restore
- dulwich.cli.cmd_switch
- dulwich.cli.cmd_stash_list
- dulwich.cli.cmd_stash_push
- dulwich.cli.cmd_stash_pop
- dulwich.cli.cmd_bisect
- dulwich.cli.cmd_stash
- dulwich.cli.cmd_ls_files
- dulwich.cli.cmd_describe
- dulwich.cli.cmd_diagnose
- dulwich.cli.cmd_merge
- dulwich.cli.cmd_merge_base
- dulwich.cli.cmd_notes_add
- dulwich.cli.cmd_notes_show
- dulwich.cli.cmd_notes_remove
- dulwich.cli.cmd_notes_list
- dulwich.cli.cmd_notes
- dulwich.cli.cmd_replace_list
- dulwich.cli.cmd_replace_delete
- dulwich.cli.cmd_replace
- dulwich.cli.cmd_cherry
- dulwich.cli.cmd_cherry_pick
- dulwich.cli.cmd_merge_tree
- dulwich.cli.cmd_gc
- dulwich.cli.cmd_maintenance
- dulwich.cli.cmd_grep
- dulwich.cli.cmd_count_objects
- dulwich.cli.cmd_rebase
- dulwich.cli.cmd_filter_branch
- dulwich.cli.cmd_lfs
- dulwich.cli.cmd_help
- dulwich.cli.cmd_format_patch
- dulwich.cli.cmd_mailsplit
- dulwich.cli.cmd_mailinfo
- dulwich.cli.cmd_bundle
- dulwich.cli.cmd_worktree_add
- dulwich.cli.cmd_worktree_list
- dulwich.cli.cmd_worktree_remove
- dulwich.cli.cmd_worktree_prune
- dulwich.cli.cmd_worktree_lock
- dulwich.cli.cmd_worktree_unlock
- dulwich.cli.cmd_worktree_move
- dulwich.cli.cmd_worktree_repair
- dulwich.cli.cmd_worktree
- dulwich.cli.cmd_rerere
- dulwich.lfs_server.LFSRequestHandler
- dulwich.lfs_server.LFSServer
- dulwich.fastexport.GitFastExporter
- dulwich.fastexport.GitImportProcessor
- dulwich.cloud.gcs.GcsObjectStore
- dulwich.contrib.paramiko_vendor._ParamikoWrapper
- dulwich.contrib.paramiko_vendor.ParamikoSSHVendor
- dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder
- dulwich.contrib.swift.PackInfoMissingObjectFinder
- dulwich.contrib.swift.SwiftException
- dulwich.contrib.swift.SwiftConnector
- dulwich.contrib.swift.SwiftPackReader
- dulwich.contrib.swift.SwiftPackData
- dulwich.contrib.swift.SwiftPack
- dulwich.contrib.swift.SwiftObjectStore
- dulwich.contrib.swift.SwiftInfoRefsContainer
- dulwich.contrib.swift.SwiftRepo
- dulwich.contrib.swift.SwiftSystemBackend
- dulwich.contrib.requests_vendor.RequestsHttpGitClient
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: '...dulwich.fuzzing.fuzz-targets.fuzz_configfile'
    functionSourceFile: '...dulwich.fuzzing.fuzz-targets.fuzz_configfile'
    functionUses: 0
    functionsReached:
    - '...dulwich.fuzzing.fuzz-targets.fuzz_configfile.main'
    - atheris.instrument_imports
    - 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.instrument_imports
    functionSourceFile: atheris
    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:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 13
    functionName: '...dulwich.fuzzing.fuzz-targets.fuzz_configfile.TestOneInput'
    functionSourceFile: '...dulwich.fuzzing.fuzz-targets.fuzz_configfile'
    functionUses: 0
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - dulwich.config._check_section_name
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - ret._handle_include_directive
    - <builtin>.super
    - io.BytesIO
    - <builtin>.set
    - ret.extend
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - value.endswith
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - test_utils.is_expected_exception
    - line.startswith
    - <builtin>.bytes
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO
    functionSourceFile: io
    functionUses: 239
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 4
    IfCount: 12
    argCount: 8
    argDefaultValues: []
    argNames:
    - cls
    - f
    - config_dir
    - included_paths
    - include_depth
    - max_include_depth
    - file_opener
    - condition_matchers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 944
    functionName: dulwich.config.ConfigFile.from_file
    functionSourceFile: dulwich.config
    functionUses: 320
    functionsReached:
    - dulwich.config._is_line_continuation
    - setting.strip
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - dulwich.config._check_section_name
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - ret._handle_include_directive
    - <builtin>.super
    - <builtin>.set
    - ret.extend
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - value.endswith
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    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: test_utils.is_expected_exception
    functionSourceFile: test_utils
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: '...dulwich.fuzzing.fuzz-targets.fuzz_configfile.main'
    functionSourceFile: '...dulwich.fuzzing.fuzz-targets.fuzz_configfile'
    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: dulwich
    functionSourceFile: dulwich
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - typing.ParamSpec
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.ParamSpec
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.TypeVar
    functionSourceFile: typing
    functionUses: 10
    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 0x7febadea0910>
    - <ast.Constant object at 0x7febadea0ee0>
    argNames:
    - since
    - remove_in
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: dulwich.replace_me
    functionSourceFile: dulwich
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: dulwich.replace_me.decorator
    functionSourceFile: dulwich
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - 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: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 268
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: dulwich.replace_me.decorator._wrapped_func
    functionSourceFile: dulwich
    functionUses: 0
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.warn
    functionSourceFile: warnings
    functionUses: 47
    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: dulwich.config
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - typing.TypeVar
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.getLogger
    functionSourceFile: logging
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf817220>
    argNames:
    - path
    - pattern
    - ignorecase
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: dulwich.config._match_gitdir_pattern
    functionSourceFile: dulwich.config
    functionUses: 3
    functionsReached:
    - path_str.replace
    - pattern_str.endswith
    - <builtin>.len
    - pattern_str.replace
    - fnmatch.fnmatch
    - pattern_str.startswith
    - pattern_str.lower
    - pattern.decode
    - path_str.startswith
    - path.decode
    - path_str.lower
    - path_str.endswith
    - pattern_str.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.decode
    functionSourceFile: <builtin>
    functionUses: 329
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_str.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: pattern_str.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: path_str.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern_str.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern_str.startswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern_str.endswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_str.endswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_str.startswith
    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: pattern_str.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 999
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fnmatch.fnmatch
    functionSourceFile: fnmatch
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - value
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 147
    functionName: dulwich.config.match_glob_pattern
    functionSourceFile: dulwich.config
    functionUses: 6
    functionsReached:
    - re.escape
    - pattern_escaped.replace
    - <builtin>.bool
    - re.match
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.escape
    functionSourceFile: re
    functionUses: 60
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern_escaped.replace
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.match
    functionSourceFile: re
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - key
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 170
    functionName: dulwich.config.lower_key
    functionSourceFile: dulwich.config
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - first.lower
    - key.lower
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 1006
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.lower
    functionSourceFile: <builtin>
    functionUses: 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: first.lower
    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:
    - <ast.Constant object at 0x7febaf33c250>
    argNames:
    - self
    - default_factory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.__init__
    functionSourceFile: dulwich.config
    functionUses: 6
    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 0x7febaf33cdc0>
    - <ast.Constant object at 0x7febaf33c490>
    argNames:
    - cls
    - dict_in
    - default_factory
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 220
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.make
    functionSourceFile: dulwich.config
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - dulwich.config.CaseInsensitiveOrderedMultiDict.__init__
    - dict_in.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dict_in.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 253
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.__len__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.len
    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: 257
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.keys
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView.__init__
    - seen.add
    - <builtin>.len
    - dulwich.config.CaseInsensitiveOrderedMultiDict.set
    - unique_keys.append
    - <builtin>.isinstance
    - first.lower
    - key.lower
    - dulwich.config.lower_key
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 328
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.set
    functionSourceFile: dulwich.config
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    - first.lower
    - key.lower
    - dulwich.config.lower_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: seen.add
    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: unique_keys.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - keys
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 271
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView.__init__
    functionSourceFile: dulwich.config
    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: 274
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView.__contains__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 277
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView.__iter__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.iter
    functionSourceFile: <builtin>
    functionUses: 409
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 280
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView.__len__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 285
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.items
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - mapping
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 292
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__init__
    functionSourceFile: dulwich.config
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 295
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__iter__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 298
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__len__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 301
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__contains__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 95
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 309
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.__iter__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - seen.add
    - <builtin>.len
    - dulwich.config.CaseInsensitiveOrderedMultiDict.set
    - <builtin>.isinstance
    - first.lower
    - key.lower
    - dulwich.config.lower_key
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 319
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.values
    functionSourceFile: dulwich.config
    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
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 323
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.__setitem__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    - first.lower
    - key.lower
    - dulwich.config.lower_key
    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: 2
    functionLinenumber: 341
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.__delitem__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.list
    - <builtin>.len
    - <builtin>.enumerate
    - <builtin>.isinstance
    - first.lower
    - <builtin>.reversed
    - key.lower
    - dulwich.config.lower_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: <builtin>.enumerate
    functionSourceFile: <builtin>
    functionUses: 495
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 247
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.reversed
    functionSourceFile: <builtin>
    functionUses: 100
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 353
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.__getitem__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    - first.lower
    - key.lower
    - dulwich.config.lower_key
    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 0x7febadab4790>
    argNames:
    - default
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 361
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.get
    functionSourceFile: dulwich.config
    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
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 381
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.get_all
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    - first.lower
    - key.lower
    - dulwich.config.lower_key
    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 0x7febaeda82b0>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 395
    functionName: dulwich.config.CaseInsensitiveOrderedMultiDict.setdefault
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - dulwich.config.CaseInsensitiveOrderedMultiDict.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 433
    functionName: dulwich.config.Config.get
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 446
    functionName: dulwich.config.Config.get_multivar
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.config.Config
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.overload
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf936c10>
    argNames:
    - self
    - section
    - name
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 467
    functionName: dulwich.config.Config.get_boolean
    functionSourceFile: dulwich.config
    functionUses: 315
    functionsReached:
    - <builtin>.isinstance
    - backend.get
    - value.lower
    - dulwich.config.StackedConfig.get
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1481
    functionName: dulwich.config.StackedConfig.get
    functionSourceFile: dulwich.config
    functionUses: 326
    functionsReached:
    - <builtin>.isinstance
    - backend.get
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.lower
    functionSourceFile: <builtin>
    functionUses: 322
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 491
    functionName: dulwich.config.Config.set
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - section
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 504
    functionName: dulwich.config.Config.items
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 514
    functionName: dulwich.config.Config.sections
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 521
    functionName: dulwich.config.Config.has_section
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - section_dict.set
    - subsection.encode
    - dulwich.config.ConfigDict._check_section_and_name
    - seen.add
    - value.encode
    - <builtin>.hasattr
    - dulwich.config.StackedConfig.set
    - <builtin>.tuple
    - backend.sections
    - dulwich.config.StackedConfig.sections
    - name.encode
    - <builtin>.isinstance
    - dulwich.config.ConfigDict.set
    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: 1510
    functionName: dulwich.config.StackedConfig.sections
    functionSourceFile: dulwich.config
    functionUses: 1
    functionsReached:
    - section_dict.set
    - subsection.encode
    - dulwich.config.ConfigDict._check_section_and_name
    - seen.add
    - value.encode
    - <builtin>.hasattr
    - dulwich.config.StackedConfig.set
    - <builtin>.tuple
    - backend.sections
    - name.encode
    - <builtin>.isinstance
    - dulwich.config.ConfigDict.set
    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 0x7febaf859a60>
    - <ast.Constant object at 0x7febaf859700>
    argNames:
    - self
    - values
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 535
    functionName: dulwich.config.ConfigDict.__init__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - sys.getdefaultencoding
    - dulwich.config.CaseInsensitiveOrderedMultiDict.__init__
    - dulwich.config.CaseInsensitiveOrderedMultiDict.make
    - dict_in.items
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.getdefaultencoding
    functionSourceFile: sys
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 551
    functionName: dulwich.config.ConfigDict.__repr__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 555
    functionName: dulwich.config.ConfigDict.__eq__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 559
    functionName: dulwich.config.ConfigDict.__getitem__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 567
    functionName: dulwich.config.ConfigDict.__setitem__
    functionSourceFile: dulwich.config
    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: 573
    functionName: dulwich.config.ConfigDict.__delitem__
    functionSourceFile: dulwich.config
    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: 581
    functionName: dulwich.config.ConfigDict.__iter__
    functionSourceFile: dulwich.config
    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: 585
    functionName: dulwich.config.ConfigDict.__len__
    functionSourceFile: dulwich.config
    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: 589
    functionName: dulwich.config.ConfigDict.keys
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 594
    functionName: dulwich.config.ConfigDict._parse_setting
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - name.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 601
    functionName: dulwich.config.ConfigDict._check_section_and_name
    functionSourceFile: dulwich.config
    functionUses: 315
    functionsReached:
    - <builtin>.isinstance
    - subsection.encode
    - name.encode
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subsection.encode
    functionSourceFile: <builtin>
    functionUses: 316
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 326
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.encode
    functionSourceFile: <builtin>
    functionUses: 324
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 621
    functionName: dulwich.config.ConfigDict.get_multivar
    functionSourceFile: dulwich.config
    functionUses: 8
    functionsReached:
    - subsection.encode
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.len
    - <builtin>.tuple
    - name.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 641
    functionName: dulwich.config.ConfigDict.get
    functionSourceFile: dulwich.config
    functionUses: 301
    functionsReached:
    - subsection.encode
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.len
    - <builtin>.tuple
    - name.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 668
    functionName: dulwich.config.ConfigDict.set
    functionSourceFile: dulwich.config
    functionUses: 12
    functionsReached:
    - section_dict.set
    - subsection.encode
    - dulwich.config.ConfigDict._check_section_and_name
    - value.encode
    - <builtin>.hasattr
    - <builtin>.tuple
    - name.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.encode
    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: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 147
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: section_dict.set
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 695
    functionName: dulwich.config.ConfigDict.add
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - subsection.encode
    - dulwich.config.ConfigDict._check_section_and_name
    - value.encode
    - <builtin>.tuple
    - name.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - section
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 712
    functionName: dulwich.config.ConfigDict.items
    functionSourceFile: dulwich.config
    functionUses: 286
    functionsReached:
    - subsection.encode
    - <builtin>.iter
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.tuple
    - name.encode
    - <builtin>.isinstance
    - section_dict.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: section_dict.items
    functionSourceFile: <builtin>
    functionUses: 287
    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: 720
    functionName: dulwich.config.ConfigDict.sections
    functionSourceFile: dulwich.config
    functionUses: 6
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 725
    functionName: dulwich.config._format_string
    functionSourceFile: dulwich.config
    functionUses: 11
    functionsReached:
    - value.replace
    - value.endswith
    - value.startswith
    - dulwich.config._escape_value
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.startswith
    functionSourceFile: <builtin>
    functionUses: 304
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.endswith
    functionSourceFile: <builtin>
    functionUses: 338
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 797
    functionName: dulwich.config._escape_value
    functionSourceFile: dulwich.config
    functionUses: 12
    functionsReached:
    - value.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.ord
    functionSourceFile: <builtin>
    functionUses: 449
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 9
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 747
    functionName: dulwich.config._parse_string
    functionSourceFile: dulwich.config
    functionUses: 321
    functionsReached:
    - <builtin>.bytes
    - <builtin>.bytearray
    - <builtin>.len
    - <builtin>.ord
    - ret.append
    - ret.extend
    - value.strip
    - whitespace.append
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.strip
    functionSourceFile: <builtin>
    functionUses: 323
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 404
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.extend
    functionSourceFile: <builtin>
    functionUses: 326
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.append
    functionSourceFile: <builtin>
    functionUses: 400
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: whitespace.append
    functionSourceFile: <builtin>
    functionUses: 322
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 513
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.replace
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 807
    functionName: dulwich.config._check_variable_name
    functionSourceFile: dulwich.config
    functionUses: 321
    functionsReached:
    - <builtin>.len
    - c.isalnum
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 522
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.isalnum
    functionSourceFile: <builtin>
    functionUses: 324
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 815
    functionName: dulwich.config._check_section_name
    functionSourceFile: dulwich.config
    functionUses: 322
    functionsReached:
    - <builtin>.len
    - c.isalnum
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 823
    functionName: dulwich.config._strip_comments
    functionSourceFile: dulwich.config
    functionUses: 322
    functionsReached:
    - <builtin>.ord
    - <builtin>.bytearray
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 837
    functionName: dulwich.config._is_line_continuation
    functionSourceFile: dulwich.config
    functionUses: 321
    functionsReached:
    - content.endswith
    - <builtin>.len
    - value.endswith
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: content.endswith
    functionSourceFile: <builtin>
    functionUses: 322
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 0
    IfCount: 11
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 875
    functionName: dulwich.config._parse_section_header_line
    functionSourceFile: dulwich.config
    functionUses: 321
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - <builtin>.ord
    - <builtin>.range
    - dulwich.config._strip_comments
    - <builtin>.enumerate
    - dulwich.config._check_section_name
    - c.isalnum
    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 0x7febadde5a60>
    - <ast.Constant object at 0x7febadde50a0>
    argNames:
    - self
    - values
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 927
    functionName: dulwich.config.ConfigFile.__init__
    functionSourceFile: dulwich.config
    functionUses: 323
    functionsReached:
    - <builtin>.super
    - <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>.super
    functionSourceFile: <builtin>
    functionUses: 554
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 520
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: included_paths.copy
    functionSourceFile: <builtin>
    functionUses: 321
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.readlines
    functionSourceFile: io
    functionUses: 342
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.startswith
    functionSourceFile: <builtin>
    functionUses: 437
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.lstrip
    functionSourceFile: <builtin>
    functionUses: 328
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret._values.setdefault
    functionSourceFile: <builtin>
    functionUses: 321
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.split
    functionSourceFile: <builtin>
    functionUses: 360
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: setting.strip
    functionSourceFile: <builtin>
    functionUses: 321
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret._handle_include_directive
    functionSourceFile: <builtin>
    functionUses: 321
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.endswith
    functionSourceFile: <builtin>
    functionUses: 336
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 9
    argDefaultValues: []
    argNames:
    - self
    - section
    - setting
    - value
    - config_dir
    - include_depth
    - max_include_depth
    - file_opener
    - condition_matchers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1049
    functionName: dulwich.config.ConfigFile._handle_include_directive
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - dulwich.config.ConfigDict.sections
    - logger.debug
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - dulwich.config.ConfigFile._evaluate_hasconfig_condition
    - name.encode
    - dulwich.config.ConfigFile._merge_config
    - dulwich.config._check_section_name
    - path_value.decode
    - values.items
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - subsection.encode
    - dulwich.config._check_variable_name
    - dulwich.config.CaseInsensitiveOrderedMultiDict.__init__
    - re.match
    - os.path.isabs
    - <builtin>.len
    - dulwich.config.ConfigFile._process_include
    - condition.startswith
    - os.path.join
    - <builtin>.tuple
    - ret._handle_include_directive
    - <builtin>.super
    - <builtin>.list
    - other._values.items
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.config.ConfigFile._match_hasconfig_pattern
    - pathlib.Path.resolve
    - <builtin>.range
    - value.decode
    - ret.append
    - pattern_escaped.replace
    - <builtin>.isinstance
    - dulwich.config.ConfigFile._evaluate_includeif_condition
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - dulwich.config.ConfigDict.get_multivar
    - line.startswith
    - condition.split
    - dulwich.config.match_glob_pattern
    - dulwich.config.ConfigFile._resolve_include_path
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - line.endswith
    - <builtin>.bytearray
    - re.escape
    - <builtin>.bool
    - included_paths.copy
    - config_key.split
    - <builtin>.str
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - condition_matchers.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - section
    - path_value
    - config_dir
    - include_depth
    - max_include_depth
    - file_opener
    - condition_matchers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1080
    functionName: dulwich.config.ConfigFile._process_include
    functionSourceFile: dulwich.config
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    - dulwich.config.ConfigDict.sections
    - logger.debug
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - dulwich.config.ConfigFile._evaluate_hasconfig_condition
    - name.encode
    - dulwich.config.ConfigFile._merge_config
    - dulwich.config._check_section_name
    - path_value.decode
    - values.items
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - subsection.encode
    - dulwich.config._check_variable_name
    - dulwich.config.CaseInsensitiveOrderedMultiDict.__init__
    - re.match
    - os.path.isabs
    - <builtin>.len
    - condition.startswith
    - os.path.join
    - <builtin>.tuple
    - ret._handle_include_directive
    - <builtin>.super
    - <builtin>.list
    - other._values.items
    - <builtin>.set
    - ret.extend
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - pathlib.Path.resolve
    - dulwich.config.ConfigFile._match_hasconfig_pattern
    - value.decode
    - ret.append
    - pattern_escaped.replace
    - <builtin>.isinstance
    - dulwich.config.ConfigFile._evaluate_includeif_condition
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - dulwich.config.ConfigDict.get_multivar
    - line.startswith
    - condition.split
    - dulwich.config.match_glob_pattern
    - dulwich.config.ConfigFile._resolve_include_path
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - line.endswith
    - <builtin>.bytearray
    - re.escape
    - <builtin>.bool
    - included_paths.copy
    - config_key.split
    - <builtin>.str
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - condition_matchers.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_value.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5faa30>
    - <ast.Constant object at 0x7febaf5faaf0>
    argNames:
    - self
    - condition
    - config_dir
    - condition_matchers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1171
    functionName: dulwich.config.ConfigFile._evaluate_includeif_condition
    functionSourceFile: dulwich.config
    functionUses: 2
    functionsReached:
    - <builtin>.iter
    - dulwich.config.ConfigDict.sections
    - logger.debug
    - dulwich.config.ConfigFile._evaluate_hasconfig_condition
    - name.encode
    - subsection.encode
    - re.match
    - condition.startswith
    - <builtin>.len
    - <builtin>.tuple
    - <builtin>.list
    - dulwich.config.ConfigFile._match_hasconfig_pattern
    - pattern_escaped.replace
    - value.decode
    - <builtin>.isinstance
    - dulwich.config.ConfigDict.get_multivar
    - condition.split
    - dulwich.config.match_glob_pattern
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bool
    - re.escape
    - config_key.split
    - condition_matchers.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - config_dir
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1160
    functionName: dulwich.config.ConfigFile._resolve_include_path
    functionSourceFile: dulwich.config
    functionUses: 2
    functionsReached:
    - os.path.join
    - os.path.isabs
    - os.path.expanduser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path
    functionSourceFile: pathlib
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path.resolve
    functionSourceFile: pathlib
    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: logger.debug
    functionSourceFile: <builtin>
    functionUses: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1123
    functionName: dulwich.config.ConfigFile._process_include.opener
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.open
    - <builtin>.getattr
    - dulwich.file.GitFile
    - dulwich.file._GitFile.__init__
    - os.fspath
    - <builtin>.isinstance
    - os.fdopen
    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 0x7febaf2ee130>
    - <ast.UnaryOp object at 0x7febaf2ee520>
    - <ast.Constant object at 0x7febaf2eecd0>
    - <ast.Constant object at 0x7febaf2ee1c0>
    argNames:
    - filename
    - mode
    - bufsize
    - mask
    - fsync
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 102
    functionName: dulwich.file.GitFile
    functionSourceFile: dulwich.file
    functionUses: 156
    functionsReached:
    - <builtin>.open
    - os.open
    - <builtin>.getattr
    - dulwich.file._GitFile.__init__
    - os.fspath
    - <builtin>.isinstance
    - os.fdopen
    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: 361
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1152
    functionName: dulwich.config.ConfigFile._merge_config
    functionSourceFile: dulwich.config
    functionUses: 2
    functionsReached:
    - other._values.items
    - values.items
    - dulwich.config.CaseInsensitiveOrderedMultiDict.__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: other._values.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: values.items
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.expanduser
    functionSourceFile: os
    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: os.path.isabs
    functionSourceFile: os
    functionUses: 65
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.join
    functionSourceFile: os
    functionUses: 586
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: condition_matchers.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: condition.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - condition
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1192
    functionName: dulwich.config.ConfigFile._evaluate_hasconfig_condition
    functionSourceFile: dulwich.config
    functionUses: 3
    functionsReached:
    - <builtin>.iter
    - dulwich.config.ConfigDict.sections
    - logger.debug
    - name.encode
    - subsection.encode
    - re.match
    - <builtin>.len
    - <builtin>.tuple
    - <builtin>.list
    - dulwich.config.ConfigFile._match_hasconfig_pattern
    - pattern_escaped.replace
    - value.decode
    - <builtin>.isinstance
    - dulwich.config.ConfigDict.get_multivar
    - condition.split
    - dulwich.config.match_glob_pattern
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bool
    - re.escape
    - config_key.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: condition.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config_key.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - value
    - pattern
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1250
    functionName: dulwich.config.ConfigFile._match_hasconfig_pattern
    functionSourceFile: dulwich.config
    functionUses: 4
    functionsReached:
    - dulwich.config.match_glob_pattern
    - re.match
    - <builtin>.bool
    - re.escape
    - pattern_escaped.replace
    - value.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: value.decode
    functionSourceFile: <builtin>
    functionUses: 307
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - cls
    - path
    - max_include_depth
    - file_opener
    - condition_matchers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1259
    functionName: dulwich.config.ConfigFile.from_path
    functionSourceFile: dulwich.config
    functionUses: 316
    functionsReached:
    - setting.strip
    - dulwich.config._parse_section_header_line
    - dulwich.config._is_line_continuation
    - io.BytesIO.readlines
    - dulwich.config._check_section_name
    - os.fspath
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - ret._handle_include_directive
    - <builtin>.super
    - <builtin>.set
    - ret.extend
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.fspath
    functionSourceFile: os
    functionUses: 474
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - p
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1282
    functionName: dulwich.config.ConfigFile.from_path.opener
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.open
    - <builtin>.getattr
    - dulwich.file.GitFile
    - dulwich.file._GitFile.__init__
    - os.fspath
    - <builtin>.isinstance
    - os.fdopen
    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 0x7febadfe5940>
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1298
    functionName: dulwich.config.ConfigFile.write_to_path
    functionSourceFile: dulwich.config
    functionUses: 8
    functionsReached:
    - <builtin>.open
    - value.replace
    - os.open
    - io.BytesIO.write
    - <builtin>.getattr
    - dulwich.file.GitFile
    - dulwich.config.ConfigFile.write_to_file
    - value.endswith
    - value.startswith
    - dulwich.file._GitFile.__init__
    - dulwich.config._format_string
    - dulwich.config._escape_value
    - os.fspath
    - <builtin>.isinstance
    - values.items
    - os.fdopen
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1309
    functionName: dulwich.config.ConfigFile.write_to_file
    functionSourceFile: dulwich.config
    functionUses: 10
    functionsReached:
    - value.replace
    - io.BytesIO.write
    - value.endswith
    - value.startswith
    - dulwich.config._format_string
    - dulwich.config._escape_value
    - values.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.write
    functionSourceFile: io
    functionUses: 132
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path_segments
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1326
    functionName: dulwich.config.get_xdg_config_home_path
    functionSourceFile: dulwich.config
    functionUses: 31
    functionsReached:
    - os.path.join
    - os.environ.get
    - os.path.expanduser
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 136
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1342
    functionName: dulwich.config._find_git_in_win_path
    functionSourceFile: dulwich.config
    functionUses: 31
    functionsReached:
    - os.path.split
    - os.path.exists
    - os.path.join
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.exists
    functionSourceFile: os
    functionUses: 464
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.split
    functionSourceFile: os
    functionUses: 33
    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: 1358
    functionName: dulwich.config._find_git_in_win_reg
    functionSourceFile: dulwich.config
    functionUses: 31
    functionsReached:
    - winreg.QueryValueEx
    - winreg.OpenKey
    - platform.machine
    - contextlib.suppress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.machine
    functionSourceFile: platform
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextlib.suppress
    functionSourceFile: contextlib
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: winreg.OpenKey
    functionSourceFile: winreg
    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: winreg.QueryValueEx
    functionSourceFile: winreg
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1383
    functionName: dulwich.config.get_win_system_paths
    functionSourceFile: dulwich.config
    functionUses: 29
    functionsReached:
    - dulwich.config._find_git_in_win_path
    - os.path.exists
    - os.path.join
    - os.environ.get
    - winreg.QueryValueEx
    - winreg.OpenKey
    - platform.machine
    - dulwich.config._find_git_in_win_reg
    - os.path.split
    - contextlib.suppress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1399
    functionName: dulwich.config.get_win_legacy_system_paths
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - dulwich.config._find_git_in_win_path
    - os.path.exists
    - os.path.join
    - os.environ.get
    - winreg.QueryValueEx
    - winreg.OpenKey
    - platform.machine
    - dulwich.config._find_git_in_win_reg
    - os.path.split
    - contextlib.suppress
    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 0x7febaf8ced30>
    argNames:
    - self
    - backends
    - writable
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1419
    functionName: dulwich.config.StackedConfig.__init__
    functionSourceFile: dulwich.config
    functionUses: 28
    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: 1431
    functionName: dulwich.config.StackedConfig.__repr__
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1436
    functionName: dulwich.config.StackedConfig.default
    functionSourceFile: dulwich.config
    functionUses: 13
    functionsReached:
    - logger.debug
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - backends.append
    - io.BytesIO.readlines
    - paths.append
    - os.environ.get
    - os.path.exists
    - winreg.QueryValueEx
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - dulwich.config._check_section_name
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.config.get_win_system_paths
    - os.path.join
    - ret._handle_include_directive
    - <builtin>.super
    - winreg.OpenKey
    - os.path.split
    - ret.extend
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - contextlib.suppress
    - content.endswith
    - paths.extend
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - dulwich.config.StackedConfig.default_backends
    - line.startswith
    - <builtin>.bytes
    - dulwich.config._find_git_in_win_path
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - platform.machine
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1445
    functionName: dulwich.config.StackedConfig.default_backends
    functionSourceFile: dulwich.config
    functionUses: 28
    functionsReached:
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - backends.append
    - io.BytesIO.readlines
    - paths.append
    - os.environ.get
    - os.path.exists
    - winreg.QueryValueEx
    - os.fspath
    - dulwich.config._check_section_name
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.config.get_win_system_paths
    - os.path.join
    - ret._handle_include_directive
    - <builtin>.super
    - winreg.OpenKey
    - os.path.split
    - ret.extend
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - contextlib.suppress
    - content.endswith
    - paths.extend
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - dulwich.config._find_git_in_win_path
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - platform.machine
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: paths.append
    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: paths.extend
    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: backends.append
    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: backend.get
    functionSourceFile: <builtin>
    functionUses: 327
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1492
    functionName: dulwich.config.StackedConfig.get_multivar
    functionSourceFile: dulwich.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - backend.get_multivar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: backend.get_multivar
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - section
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1502
    functionName: dulwich.config.StackedConfig.set
    functionSourceFile: dulwich.config
    functionUses: 2
    functionsReached:
    - section_dict.set
    - subsection.encode
    - dulwich.config.ConfigDict._check_section_and_name
    - value.encode
    - <builtin>.hasattr
    - <builtin>.tuple
    - name.encode
    - <builtin>.isinstance
    - dulwich.config.ConfigDict.set
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: backend.sections
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1520
    functionName: dulwich.config.read_submodules
    functionSourceFile: dulwich.config
    functionUses: 6
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - os.fspath
    - dulwich.config._check_section_name
    - config.sections
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - ret._handle_include_directive
    - <builtin>.super
    - dulwich.config.parse_submodules
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.config.ConfigFile.from_path
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - config.get
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1528
    functionName: dulwich.config.parse_submodules
    functionSourceFile: dulwich.config
    functionUses: 7
    functionsReached:
    - config.get
    - config.sections
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.sections
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.get
    functionSourceFile: <builtin>
    functionUses: 92
    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 0x7febaf5a5100>
    argNames:
    - config
    - push
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1551
    functionName: dulwich.config.iter_instead_of
    functionSourceFile: dulwich.config
    functionUses: 18
    functionsReached:
    - config.get_multivar
    - needle.decode
    - <builtin>.list
    - <builtin>.isinstance
    - replacement.decode
    - config.sections
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.get_multivar
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: needle.decode
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: replacement.decode
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaedcf3d0>
    argNames:
    - config
    - orig_url
    - push
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1571
    functionName: dulwich.config.apply_instead_of
    functionSourceFile: dulwich.config
    functionUses: 17
    functionsReached:
    - <builtin>.len
    - config.get_multivar
    - orig_url.startswith
    - needle.decode
    - <builtin>.list
    - <builtin>.isinstance
    - replacement.decode
    - config.sections
    - dulwich.config.iter_instead_of
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: orig_url.startswith
    functionSourceFile: <builtin>
    functionUses: 18
    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: dulwich.file
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - dirname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: dulwich.file.ensure_dir_exists
    functionSourceFile: dulwich.file
    functionUses: 19
    functionsReached:
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.makedirs
    functionSourceFile: os
    functionUses: 331
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - oldname
    - newname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: dulwich.file._fancy_rename
    functionSourceFile: dulwich.file
    functionUses: 44
    functionsReached:
    - tempfile.mkstemp
    - os.path.exists
    - os.remove
    - <builtin>.str
    - os.close
    - os.rename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.rename
    functionSourceFile: os
    functionUses: 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: tempfile.mkstemp
    functionSourceFile: tempfile
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.close
    functionSourceFile: os
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.remove
    functionSourceFile: os
    functionUses: 90
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadfc48e0>
    argNames:
    - self
    - filename
    - mode
    - bufsize
    - mask
    - fsync
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 205
    functionName: dulwich.file._GitFile.__init__
    functionSourceFile: dulwich.file
    functionUses: 157
    functionsReached:
    - os.open
    - <builtin>.getattr
    - os.fspath
    - <builtin>.isinstance
    - os.fdopen
    linkageType: pythonLinkage
    raised:
    - FileLocked
    returnType: N/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: 584
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - lockfilename
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: dulwich.file.FileLocked.__init__
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 292
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 161
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 182
    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: 231
    functionName: dulwich.file._GitFile.__iter__
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    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: 235
    functionName: dulwich.file._GitFile.abort
    functionSourceFile: dulwich.file
    functionUses: 45
    functionsReached:
    - os.remove
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 250
    functionName: dulwich.file._GitFile.close
    functionSourceFile: dulwich.file
    functionUses: 43
    functionsReached:
    - os.rename
    - tempfile.mkstemp
    - <builtin>.getattr
    - dulwich.file._fancy_rename
    - os.path.exists
    - os.replace
    - os.remove
    - <builtin>.str
    - os.close
    - dulwich.file._GitFile.abort
    - os.fsync
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.fsync
    functionSourceFile: os
    functionUses: 47
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.replace
    functionSourceFile: os
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 282
    functionName: dulwich.file._GitFile.__del__
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached:
    - os.remove
    - warnings.warn
    - <builtin>.getattr
    - dulwich.file._GitFile.abort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 287
    functionName: dulwich.file._GitFile.__enter__
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 290
    functionName: dulwich.file._GitFile.__exit__
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached:
    - tempfile.mkstemp
    - <builtin>.getattr
    - dulwich.file._fancy_rename
    - os.path.exists
    - os.replace
    - os.fsync
    - os.remove
    - <builtin>.str
    - os.close
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.rename
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 301
    functionName: dulwich.file._GitFile.__fspath__
    functionSourceFile: dulwich.file
    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: 306
    functionName: dulwich.file._GitFile.closed
    functionSourceFile: dulwich.file
    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
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 310
    functionName: dulwich.file._GitFile.__getattr__
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaeecab80>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 317
    functionName: dulwich.file._GitFile.read
    functionSourceFile: dulwich.file
    functionUses: 103
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 322
    functionName: dulwich.file._GitFile.write
    functionSourceFile: dulwich.file
    functionUses: 60
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaeecaaf0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 325
    functionName: dulwich.file._GitFile.readline
    functionSourceFile: dulwich.file
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaffb13d0>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 328
    functionName: dulwich.file._GitFile.readlines
    functionSourceFile: dulwich.file
    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: 333
    functionName: dulwich.file._GitFile.writelines
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaffb1d30>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 336
    functionName: dulwich.file._GitFile.seek
    functionSourceFile: dulwich.file
    functionUses: 99
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 339
    functionName: dulwich.file._GitFile.tell
    functionSourceFile: dulwich.file
    functionUses: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 342
    functionName: dulwich.file._GitFile.flush
    functionSourceFile: dulwich.file
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1b2dc0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 345
    functionName: dulwich.file._GitFile.truncate
    functionSourceFile: dulwich.file
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 348
    functionName: dulwich.file._GitFile.fileno
    functionSourceFile: dulwich.file
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 351
    functionName: dulwich.file._GitFile.isatty
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 354
    functionName: dulwich.file._GitFile.readable
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 357
    functionName: dulwich.file._GitFile.writable
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 360
    functionName: dulwich.file._GitFile.seekable
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 363
    functionName: dulwich.file._GitFile.__next__
    functionSourceFile: dulwich.file
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.next
    functionSourceFile: <builtin>
    functionUses: 96
    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: dulwich._typing
    functionSourceFile: dulwich._typing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: dulwich.diffstat
    functionSourceFile: dulwich.diffstat
    functionUses: 0
    functionsReached:
    - <builtin>.print
    - result.decode
    - dulwich.diffstat.parse_patch
    - insert.append
    - data.split
    - testoutput.decode
    - <builtin>.len
    - counts.append
    - delete.append
    - <builtin>.max
    - sys.exit
    - <builtin>.sum
    - <builtin>.float
    - <builtin>.open
    - re.compile
    - selftest.split
    - f.read
    - dulwich.diffstat.main
    - line.startswith
    - dulwich.diffstat.diffstat
    - <builtin>.bytes
    - <builtin>.int
    - names.append
    - <builtin>.str
    - nametypes.append
    - m.group
    - <builtin>.enumerate
    - _git_header_name.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.compile
    functionSourceFile: re
    functionUses: 63
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 7
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: dulwich.diffstat.parse_patch
    functionSourceFile: dulwich.diffstat
    functionUses: 4
    functionsReached:
    - line.startswith
    - counts.append
    - names.append
    - nametypes.append
    - m.group
    - _git_header_name.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: names.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: nametypes.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: counts.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: _git_header_name.search
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.group
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadfd41c0>
    argNames:
    - lines
    - max_width
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 130
    functionName: dulwich.diffstat.diffstat
    functionSourceFile: dulwich.diffstat
    functionUses: 3
    functionsReached:
    - dulwich.diffstat.parse_patch
    - insert.append
    - <builtin>.bytes
    - <builtin>.int
    - line.startswith
    - <builtin>.len
    - counts.append
    - names.append
    - <builtin>.str
    - nametypes.append
    - delete.append
    - <builtin>.max
    - m.group
    - <builtin>.enumerate
    - <builtin>.sum
    - _git_header_name.search
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: insert.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: delete.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.max
    functionSourceFile: <builtin>
    functionUses: 155
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.float
    functionSourceFile: <builtin>
    functionUses: 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: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 470
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 109
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 207
    functionName: dulwich.diffstat.main
    functionSourceFile: dulwich.diffstat
    functionUses: 1
    functionsReached:
    - <builtin>.print
    - result.decode
    - dulwich.diffstat.parse_patch
    - insert.append
    - data.split
    - testoutput.decode
    - <builtin>.len
    - counts.append
    - delete.append
    - <builtin>.max
    - <builtin>.sum
    - <builtin>.float
    - <builtin>.open
    - selftest.split
    - f.read
    - line.startswith
    - dulwich.diffstat.diffstat
    - <builtin>.bytes
    - <builtin>.int
    - names.append
    - <builtin>.str
    - nametypes.append
    - m.group
    - <builtin>.enumerate
    - _git_header_name.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.read
    functionSourceFile: <builtin>
    functionUses: 426
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.decode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selftest.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: testoutput.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.exit
    functionSourceFile: sys
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.filters
    functionSourceFile: dulwich.filters
    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
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 58
    functionName: dulwich.filters.FilterDriver.clean
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4dc1c0>
    argNames:
    - self
    - data
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: dulwich.filters.FilterDriver.smudge
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: dulwich.filters.FilterDriver.cleanup
    functionSourceFile: dulwich.filters
    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
    - config
    - filter_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: dulwich.filters.FilterDriver.reuse
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: dulwich.filters.CompositeFilterDriver.__init__
    functionSourceFile: dulwich.filters
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 100
    functionName: dulwich.filters.CompositeFilterDriver.clean
    functionSourceFile: dulwich.filters
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5f6310>
    argNames:
    - self
    - data
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 106
    functionName: dulwich.filters.CompositeFilterDriver.smudge
    functionSourceFile: dulwich.filters
    functionUses: 13
    functionsReached:
    - filter_driver.smudge
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filter_driver.smudge
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 113
    functionName: dulwich.filters.CompositeFilterDriver.cleanup
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - config
    - filter_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: dulwich.filters.CompositeFilterDriver.reuse
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - <builtin>.all
    - f.reuse
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.reuse
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 76
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febafd3baf0>
    - <ast.Constant object at 0x7febafd3b550>
    - <ast.Constant object at 0x7febafd3b730>
    - <ast.Constant object at 0x7febafd3b850>
    - <ast.Constant object at 0x7febafd3b3d0>
    argNames:
    - self
    - clean_cmd
    - smudge_cmd
    - required
    - cwd
    - process_cmd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: dulwich.filters.ProcessFilterDriver.__init__
    functionSourceFile: dulwich.filters
    functionUses: 27
    functionsReached:
    - threading.Lock
    - <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: threading.Lock
    functionSourceFile: threading
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 10
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 154
    functionName: dulwich.filters.ProcessFilterDriver._get_or_start_process
    functionSourceFile: dulwich.filters
    functionUses: 3
    functionsReached:
    - sys.stdin.buffer.read
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - capabilities.append
    - os.kill
    - dulwich.server.serve_command.send_fn
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - welcome.rstrip
    - cap.startswith
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - subprocess.run
    - cap.rstrip
    - subprocess.Popen
    - dulwich.porcelain.upload_pack.send_fn
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.int
    - io.BytesIO.write
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - version.rstrip
    - <builtin>.map
    linkageType: pythonLinkage
    raised:
    - OSError
    - FilterError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subprocess.Popen
    functionSourceFile: subprocess
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 179
    functionName: dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    functionSourceFile: dulwich.filters
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - size
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 186
    functionName: dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    functionSourceFile: dulwich.filters
    functionUses: 22
    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 0x7febaff9f460>
    - <ast.Constant object at 0x7febaff9f9d0>
    argNames:
    - self
    - read
    - write
    - close
    - report_activity
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 360
    functionName: dulwich.protocol.Protocol.__init__
    functionSourceFile: ''
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 478
    functionName: dulwich.protocol.Protocol.write_pkt_line
    functionSourceFile: dulwich.protocol
    functionUses: 14
    functionsReached:
    - dulwich.porcelain.upload_pack.send_fn
    - io.BytesIO.write
    - <builtin>.len
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - dulwich.protocol.pkt_line
    - dulwich.server.serve_command.send_fn
    - sys.stdout.buffer.write
    - dulwich.porcelain.receive_pack.send_fn
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    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: 399
    functionName: dulwich.protocol.Protocol.read_pkt_line
    functionSourceFile: dulwich.protocol
    functionUses: 21
    functionsReached:
    - sys.stdin.buffer.read
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - <builtin>.int
    - io.BytesIO.write
    - <builtin>.next
    - <builtin>.len
    - io.BytesIO
    - io.BytesIO.tell
    - <builtin>.map
    - dulwich.protocol.ReceivableProtocol.read
    - <builtin>.sum
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: welcome.rstrip
    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: version.rstrip
    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: capabilities.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cap.rstrip
    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: cap.startswith
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 12
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 392
    functionName: dulwich.filters.ProcessFilterDriver.cleanup
    functionSourceFile: dulwich.filters
    functionUses: 23
    functionsReached:
    - <builtin>.str
    - subprocess.run
    - os.kill
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 8
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5e5220>
    argNames:
    - self
    - data
    - operation
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 241
    functionName: dulwich.filters.ProcessFilterDriver._use_process_filter
    functionSourceFile: dulwich.filters
    functionUses: 2
    functionsReached:
    - pkt.rstrip
    - status.decode
    - sys.stdin.buffer.read
    - operation.encode
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - capabilities.append
    - os.kill
    - dulwich.server.serve_command.send_fn
    - final_status.decode
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - welcome.rstrip
    - cap.startswith
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - subprocess.run
    - dulwich.filters.ProcessFilterDriver._get_or_start_process
    - cap.rstrip
    - dulwich.porcelain.upload_pack.send_fn
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - subprocess.Popen
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.range
    - <builtin>.int
    - io.BytesIO.write
    - response_headers.get
    - result_chunks.append
    - final_headers.get
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - <builtin>.map
    - version.rstrip
    linkageType: pythonLinkage
    raised:
    - FilterError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: operation.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pkt.rstrip
    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: response_headers.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: status.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result_chunks.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: final_headers.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: final_status.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 319
    functionName: dulwich.filters.ProcessFilterDriver.clean
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - pkt.rstrip
    - status.decode
    - sys.stdin.buffer.read
    - operation.encode
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - capabilities.append
    - dulwich.filters.ProcessFilterDriver._use_process_filter
    - os.kill
    - dulwich.server.serve_command.send_fn
    - final_status.decode
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - io.BytesIO.read
    - io.BytesIO.seek
    - logging.warning
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - welcome.rstrip
    - cap.startswith
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - subprocess.run
    - dulwich.filters.ProcessFilterDriver._get_or_start_process
    - cap.rstrip
    - dulwich.porcelain.upload_pack.send_fn
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - subprocess.Popen
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.range
    - <builtin>.int
    - io.BytesIO.write
    - response_headers.get
    - result_chunks.append
    - final_headers.get
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - <builtin>.map
    - version.rstrip
    linkageType: pythonLinkage
    raised:
    - FilterError
    returnType: N/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.warning
    functionSourceFile: logging
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subprocess.run
    functionSourceFile: subprocess
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6a00>
    argNames:
    - self
    - data
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 353
    functionName: dulwich.filters.ProcessFilterDriver.smudge
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - pkt.rstrip
    - status.decode
    - sys.stdin.buffer.read
    - operation.encode
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - capabilities.append
    - dulwich.filters.ProcessFilterDriver._use_process_filter
    - os.kill
    - dulwich.server.serve_command.send_fn
    - final_status.decode
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - dulwich.protocol.ReceivableProtocol.read
    - path.decode
    - dulwich.porcelain.receive_pack.send_fn
    - io.BytesIO.read
    - io.BytesIO.seek
    - logging.warning
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - welcome.rstrip
    - cap.startswith
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - subprocess.run
    - dulwich.filters.ProcessFilterDriver._get_or_start_process
    - cap.rstrip
    - dulwich.porcelain.upload_pack.send_fn
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - subprocess.Popen
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.range
    - <builtin>.int
    - io.BytesIO.write
    - response_headers.get
    - result_chunks.append
    - final_headers.get
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - <builtin>.map
    - version.rstrip
    linkageType: pythonLinkage
    raised:
    - FilterError
    returnType: N/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.kill
    functionSourceFile: os
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - config
    - filter_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 465
    functionName: dulwich.filters.ProcessFilterDriver.reuse
    functionSourceFile: dulwich.filters
    functionUses: 18
    functionsReached:
    - clean_cmd_raw.decode
    - backend.get
    - process_cmd_raw.decode
    - value.lower
    - smudge_cmd_raw.decode
    - <builtin>.isinstance
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.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: clean_cmd_raw.decode
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: smudge_cmd_raw.decode
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: process_cmd_raw.decode
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 518
    functionName: dulwich.filters.ProcessFilterDriver.__del__
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - subprocess.run
    - os.kill
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filter_registry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 534
    functionName: dulwich.filters.FilterContext.__init__
    functionSourceFile: dulwich.filters
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 543
    functionName: dulwich.filters.FilterContext.get_driver
    functionSourceFile: dulwich.filters
    functionUses: 17
    functionsReached:
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.config.StackedConfig.get
    - dulwich.filters.FilterRegistry._create_from_config
    - threading.Lock
    - dulwich.filters.FilterRegistry.get_driver
    - process_cmd_raw.decode
    - value.lower
    - dulwich.filters.ProcessFilterDriver.reuse
    - os.kill
    - smudge_cmd_raw.decode
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - <builtin>.isinstance
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - subprocess.run
    - dulwich.filters.ProcessFilterDriver.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 651
    functionName: dulwich.filters.FilterRegistry.get_driver
    functionSourceFile: dulwich.filters
    functionUses: 25
    functionsReached:
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.filters.FilterRegistry._create_from_config
    - threading.Lock
    - process_cmd_raw.decode
    - value.lower
    - smudge_cmd_raw.decode
    - <builtin>.isinstance
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - dulwich.config.StackedConfig.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 578
    functionName: dulwich.filters.FilterContext.close
    functionSourceFile: dulwich.filters
    functionUses: 6
    functionsReached:
    - dulwich.filters.FilterRegistry.close
    - driver.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: driver.cleanup
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 672
    functionName: dulwich.filters.FilterRegistry.close
    functionSourceFile: dulwich.filters
    functionUses: 8
    functionsReached:
    - driver.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 588
    functionName: dulwich.filters.FilterContext.refresh_config
    functionSourceFile: dulwich.filters
    functionUses: 6
    functionsReached:
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - backend.get
    - clean_cmd_raw.decode
    - dulwich.filters.ProcessFilterDriver.__init__
    - <builtin>.set
    - dulwich.filters.FilterRegistry._create_from_config
    - threading.Lock
    - dulwich.filters.FilterRegistry.get_driver
    - process_cmd_raw.decode
    - value.lower
    - smudge_cmd_raw.decode
    - <builtin>.str
    - <builtin>.isinstance
    - dulwich.config.Config.get_boolean
    - autocrlf_raw.lower
    - dulwich.config.StackedConfig.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 773
    functionName: dulwich.filters.FilterRegistry._setup_line_ending_filter
    functionSourceFile: dulwich.filters
    functionUses: 10
    functionsReached:
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.filters.ProcessFilterDriver.__init__
    - <builtin>.set
    - dulwich.filters.FilterRegistry._create_from_config
    - threading.Lock
    - dulwich.filters.FilterRegistry.get_driver
    - process_cmd_raw.decode
    - value.lower
    - smudge_cmd_raw.decode
    - <builtin>.str
    - <builtin>.isinstance
    - dulwich.config.Config.get_boolean
    - autocrlf_raw.lower
    - dulwich.config.StackedConfig.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 606
    functionName: dulwich.filters.FilterContext.__del__
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - dulwich.filters.FilterContext.close
    - dulwich.filters.FilterRegistry.close
    - driver.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf95b4c0>
    - <ast.Constant object at 0x7febaf95b640>
    argNames:
    - self
    - config
    - repo
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 618
    functionName: dulwich.filters.FilterRegistry.__init__
    functionSourceFile: dulwich.filters
    functionUses: 8
    functionsReached:
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - backend.get
    - clean_cmd_raw.decode
    - dulwich.filters.ProcessFilterDriver.__init__
    - <builtin>.set
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.filters.FilterRegistry.register_factory
    - threading.Lock
    - dulwich.filters.FilterRegistry.get_driver
    - process_cmd_raw.decode
    - value.lower
    - smudge_cmd_raw.decode
    - <builtin>.str
    - <builtin>.isinstance
    - dulwich.config.Config.get_boolean
    - autocrlf_raw.lower
    - dulwich.config.StackedConfig.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - factory
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 641
    functionName: dulwich.filters.FilterRegistry.register_factory
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - driver
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 647
    functionName: dulwich.filters.FilterRegistry.register_driver
    functionSourceFile: dulwich.filters
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 686
    functionName: dulwich.filters.FilterRegistry._create_from_config
    functionSourceFile: dulwich.filters
    functionUses: 26
    functionsReached:
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.config.StackedConfig.get
    - threading.Lock
    - process_cmd_raw.decode
    - value.lower
    - smudge_cmd_raw.decode
    - <builtin>.isinstance
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - dulwich.filters.ProcessFilterDriver.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 678
    functionName: dulwich.filters.FilterRegistry.__del__
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - dulwich.filters.FilterRegistry.close
    - driver.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - registry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 744
    functionName: dulwich.filters.FilterRegistry._create_lfs_filter
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - os.path.join
    - dulwich.lfs.LFSFilterDriver.__init__
    - dulwich.lfs.LFSStore.__init__
    - os.mkdir
    - os.path.isdir
    - <builtin>.isinstance
    - dulwich.lfs.LFSStore.from_repo
    - registry.repo.get_config_stack
    - tempfile.mkdtemp
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    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 0x7febadfe91f0>
    argNames:
    - cls
    - repo
    - create
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 127
    functionName: dulwich.lfs.LFSStore.from_repo
    functionSourceFile: dulwich.lfs
    functionUses: 10
    functionsReached:
    - os.path.join
    - os.path.isdir
    - os.mkdir
    - dulwich.lfs.LFSStore.__init__
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.mkdtemp
    functionSourceFile: tempfile
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - lfs_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: dulwich.lfs.LFSStore.create
    functionSourceFile: dulwich.lfs
    functionUses: 13
    functionsReached:
    - os.mkdir
    - dulwich.lfs.LFSStore.__init__
    - os.path.join
    - os.path.isdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: registry.repo.get_config_stack
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae48a280>
    argNames:
    - self
    - lfs_store
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 260
    functionName: dulwich.lfs.LFSFilterDriver.__init__
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - registry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 763
    functionName: dulwich.filters.FilterRegistry._create_text_filter
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - dulwich.line_ending.get_clean_filter
    - backend.get
    - safecrlf_raw.encode
    - dulwich.line_ending.get_smudge_filter_autocrlf
    - core_eol_raw.decode
    - dulwich.line_ending.get_clean_filter_autocrlf
    - <builtin>.str
    - dulwich.line_ending.LineEndingFilter.__init__
    - autocrlf_raw.lower
    - <builtin>.isinstance
    - dulwich.line_ending.get_smudge_filter
    - dulwich.line_ending.LineEndingFilter.from_config
    - dulwich.config.StackedConfig.get
    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 0x7febaf044a00>
    argNames:
    - cls
    - config
    - for_text_attr
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 198
    functionName: dulwich.line_ending.LineEndingFilter.from_config
    functionSourceFile: dulwich.line_ending
    functionUses: 1
    functionsReached:
    - dulwich.line_ending.get_clean_filter
    - backend.get
    - safecrlf_raw.encode
    - dulwich.line_ending.get_smudge_filter_autocrlf
    - core_eol_raw.decode
    - dulwich.line_ending.get_clean_filter_autocrlf
    - <builtin>.str
    - dulwich.line_ending.LineEndingFilter.__init__
    - <builtin>.isinstance
    - dulwich.line_ending.get_smudge_filter
    - autocrlf_raw.lower
    - dulwich.config.StackedConfig.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: autocrlf_raw.lower
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 4
    IfCount: 15
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadda6760>
    - <ast.Constant object at 0x7febadda6ac0>
    argNames:
    - path
    - gitattributes
    - filter_registry
    - filter_context
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 796
    functionName: dulwich.filters.get_filter_for_path
    functionSourceFile: dulwich.filters
    functionUses: 16
    functionsReached:
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.filters.FilterRegistry.get_driver
    - filter_name.decode
    - os.kill
    - smudge_cmd_raw.decode
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.filters.FilterContext.get_driver
    - <builtin>.len
    - threading.Lock
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - subprocess.run
    - dulwich.config.StackedConfig.get
    - value.lower
    - <builtin>.isinstance
    - autocrlf_raw.lower
    - attributes.get
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.filters.CompositeFilterDriver.__init__
    - process_cmd_raw.decode
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.attrs.GitAttributes.match_path
    linkageType: pythonLinkage
    raised:
    - FilterError
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 294
    functionName: dulwich.attrs.GitAttributes.match_path
    functionSourceFile: dulwich.attrs
    functionUses: 19
    functionsReached:
    - dulwich.attrs.GitAttributes.match_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attributes.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: filter_name.decode
    functionSourceFile: <builtin>
    functionUses: 17
    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 0x7febaec93b50>
    - <ast.Constant object at 0x7febaec939a0>
    - <ast.Constant object at 0x7febaec93850>
    argNames:
    - self
    - config_stack
    - gitattributes
    - filter_registry
    - repo
    - filter_context
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 895
    functionName: dulwich.filters.FilterBlobNormalizer.__init__
    functionSourceFile: dulwich.filters
    functionUses: 6
    functionsReached:
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.filters.FilterRegistry.__init__
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - threading.Lock
    - dulwich.filters.FilterContext.__init__
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - dulwich.config.StackedConfig.get
    - value.lower
    - <builtin>.isinstance
    - autocrlf_raw.lower
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.filters.FilterRegistry.register_factory
    - process_cmd_raw.decode
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - blob
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 937
    functionName: dulwich.filters.FilterBlobNormalizer.checkin_normalize
    functionSourceFile: dulwich.filters
    functionUses: 2
    functionsReached:
    - dulwich.filters.FilterRegistry._create_from_config
    - filter_name.decode
    - dulwich.filters.FilterRegistry.get_driver
    - os.kill
    - smudge_cmd_raw.decode
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.filters.FilterContext.get_driver
    - <builtin>.len
    - threading.Lock
    - dulwich.filters.get_filter_for_path
    - dulwich.filters.ProcessFilterDriver.reuse
    - <builtin>.super
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - subprocess.run
    - dulwich.config.StackedConfig.get
    - value.lower
    - dulwich.objects.Blob.__init__
    - <builtin>.isinstance
    - autocrlf_raw.lower
    - attributes.get
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.filters.CompositeFilterDriver.clean
    - dulwich.filters.CompositeFilterDriver.__init__
    - process_cmd_raw.decode
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.attrs.GitAttributes.match_path
    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: 774
    functionName: dulwich.objects.Blob.__init__
    functionSourceFile: dulwich.objects
    functionUses: 50
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - blob
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 956
    functionName: dulwich.filters.FilterBlobNormalizer.checkout_normalize
    functionSourceFile: dulwich.filters
    functionUses: 12
    functionsReached:
    - filter_driver.smudge
    - dulwich.filters.FilterRegistry._create_from_config
    - filter_name.decode
    - dulwich.filters.FilterRegistry.get_driver
    - os.kill
    - smudge_cmd_raw.decode
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.filters.FilterContext.get_driver
    - <builtin>.len
    - threading.Lock
    - dulwich.filters.get_filter_for_path
    - dulwich.filters.ProcessFilterDriver.reuse
    - <builtin>.super
    - dulwich.filters.CompositeFilterDriver.smudge
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - subprocess.run
    - dulwich.config.StackedConfig.get
    - value.lower
    - dulwich.objects.Blob.__init__
    - dulwich.attrs.GitAttributes.match_path
    - <builtin>.isinstance
    - autocrlf_raw.lower
    - attributes.get
    - clean_cmd_raw.decode
    - backend.get
    - dulwich.filters.CompositeFilterDriver.__init__
    - process_cmd_raw.decode
    - <builtin>.str
    - dulwich.filters.ProcessFilterDriver.cleanup
    - <builtin>.reversed
    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: 975
    functionName: dulwich.filters.FilterBlobNormalizer.close
    functionSourceFile: dulwich.filters
    functionUses: 1
    functionsReached:
    - dulwich.filters.FilterContext.close
    - dulwich.filters.FilterRegistry.close
    - driver.cleanup
    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: 981
    functionName: dulwich.filters.FilterBlobNormalizer.__del__
    functionSourceFile: dulwich.filters
    functionUses: 0
    functionsReached:
    - dulwich.filters.FilterContext.close
    - dulwich.filters.FilterRegistry.close
    - driver.cleanup
    - dulwich.filters.FilterBlobNormalizer.close
    linkageType: 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: dulwich.protocol
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - typing.NewType
    - <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: typing.NewType
    functionSourceFile: typing
    functionUses: 622
    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: 218
    functionName: dulwich.protocol.agent_string
    functionSourceFile: dulwich.protocol
    functionUses: 43
    functionsReached:
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.map
    functionSourceFile: <builtin>
    functionUses: 131
    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: 227
    functionName: dulwich.protocol.capability_agent
    functionSourceFile: dulwich.protocol
    functionUses: 36
    functionsReached:
    - dulwich.protocol.agent_string
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - from_ref
    - to_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 236
    functionName: dulwich.protocol.capability_symref
    functionSourceFile: dulwich.protocol
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - capabilities
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 249
    functionName: dulwich.protocol.extract_capability_names
    functionSourceFile: dulwich.protocol
    functionUses: 7
    functionsReached:
    - dulwich.protocol.parse_capability
    - capability.split
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - capability
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 261
    functionName: dulwich.protocol.parse_capability
    functionSourceFile: dulwich.protocol
    functionUses: 14
    functionsReached:
    - capability.split
    - <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: capability.split
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - symrefs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: dulwich.protocol.symref_capabilities
    functionSourceFile: dulwich.protocol
    functionUses: 12
    functionsReached:
    - dulwich.protocol.capability_symref
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cmd
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 298
    functionName: dulwich.protocol.format_cmd_pkt
    functionSourceFile: dulwich.protocol
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 311
    functionName: dulwich.protocol.parse_cmd_pkt
    functionSourceFile: dulwich.protocol
    functionUses: 2
    functionsReached:
    - line.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: line.find
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 326
    functionName: dulwich.protocol.pkt_line
    functionSourceFile: dulwich.protocol
    functionUses: 28
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - seq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 339
    functionName: dulwich.protocol.pkt_seq
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - dulwich.protocol.pkt_line
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 381
    functionName: dulwich.protocol.Protocol.close
    functionSourceFile: dulwich.protocol
    functionUses: 1
    functionsReached:
    - dulwich.client.SubprocessWrapper.close
    - dulwich.client.TCPGitClient._connect.close
    - s.close
    - wfile.close
    - rfile.close
    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: 2005
    functionName: dulwich.client.TCPGitClient._connect.close
    functionSourceFile: dulwich.client
    functionUses: 2
    functionsReached:
    - s.close
    - wfile.close
    - rfile.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf250370>
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2076
    functionName: dulwich.client.SubprocessWrapper.close
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: 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: 386
    functionName: dulwich.protocol.Protocol.__enter__
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 390
    functionName: dulwich.protocol.Protocol.__exit__
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - dulwich.client.SubprocessWrapper.close
    - dulwich.client.TCPGitClient._connect.close
    - s.close
    - rfile.close
    - wfile.close
    - dulwich.protocol.Protocol.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdin.buffer.read
    functionSourceFile: sys
    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: io.BufferedReader.read
    functionSourceFile: io
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 568
    functionName: dulwich.protocol.ReceivableProtocol.read
    functionSourceFile: dulwich.protocol
    functionUses: 22
    functionsReached:
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - io.BytesIO.write
    - io.BytesIO
    - <builtin>.next
    - <builtin>.len
    - io.BytesIO.tell
    - <builtin>.map
    - <builtin>.sum
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.read
    functionSourceFile: io
    functionUses: 203
    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: 436
    functionName: dulwich.protocol.Protocol.eof
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - sys.stdin.buffer.read
    - <builtin>.next
    - dulwich.protocol.ReceivableProtocol.read
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - <builtin>.sum
    - io.BytesIO
    - dulwich.protocol.Protocol.unread_pkt_line
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.int
    - io.BytesIO.write
    - io.BytesIO.tell
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 451
    functionName: dulwich.protocol.Protocol.unread_pkt_line
    functionSourceFile: dulwich.protocol
    functionUses: 9
    functionsReached:
    - dulwich.protocol.pkt_line
    - io.BytesIO
    - <builtin>.len
    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: 4
    functionLinenumber: 467
    functionName: dulwich.protocol.Protocol.read_pkt_seq
    functionSourceFile: dulwich.protocol
    functionUses: 11
    functionsReached:
    - sys.stdin.buffer.read
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.web.ChunkReader.read
    - <builtin>.int
    - io.BytesIO.write
    - <builtin>.next
    - <builtin>.len
    - io.BytesIO
    - io.BytesIO.tell
    - <builtin>.map
    - dulwich.protocol.ReceivableProtocol.read
    - <builtin>.sum
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3943
    functionName: dulwich.porcelain.upload_pack.send_fn
    functionSourceFile: dulwich.porcelain
    functionUses: 15
    functionsReached:
    - sys.stdout.buffer.write
    - sys.stdout.buffer.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1727
    functionName: dulwich.server.serve_command.send_fn
    functionSourceFile: dulwich.server
    functionUses: 15
    functionsReached:
    - sys.stdout.buffer.write
    - sys.stdout.buffer.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3977
    functionName: dulwich.porcelain.receive_pack.send_fn
    functionSourceFile: dulwich.porcelain
    functionUses: 15
    functionsReached:
    - sys.stdout.buffer.write
    - sys.stdout.buffer.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - channel
    - blob
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 493
    functionName: dulwich.protocol.Protocol.write_sideband
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.upload_pack.send_fn
    - <builtin>.bytes
    - io.BytesIO.write
    - <builtin>.bytearray
    - <builtin>.len
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - dulwich.protocol.pkt_line
    - dulwich.server.serve_command.send_fn
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - dulwich.porcelain.receive_pack.send_fn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - cmd
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 507
    functionName: dulwich.protocol.Protocol.send_cmd
    functionSourceFile: dulwich.protocol
    functionUses: 5
    functionsReached:
    - dulwich.porcelain.upload_pack.send_fn
    - io.BytesIO.write
    - <builtin>.len
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - dulwich.protocol.pkt_line
    - dulwich.server.serve_command.send_fn
    - dulwich.protocol.format_cmd_pkt
    - dulwich.protocol.Protocol.write_pkt_line
    - sys.stdout.buffer.write
    - dulwich.porcelain.receive_pack.send_fn
    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: 518
    functionName: dulwich.protocol.Protocol.read_cmd
    functionSourceFile: dulwich.protocol
    functionUses: 1
    functionsReached:
    - sys.stdin.buffer.read
    - <builtin>.next
    - dulwich.protocol.ReceivableProtocol.read
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - <builtin>.sum
    - io.BytesIO
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.protocol.parse_cmd_pkt
    - <builtin>.int
    - io.BytesIO.write
    - io.BytesIO.tell
    - <builtin>.map
    - line.find
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1a7040>
    - <ast.Constant object at 0x7febaf1a7d30>
    - <ast.Name object at 0x7febaf1a7580>
    argNames:
    - self
    - recv
    - write
    - close
    - report_activity
    - rbufsize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 546
    functionName: dulwich.protocol.ReceivableProtocol.__init__
    functionSourceFile: dulwich.protocol
    functionUses: 3
    functionsReached:
    - <builtin>.super
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.tell
    functionSourceFile: io
    functionUses: 178
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.seek
    functionSourceFile: io
    functionUses: 168
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socketserver.StreamRequestHandler.connection.recv
    functionSourceFile: socketserver
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 474
    functionName: dulwich.web.ChunkReader.read
    functionSourceFile: dulwich.web
    functionUses: 24
    functionsReached:
    - <builtin>.sum
    - <builtin>.map
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 637
    functionName: dulwich.protocol.ReceivableProtocol.recv
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - io.BytesIO.write
    - io.BytesIO
    - <builtin>.next
    - <builtin>.len
    - io.BytesIO.tell
    - <builtin>.map
    - <builtin>.sum
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 669
    functionName: dulwich.protocol.extract_capabilities
    functionSourceFile: dulwich.protocol
    functionUses: 12
    functionsReached:
    - capabilities.strip
    - text.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.rstrip
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: capabilities.strip
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 682
    functionName: dulwich.protocol.extract_want_line_capabilities
    functionSourceFile: dulwich.protocol
    functionUses: 9
    functionsReached:
    - <builtin>.len
    - text.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - capabilities
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 700
    functionName: dulwich.protocol.ack_type
    functionSourceFile: dulwich.protocol
    functionUses: 9
    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 0x7febaf39de50>
    argNames:
    - self
    - write
    - bufsize
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 717
    functionName: dulwich.protocol.BufferedPktLineWriter.__init__
    functionSourceFile: dulwich.protocol
    functionUses: 4
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 731
    functionName: dulwich.protocol.BufferedPktLineWriter.write
    functionSourceFile: dulwich.protocol
    functionUses: 4
    functionsReached:
    - io.BytesIO.write
    - dulwich.protocol.BufferedPktLineWriter.flush
    - <builtin>.len
    - io.BytesIO.getvalue
    - dulwich.protocol.pkt_line
    - io.BytesIO
    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: 746
    functionName: dulwich.protocol.BufferedPktLineWriter.flush
    functionSourceFile: dulwich.protocol
    functionUses: 6
    functionsReached:
    - io.BytesIO
    - io.BytesIO.getvalue
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.getvalue
    functionSourceFile: io
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - handle_pkt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 758
    functionName: dulwich.protocol.PktLineParser.__init__
    functionSourceFile: dulwich.protocol
    functionUses: 3
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 767
    functionName: dulwich.protocol.PktLineParser.parse
    functionSourceFile: dulwich.protocol
    functionUses: 3
    functionsReached:
    - <builtin>.int
    - dulwich.client.ReportStatusParser.handle_packet
    - io.BytesIO.write
    - pkt.strip
    - <builtin>.len
    - io.BytesIO.getvalue
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pkt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 360
    functionName: dulwich.client.ReportStatusParser.handle_packet
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - pkt.strip
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: 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: 786
    functionName: dulwich.protocol.PktLineParser.get_tail
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - io.BytesIO.getvalue
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - capabilities
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 791
    functionName: dulwich.protocol.format_capability_line
    functionSourceFile: dulwich.protocol
    functionUses: 13
    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 0x7febaee21310>
    argNames:
    - ref
    - sha
    - capabilities
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 803
    functionName: dulwich.protocol.format_ref_line
    functionSourceFile: dulwich.protocol
    functionUses: 12
    functionsReached:
    - dulwich.protocol.format_capability_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 822
    functionName: dulwich.protocol.format_shallow_line
    functionSourceFile: dulwich.protocol
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 834
    functionName: dulwich.protocol.format_unshallow_line
    functionSourceFile: dulwich.protocol
    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 0x7febaf97f310>
    argNames:
    - sha
    - ack_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 846
    functionName: dulwich.protocol.format_ack_line
    functionSourceFile: dulwich.protocol
    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:
    - refs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 861
    functionName: dulwich.protocol.strip_peeled_refs
    functionSourceFile: dulwich.protocol
    functionUses: 9
    functionsReached:
    - refs.items
    - ref.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refs.items
    functionSourceFile: <builtin>
    functionUses: 125
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref.endswith
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - refs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 877
    functionName: dulwich.protocol.split_peeled_refs
    functionSourceFile: dulwich.protocol
    functionUses: 20
    functionsReached:
    - <builtin>.len
    - k.endswith
    - refs.items
    - typing.NewType
    - ref.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: k.endswith
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - refs
    - store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 902
    functionName: dulwich.protocol.write_info_refs
    functionSourceFile: dulwich.protocol
    functionUses: 11
    functionsReached:
    - dulwich.objects.object_class
    - refs.items
    - dulwich.object_store.peel_sha
    - _TYPE_MAP.get
    - <builtin>.sorted
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sorted
    functionSourceFile: <builtin>
    functionUses: 153
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - store
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3421
    functionName: dulwich.object_store.peel_sha
    functionSourceFile: dulwich.object_store
    functionUses: 36
    functionsReached:
    - dulwich.objects.object_class
    - _TYPE_MAP.get
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - store
    - refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 932
    functionName: dulwich.protocol.serialize_refs
    functionSourceFile: dulwich.protocol
    functionUses: 0
    functionsReached:
    - dulwich.objects.object_class
    - ref.decode
    - refs.items
    - typing.NewType
    - dulwich.object_store.peel_sha
    - _TYPE_MAP.get
    - <builtin>.isinstance
    - warnings.warn
    - sha.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: ref.decode
    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: sha.decode
    functionSourceFile: <builtin>
    functionUses: 36
    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: dulwich.pack
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - shas
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 188
    functionName: dulwich.pack.UnresolvedDeltas.__init__
    functionSourceFile: dulwich.pack
    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
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 200
    functionName: dulwich.pack.ObjectContainer.add_object
    functionSourceFile: dulwich.pack
    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 0x7febaed930a0>
    argNames:
    - self
    - objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 203
    functionName: dulwich.pack.ObjectContainer.add_objects
    functionSourceFile: dulwich.pack
    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
    - sha1
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 216
    functionName: dulwich.pack.ObjectContainer.__contains__
    functionSourceFile: dulwich.pack
    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
    - sha1
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 219
    functionName: dulwich.pack.ObjectContainer.__getitem__
    functionSourceFile: dulwich.pack
    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: 222
    functionName: dulwich.pack.ObjectContainer.get_commit_graph
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sha1
    - include_comp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 234
    functionName: dulwich.pack.PackedObjectContainer.get_unpacked_object
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - shas
    - allow_missing
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 248
    functionName: dulwich.pack.PackedObjectContainer.iterobjects_subset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - shas
    - include_comp
    - allow_missing
    - convert_ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 262
    functionName: dulwich.pack.PackedObjectContainer.iter_unpacked_subset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 287
    functionName: dulwich.pack.UnpackedObjectStream.__iter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 291
    functionName: dulwich.pack.UnpackedObjectStream.__len__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2cef70>
    argNames:
    - read
    - crc32
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 296
    functionName: dulwich.pack.take_msb_bytes
    functionSourceFile: dulwich.pack
    functionUses: 15
    functionsReached:
    - <builtin>.min
    - hashlib.sha1.update
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - io.BytesIO.seek
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - io.BytesIO
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.read
    functionSourceFile: typing
    functionUses: 67
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1392
    functionName: dulwich.pack.PackStreamReader.read
    functionSourceFile: dulwich.pack
    functionUses: 50
    functionsReached:
    - <builtin>.bytes
    - <builtin>.bytearray
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.range
    - <builtin>.super
    - dulwich.pack.PackStreamReader._read
    - hashlib.sha1.update
    - <builtin>.max
    - io.BytesIO.tell
    - io.BytesIO
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 606
    functionName: dulwich.contrib.swift.SwiftPackReader.read
    functionSourceFile: dulwich.contrib.swift
    functionUses: 50
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - dulwich.contrib.swift.SwiftPackReader._read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.SpooledTemporaryFile.read
    functionSourceFile: tempfile
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: binascii.crc32
    functionSourceFile: binascii
    functionUses: 48
    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: 0
    functionLinenumber: 320
    functionName: dulwich.pack.PackFileDisappeared.__init__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - pack_type_num
    - delta_base
    - decomp_len
    - crc32
    - sha
    - decomp_chunks
    - offset
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 366
    functionName: dulwich.pack.UnpackedObject.__init__
    functionSourceFile: dulwich.pack
    functionUses: 44
    functionsReached:
    - <builtin>.sum
    - <builtin>.map
    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: 408
    functionName: dulwich.pack.UnpackedObject.sha
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.objects.object_header
    - hashlib.sha1
    - dulwich.objects.object_class
    - <builtin>.len
    - dulwich.pack.obj_sha
    - hashlib.sha1.update
    - typing.NewType
    - <builtin>.str
    - _TYPE_MAP.get
    - hashlib.sha1.digest
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    - dulwich.pack.chunks_length
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - type
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1522
    functionName: dulwich.pack.obj_sha
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - dulwich.objects.object_header
    - hashlib.sha1
    - dulwich.objects.object_class
    - <builtin>.len
    - _TYPE_MAP.get
    - hashlib.sha1.update
    - <builtin>.str
    - hashlib.sha1.digest
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    - dulwich.pack.chunks_length
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 415
    functionName: dulwich.pack.UnpackedObject.sha_file
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.objects.object_class
    - _TYPE_MAP.get
    - obj.set_raw_chunks
    - dulwich.objects.ShaFile.from_raw_chunks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadba4430>
    argNames:
    - type_num
    - chunks
    - sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 650
    functionName: dulwich.objects.ShaFile.from_raw_chunks
    functionSourceFile: dulwich.objects
    functionUses: 4
    functionsReached:
    - dulwich.objects.object_class
    - _TYPE_MAP.get
    - obj.set_raw_chunks
    linkageType: pythonLinkage
    raised:
    - AssertionError
    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: 422
    functionName: dulwich.pack.UnpackedObject._obj
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 430
    functionName: dulwich.pack.UnpackedObject.__eq__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 439
    functionName: dulwich.pack.UnpackedObject.__ne__
    functionSourceFile: dulwich.pack
    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: 443
    functionName: dulwich.pack.UnpackedObject.__repr__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2c0100>
    - <ast.Name object at 0x7febaf2c0e20>
    argNames:
    - read_some
    - unpacked
    - include_comp
    - buffer_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 452
    functionName: dulwich.pack.read_zlib_chunks
    functionSourceFile: dulwich.pack
    functionUses: 15
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - io.BytesIO.seek
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - io.BytesIO
    - typing.cast.read
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    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: zlib.decompressobj
    functionSourceFile: zlib
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1401
    functionName: dulwich.pack.PackStreamReader.recv
    functionSourceFile: dulwich.pack
    functionUses: 16
    functionsReached:
    - <builtin>.bytes
    - <builtin>.bytearray
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.range
    - <builtin>.super
    - dulwich.pack.PackStreamReader._read
    - hashlib.sha1.update
    - <builtin>.max
    - io.BytesIO.tell
    - io.BytesIO
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: comp_chunks.append
    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: decomp_obj.decompress
    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: decomp_chunks.append
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - iter
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 520
    functionName: dulwich.pack.iter_sha1
    functionSourceFile: dulwich.pack
    functionUses: 10
    functionsReached:
    - hashlib.sha1.update
    - hashlib.sha1.hexdigest
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1
    functionSourceFile: hashlib
    functionUses: 91
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1.update
    functionSourceFile: hashlib
    functionUses: 122
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1.hexdigest
    functionSourceFile: hashlib
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 533
    functionName: dulwich.pack.load_pack_index
    functionSourceFile: dulwich.pack
    functionUses: 2
    functionsReached:
    - mmap.mmap
    - <builtin>.getattr
    - os.fspath
    - io.BytesIO.read
    - os.fdopen
    - os.open
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - struct.unpack
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - io.BytesIO.fileno
    - <builtin>.open
    - dulwich.file.GitFile
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - <builtin>.isinstance
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 575
    functionName: dulwich.pack.load_pack_index_file
    functionSourceFile: dulwich.pack
    functionUses: 22
    functionsReached:
    - dulwich.pack.PackIndex2.__init__
    - struct.unpack_from
    - mmap.mmap
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - <builtin>.len
    - struct.unpack
    - ret.append
    - <builtin>.range
    - dulwich.pack._load_file_contents
    - <builtin>.super
    - dulwich.pack.PackIndex1.__init__
    - dulwich.file._GitFile.fileno
    - io.BytesIO.fileno
    - os.fstat
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf3a22b0>
    argNames:
    - f
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 544
    functionName: dulwich.pack._load_file_contents
    functionSourceFile: dulwich.pack
    functionUses: 24
    functionsReached:
    - mmap.mmap
    - <builtin>.len
    - dulwich.file._GitFile.fileno
    - io.BytesIO.fileno
    - os.fstat
    - dulwich.file._GitFile.read
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.fileno
    functionSourceFile: io
    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.fstat
    functionSourceFile: os
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mmap.mmap
    functionSourceFile: mmap
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.unpack
    functionSourceFile: struct
    functionUses: 150
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf773940>
    - <ast.Constant object at 0x7febaf773700>
    - <ast.Constant object at 0x7febaf7736d0>
    argNames:
    - self
    - filename
    - file
    - contents
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1058
    functionName: dulwich.pack.PackIndex2.__init__
    functionSourceFile: dulwich.pack
    functionUses: 23
    functionsReached:
    - struct.unpack_from
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - <builtin>.len
    - struct.unpack
    - ret.append
    - <builtin>.range
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadd6eca0>
    - <ast.Constant object at 0x7febadd6e970>
    - <ast.Constant object at 0x7febadd6edc0>
    argNames:
    - self
    - filename
    - file
    - contents
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1122
    functionName: dulwich.pack.PackIndex3.__init__
    functionSourceFile: dulwich.pack
    functionUses: 23
    functionsReached:
    - struct.unpack_from
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - <builtin>.len
    - struct.unpack
    - ret.append
    - <builtin>.range
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf6208e0>
    - <ast.Constant object at 0x7febaf620dc0>
    - <ast.Constant object at 0x7febaf620fd0>
    argNames:
    - self
    - filename
    - file
    - contents
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1017
    functionName: dulwich.pack.PackIndex1.__init__
    functionSourceFile: dulwich.pack
    functionUses: 23
    functionsReached:
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - struct.unpack
    - ret.append
    - <builtin>.range
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - start
    - end
    - sha
    - unpack_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 598
    functionName: dulwich.pack.bisect_find_sha
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 637
    functionName: dulwich.pack.PackIndex.__eq__
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    - dulwich.pack.MemoryPackIndex.iterentries
    - other.iterentries
    - <builtin>.zip
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 792
    functionName: dulwich.pack.MemoryPackIndex.iterentries
    functionSourceFile: dulwich.pack
    functionUses: 4
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.iterentries
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.zip
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 649
    functionName: dulwich.pack.PackIndex.__ne__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - dulwich.pack.MemoryPackIndex.iterentries
    - dulwich.pack.PackIndex.__eq__
    - other.iterentries
    - <builtin>.zip
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 653
    functionName: dulwich.pack.PackIndex.__len__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 657
    functionName: dulwich.pack.PackIndex.__iter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackIndex._itersha
    - <builtin>.iter
    - <builtin>.map
    - dulwich.pack.MemoryPackIndex._itersha
    linkageType: 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: dulwich.pack.PackIndex.__iter__.<lambda1>
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - typing.NewType
    - binascii.hexlify
    - dulwich.objects.sha_to_hex
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: dulwich.objects.sha_to_hex
    functionSourceFile: dulwich.objects
    functionUses: 80
    functionsReached:
    - <builtin>.len
    - typing.NewType
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 720
    functionName: dulwich.pack.PackIndex._itersha
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 788
    functionName: dulwich.pack.MemoryPackIndex._itersha
    functionSourceFile: dulwich.pack
    functionUses: 2
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 661
    functionName: dulwich.pack.PackIndex.iterentries
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 669
    functionName: dulwich.pack.PackIndex.get_pack_checksum
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: replace_me
    functionSourceFile: replace_me
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.pack.PackIndex
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - replace_me
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 677
    functionName: dulwich.pack.PackIndex.object_index
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.objects.hex_to_sha
    - binascii.unhexlify
    - <builtin>.len
    - typing.cast
    - typing.NewType
    - <builtin>.isinstance
    - dulwich.pack.PackIndex.object_offset
    - dulwich.pack.MemoryPackIndex.object_offset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 688
    functionName: dulwich.pack.PackIndex.object_offset
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 773
    functionName: dulwich.pack.MemoryPackIndex.object_offset
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - dulwich.objects.hex_to_sha
    - binascii.unhexlify
    - <builtin>.len
    - typing.cast
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 697
    functionName: dulwich.pack.PackIndex.object_sha1
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - dulwich.pack.MemoryPackIndex.iterentries
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 705
    functionName: dulwich.pack.PackIndex._object_offset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 713
    functionName: dulwich.pack.PackIndex.objects_sha1
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackIndex._itersha
    - <builtin>.iter
    - hashlib.sha1.hexdigest
    - dulwich.pack.iter_sha1
    - hashlib.sha1
    - hashlib.sha1.update
    - dulwich.pack.MemoryPackIndex._itersha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 724
    functionName: dulwich.pack.PackIndex.iter_prefix
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - dulwich.pack.MemoryPackIndex.iterentries
    - sha.startswith
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sha.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 736
    functionName: dulwich.pack.PackIndex.close
    functionSourceFile: dulwich.pack
    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: 739
    functionName: dulwich.pack.PackIndex.check
    functionSourceFile: dulwich.pack
    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 0x7febaf679310>
    argNames:
    - self
    - entries
    - pack_checksum
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 746
    functionName: dulwich.pack.MemoryPackIndex.__init__
    functionSourceFile: dulwich.pack
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 765
    functionName: dulwich.pack.MemoryPackIndex.get_pack_checksum
    functionSourceFile: dulwich.pack
    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: 769
    functionName: dulwich.pack.MemoryPackIndex.__len__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast
    functionSourceFile: typing
    functionUses: 174
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hex
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 182
    functionName: dulwich.objects.hex_to_sha
    functionSourceFile: dulwich.objects
    functionUses: 127
    functionsReached:
    - binascii.unhexlify
    - <builtin>.len
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 784
    functionName: dulwich.pack.MemoryPackIndex.object_sha1
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - pack_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 797
    functionName: dulwich.pack.MemoryPackIndex.for_pack
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - pack_data.sorted_entries
    - pack_data.get_stored_checksum
    - dulwich.pack.MemoryPackIndex.__init__
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_data.sorted_entries
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_data.get_stored_checksum
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - other_index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 804
    functionName: dulwich.pack.MemoryPackIndex.clone
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - other_index.get_pack_checksum
    - other_index.iterentries
    - dulwich.pack.MemoryPackIndex.__init__
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other_index.iterentries
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other_index.get_pack_checksum
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf250370>
    - <ast.Constant object at 0x7febaf250550>
    - <ast.Constant object at 0x7febaf2501f0>
    argNames:
    - self
    - filename
    - file
    - contents
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 824
    functionName: dulwich.pack.FilePackIndex.__init__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.open
    - mmap.mmap
    - <builtin>.len
    - <builtin>.getattr
    - dulwich.file.GitFile
    - dulwich.file._GitFile.__init__
    - dulwich.pack._load_file_contents
    - os.fdopen
    - dulwich.file._GitFile.fileno
    - io.BytesIO.fileno
    - os.fstat
    - os.fspath
    - <builtin>.isinstance
    - dulwich.file._GitFile.read
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 850
    functionName: dulwich.pack.FilePackIndex.path
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - os.fspath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 854
    functionName: dulwich.pack.FilePackIndex.__eq__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    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: 865
    functionName: dulwich.pack.FilePackIndex.close
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - tempfile.mkstemp
    - <builtin>.getattr
    - dulwich.file._fancy_rename
    - os.path.exists
    - os.replace
    - os.fsync
    - os.remove
    - <builtin>.str
    - os.close
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.rename
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 872
    functionName: dulwich.pack.FilePackIndex.__len__
    functionSourceFile: dulwich.pack
    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
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 876
    functionName: dulwich.pack.FilePackIndex._unpack_entry
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 884
    functionName: dulwich.pack.FilePackIndex._unpack_name
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 888
    functionName: dulwich.pack.FilePackIndex._unpack_offset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 892
    functionName: dulwich.pack.FilePackIndex._unpack_crc32_checksum
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 896
    functionName: dulwich.pack.FilePackIndex._itersha
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_name
    - <builtin>.len
    - <builtin>.range
    - dulwich.pack.PackIndex2._unpack_name
    - dulwich.pack.PackIndex1._unpack_name
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1094
    functionName: dulwich.pack.PackIndex2._unpack_name
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1040
    functionName: dulwich.pack.PackIndex1._unpack_name
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1174
    functionName: dulwich.pack.PackIndex3._unpack_name
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 901
    functionName: dulwich.pack.FilePackIndex.iterentries
    functionSourceFile: dulwich.pack
    functionUses: 5
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.pack.PackIndex3._unpack_name
    - struct.unpack_from
    - dulwich.pack.PackIndex3._unpack_entry
    - dulwich.pack.PackIndex2._unpack_offset
    - dulwich.pack.PackIndex1._unpack_entry
    - <builtin>.len
    - dulwich.pack.PackIndex2._unpack_entry
    - dulwich.pack.PackIndex3._unpack_crc32_checksum
    - <builtin>.range
    - typing.NewType
    - dulwich.pack.PackIndex2._unpack_name
    - <builtin>.isinstance
    - dulwich.pack.PackIndex2._unpack_crc32_checksum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1087
    functionName: dulwich.pack.PackIndex2._unpack_entry
    functionSourceFile: dulwich.pack
    functionUses: 6
    functionsReached:
    - dulwich.pack.PackIndex2._unpack_offset
    - struct.unpack_from
    - dulwich.pack.PackIndex2._unpack_name
    - <builtin>.isinstance
    - typing.NewType
    - dulwich.pack.PackIndex2._unpack_crc32_checksum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1036
    functionName: dulwich.pack.PackIndex1._unpack_entry
    functionSourceFile: dulwich.pack
    functionUses: 6
    functionsReached:
    - typing.NewType
    - struct.unpack_from
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1167
    functionName: dulwich.pack.PackIndex3._unpack_entry
    functionSourceFile: dulwich.pack
    functionUses: 6
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.pack.PackIndex3._unpack_name
    - struct.unpack_from
    - dulwich.pack.PackIndex3._unpack_crc32_checksum
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - start_offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 910
    functionName: dulwich.pack.FilePackIndex._read_fan_out_table
    functionSourceFile: dulwich.pack
    functionUses: 26
    functionsReached:
    - struct.unpack
    - ret.append
    - <builtin>.range
    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: 928
    functionName: dulwich.pack.FilePackIndex.check
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.FilePackIndex.get_stored_checksum
    - <builtin>.bytes
    - dulwich.pack.FilePackIndex.calculate_checksum
    - hashlib.sha1
    - hashlib.sha1.digest
    linkageType: pythonLinkage
    raised:
    - ChecksumMismatch
    returnType: 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: 935
    functionName: dulwich.pack.FilePackIndex.calculate_checksum
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - hashlib.sha1.digest
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 949
    functionName: dulwich.pack.FilePackIndex.get_stored_checksum
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1.digest
    functionSourceFile: hashlib
    functionUses: 84
    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: 942
    functionName: dulwich.pack.FilePackIndex.get_pack_checksum
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 956
    functionName: dulwich.pack.FilePackIndex.object_offset
    functionSourceFile: dulwich.pack
    functionUses: 7
    functionsReached:
    - dulwich.objects.hex_to_sha
    - dulwich._pack.bisect_find_sha
    - dulwich.pack.PackIndex3._unpack_offset
    - binascii.unhexlify
    - dulwich.pack.PackIndex2._unpack_offset
    - struct.unpack_from
    - <builtin>.len
    - <builtin>.getattr
    - <builtin>.ord
    - typing.cast
    - typing.NewType
    - <builtin>.isinstance
    - dulwich.pack.FilePackIndex._object_offset
    - dulwich.pack.PackIndex1._unpack_offset
    linkageType: pythonLinkage
    raised:
    - PackFileDisappeared
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 973
    functionName: dulwich.pack.FilePackIndex._object_offset
    functionSourceFile: dulwich.pack
    functionUses: 8
    functionsReached:
    - dulwich._pack.bisect_find_sha
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.pack.PackIndex2._unpack_offset
    - struct.unpack_from
    - <builtin>.len
    - <builtin>.ord
    - <builtin>.isinstance
    - dulwich.pack.PackIndex1._unpack_offset
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._pack.bisect_find_sha
    functionSourceFile: dulwich
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1178
    functionName: dulwich.pack.PackIndex3._unpack_offset
    functionSourceFile: dulwich.pack
    functionUses: 16
    functionsReached:
    - <builtin>.isinstance
    - struct.unpack_from
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1098
    functionName: dulwich.pack.PackIndex2._unpack_offset
    functionSourceFile: dulwich.pack
    functionUses: 16
    functionsReached:
    - <builtin>.isinstance
    - struct.unpack_from
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1044
    functionName: dulwich.pack.PackIndex1._unpack_offset
    functionSourceFile: dulwich.pack
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - struct.unpack_from
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 991
    functionName: dulwich.pack.FilePackIndex.iter_prefix
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_name
    - <builtin>.len
    - <builtin>.ord
    - <builtin>.range
    - dulwich.pack.PackIndex2._unpack_name
    - typing.NewType
    - dulwich.pack.PackIndex1._unpack_name
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.startswith
    functionSourceFile: <builtin>
    functionUses: 94
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.unpack_from
    functionSourceFile: struct
    functionUses: 63
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1050
    functionName: dulwich.pack.PackIndex1._unpack_crc32_checksum
    functionSourceFile: dulwich.pack
    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
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1110
    functionName: dulwich.pack.PackIndex2._unpack_crc32_checksum
    functionSourceFile: dulwich.pack
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - struct.unpack_from
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1190
    functionName: dulwich.pack.PackIndex3._unpack_crc32_checksum
    functionSourceFile: dulwich.pack
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - struct.unpack_from
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - read
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1196
    functionName: dulwich.pack.read_pack_header
    functionSourceFile: dulwich.pack
    functionUses: 37
    functionsReached:
    - <builtin>.min
    - hashlib.sha1.update
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - io.BytesIO
    - typing.cast.read
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - chunks
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1216
    functionName: dulwich.pack.chunks_length
    functionSourceFile: dulwich.pack
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - <builtin>.sum
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf268e50>
    - <ast.Constant object at 0x7febaf2687c0>
    - <ast.Constant object at 0x7febaf268130>
    - <ast.Name object at 0x7febaf268dc0>
    argNames:
    - read_all
    - read_some
    - compute_crc32
    - include_comp
    - zlib_bufsize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1229
    functionName: dulwich.pack.unpack_object
    functionSourceFile: dulwich.pack
    functionUses: 14
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - io.BytesIO.seek
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1306
    functionName: dulwich.pack._compute_object_size
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    - dulwich.pack.chunks_length
    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 0x7febad907a30>
    - <ast.Name object at 0x7febad907460>
    argNames:
    - self
    - read_all
    - read_some
    - zlib_bufsize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1321
    functionName: dulwich.pack.PackStreamReader.__init__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - io.BytesIO
    - collections.deque
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque
    functionSourceFile: collections
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - read
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1346
    functionName: dulwich.pack.PackStreamReader._read
    functionSourceFile: dulwich.pack
    functionUses: 52
    functionsReached:
    - <builtin>.bytes
    - <builtin>.bytearray
    - <builtin>.len
    - <builtin>.range
    - hashlib.sha1.update
    - <builtin>.max
    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: 1379
    functionName: dulwich.pack.PackStreamReader._buf_len
    functionSourceFile: dulwich.pack
    functionUses: 53
    functionsReached:
    - io.BytesIO.tell
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1388
    functionName: dulwich.pack.PackStreamReader.offset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - read
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1500
    functionName: dulwich.pack.PackStreamCopier._read
    functionSourceFile: dulwich.pack
    functionUses: 52
    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: 1411
    functionName: dulwich.pack.PackStreamReader.__len__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae001670>
    argNames:
    - self
    - compute_crc32
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1415
    functionName: dulwich.pack.PackStreamReader.read_objects
    functionSourceFile: dulwich.pack
    functionUses: 4
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - io.BytesIO.seek
    - struct.unpack_from
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - hashlib.sha1.digest
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - io.BytesIO.write
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - ChecksumMismatch
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf0b2a60>
    argNames:
    - self
    - read_all
    - read_some
    - outfile
    - delta_iter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1478
    functionName: dulwich.pack.PackStreamCopier.__init__
    functionSourceFile: dulwich.pack
    functionUses: 3
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf142a30>
    argNames:
    - self
    - progress
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1506
    functionName: dulwich.pack.PackStreamCopier.verify
    functionSourceFile: dulwich.pack
    functionUses: 3
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - io.BytesIO.seek
    - struct.unpack_from
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - hashlib.sha1.digest
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - dulwich.pack.PackStreamReader.read_objects
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - io.BytesIO.write
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - num_type
    - length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 268
    functionName: dulwich.objects.object_header
    functionSourceFile: dulwich.objects
    functionUses: 7
    functionsReached:
    - dulwich.objects.object_class
    - _TYPE_MAP.get
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf54b670>
    - <ast.Constant object at 0x7febaf54b100>
    - <ast.BinOp object at 0x7febaf54b3d0>
    argNames:
    - f
    - start_ofs
    - end_ofs
    - buffer_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1534
    functionName: dulwich.pack.compute_file_sha
    functionSourceFile: dulwich.pack
    functionUses: 12
    functionsReached:
    - typing.cast.read
    - dulwich.file._GitFile.tell
    - hashlib.sha1
    - <builtin>.len
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - <builtin>.min
    - io.BytesIO.tell
    - tempfile.SpooledTemporaryFile.seek
    - hashlib.sha1.update
    - dulwich.file._GitFile.seek
    - typing.cast.seek
    - typing.cast.tell
    - dulwich.file._GitFile.read
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.SpooledTemporaryFile.seek
    functionSourceFile: tempfile
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.seek
    functionSourceFile: typing
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.tell
    functionSourceFile: typing
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.SpooledTemporaryFile.tell
    functionSourceFile: tempfile
    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: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 181
    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 0x7febadf333d0>
    - <ast.Constant object at 0x7febadf335b0>
    argNames:
    - self
    - filename
    - file
    - size
    - delta_window_size
    - window_memory
    - delta_cache_size
    - depth
    - threads
    - big_file_threshold
    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: 1590
    functionName: dulwich.pack.PackData.__init__
    functionSourceFile: dulwich.pack
    functionUses: 28
    functionsReached:
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - os.fdopen
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1635
    functionName: dulwich.pack.PackData.filename
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.basename
    functionSourceFile: os
    functionUses: 17
    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: 1644
    functionName: dulwich.pack.PackData.path
    functionSourceFile: dulwich.pack
    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 0x7febada6fbe0>
    argNames:
    - cls
    - file
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1653
    functionName: dulwich.pack.PackData.from_file
    functionSourceFile: dulwich.pack
    functionUses: 9
    functionsReached:
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - os.fdopen
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1666
    functionName: dulwich.pack.PackData.from_path
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - os.fdopen
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1677
    functionName: dulwich.pack.PackData.close
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - tempfile.SpooledTemporaryFile.close
    - tempfile.mkstemp
    - <builtin>.getattr
    - dulwich.file._fancy_rename
    - os.path.exists
    - os.replace
    - os.fsync
    - typing.cast.close
    - os.remove
    - <builtin>.str
    - io.BytesIO.close
    - os.close
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.rename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.close
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.SpooledTemporaryFile.close
    functionSourceFile: tempfile
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.close
    functionSourceFile: io
    functionUses: 37
    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: 1681
    functionName: dulwich.pack.PackData.__enter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1685
    functionName: dulwich.pack.PackData.__exit__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.SwiftPackData.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 709
    functionName: dulwich.contrib.swift.SwiftPackData.close
    functionSourceFile: ''
    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
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1694
    functionName: dulwich.pack.PackData.__eq__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - typing.cast.read
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.pack.PackData.get_stored_checksum
    - tempfile.SpooledTemporaryFile.read
    - dulwich.contrib.swift.SwiftPackData.get_stored_checksum
    - dulwich.contrib.swift.SwiftPackReader.read_checksum
    - tempfile.SpooledTemporaryFile.seek
    - <builtin>.str
    - other.get_stored_checksum
    - dulwich.file._GitFile.seek
    - typing.cast.seek
    - <builtin>.isinstance
    - ret.read
    - dulwich.file._GitFile.read
    - io.BytesIO.read
    - io.BytesIO.seek
    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: 1880
    functionName: dulwich.pack.PackData.get_stored_checksum
    functionSourceFile: dulwich.pack
    functionUses: 5
    functionsReached:
    - typing.cast.read
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - typing.cast.seek
    - dulwich.file._GitFile.read
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 700
    functionName: dulwich.contrib.swift.SwiftPackData.get_stored_checksum
    functionSourceFile: dulwich.contrib.swift
    functionUses: 5
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.contrib.swift.SwiftPackReader.read_checksum
    - <builtin>.str
    - <builtin>.isinstance
    - ret.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.get_stored_checksum
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1700
    functionName: dulwich.pack.PackData._get_size
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - os.path.getsize
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.getsize
    functionSourceFile: os
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1709
    functionName: dulwich.pack.PackData.__len__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1713
    functionName: dulwich.pack.PackData.calculate_checksum
    functionSourceFile: dulwich.pack
    functionUses: 5
    functionsReached:
    - typing.cast.read
    - dulwich.file._GitFile.tell
    - hashlib.sha1
    - <builtin>.len
    - tempfile.SpooledTemporaryFile.read
    - <builtin>.min
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - tempfile.SpooledTemporaryFile.seek
    - hashlib.sha1.update
    - dulwich.file._GitFile.seek
    - typing.cast.seek
    - typing.cast.tell
    - dulwich.pack.compute_file_sha
    - hashlib.sha1.digest
    - dulwich.file._GitFile.read
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - include_comp
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1720
    functionName: dulwich.pack.PackData.iter_unpacked
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - <builtin>.enumerate
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - io.BytesIO.read
    - dulwich.file._GitFile.tell
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - typing.cast.seek
    - dulwich.pack.PackStreamReader.read
    - <builtin>.map
    - typing.cast.tell
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febafe8d0a0>
    - <ast.Constant object at 0x7febafe8dca0>
    argNames:
    - self
    - progress
    - resolve_ext_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1737
    functionName: dulwich.pack.PackData.iterentries
    functionSourceFile: dulwich.pack
    functionUses: 8
    functionsReached:
    - PackIndexer.for_pack_data
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PackIndexer.for_pack_data
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaeb7ab80>
    - <ast.Constant object at 0x7febaeb7a5e0>
    argNames:
    - self
    - progress
    - resolve_ext_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1757
    functionName: dulwich.pack.PackData.sorted_entries
    functionSourceFile: dulwich.pack
    functionUses: 7
    functionsReached:
    - dulwich.pack.PackData.iterentries
    - PackIndexer.for_pack_data
    - <builtin>.sorted
    - <builtin>.enumerate
    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 0x7febaf57ffd0>
    - <ast.Constant object at 0x7febaf57f2b0>
    argNames:
    - self
    - filename
    - progress
    - resolve_ext_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1774
    functionName: dulwich.pack.PackData.create_index_v1
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - hashlib.sha1
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.min
    - <builtin>.getattr
    - hashlib.sha1.update
    - os.fspath
    - os.fdopen
    - io.BytesIO.read
    - io.BytesIO.seek
    - os.open
    - dulwich.file._GitFile.tell
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - hashlib.sha1.digest
    - typing.cast.read
    - <builtin>.open
    - PackIndexer.for_pack_data
    - dulwich.file.GitFile
    - <builtin>.ord
    - <builtin>.range
    - collections.defaultdict
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - dulwich.pack.compute_file_sha
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.file._GitFile.read
    - dulwich.pack.PackData.iterentries
    - io.BytesIO.write
    - dulwich.pack.PackData.sorted_entries
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - dulwich.pack.write_pack_index_v1
    - io.BytesIO.tell
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - dulwich.pack.PackData.calculate_checksum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - f
    - entries
    - pack_checksum
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3152
    functionName: dulwich.pack.write_pack_index_v1
    functionSourceFile: dulwich.pack
    functionUses: 10
    functionsReached:
    - io.BytesIO.write
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - <builtin>.len
    - <builtin>.ord
    - collections.defaultdict
    - <builtin>.range
    - struct.pack
    - dulwich.pack.SHA1Writer.write_sha
    - hashlib.sha1.digest
    - dulwich.pack.SHA1Writer.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1f6ee0>
    - <ast.Constant object at 0x7febaf1f6eb0>
    argNames:
    - self
    - filename
    - progress
    - resolve_ext_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1800
    functionName: dulwich.pack.PackData.create_index_v2
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - hashlib.sha1
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.min
    - <builtin>.getattr
    - hashlib.sha1.update
    - os.fspath
    - io.BytesIO.read
    - io.BytesIO.seek
    - os.fdopen
    - os.open
    - dulwich.file._GitFile.tell
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - hashlib.sha1.digest
    - typing.cast.read
    - <builtin>.open
    - PackIndexer.for_pack_data
    - dulwich.pack.write_pack_index_v2
    - io.BytesIO.write_sha
    - dulwich.file.GitFile
    - <builtin>.ord
    - collections.defaultdict
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - largetable.append
    - dulwich.pack.compute_file_sha
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.file._GitFile.read
    - dulwich.pack.PackData.iterentries
    - io.BytesIO.write
    - dulwich.pack.PackData.sorted_entries
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - dulwich.pack.PackData.calculate_checksum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 11
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - f
    - entries
    - pack_checksum
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3340
    functionName: dulwich.pack.write_pack_index_v2
    functionSourceFile: dulwich.pack
    functionUses: 14
    functionsReached:
    - io.BytesIO.write
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - <builtin>.len
    - io.BytesIO.write_sha
    - <builtin>.ord
    - <builtin>.range
    - collections.defaultdict
    - struct.pack
    - dulwich.pack.SHA1Writer.write_sha
    - largetable.append
    - hashlib.sha1.digest
    - dulwich.pack.SHA1Writer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1f6730>
    - <ast.Constant object at 0x7febaf1f6fd0>
    - <ast.Constant object at 0x7febaf1f6280>
    argNames:
    - self
    - filename
    - progress
    - resolve_ext_ref
    - hash_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1820
    functionName: dulwich.pack.PackData.create_index_v3
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - hashlib.sha1
    - <builtin>.min
    - <builtin>.getattr
    - hashlib.sha1.update
    - os.fspath
    - f.write_sha
    - io.BytesIO.read
    - io.BytesIO.seek
    - os.fdopen
    - os.open
    - dulwich.file._GitFile.tell
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - <builtin>.list
    - hashlib.sha1.digest
    - typing.cast.read
    - <builtin>.open
    - PackIndexer.for_pack_data
    - dulwich.file.GitFile
    - <builtin>.ord
    - collections.defaultdict
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - largetable.append
    - dulwich.pack.compute_file_sha
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.file._GitFile.read
    - dulwich.pack.PackData.iterentries
    - dulwich.pack.PackData.sorted_entries
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - f.write
    - io.BytesIO.tell
    - dulwich.pack.write_pack_index_v3
    - typing.cast.seek
    - <builtin>.enumerate
    - typing.cast.tell
    - dulwich.pack.PackData.calculate_checksum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 13
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf3995b0>
    argNames:
    - f
    - entries
    - pack_checksum
    - hash_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3382
    functionName: dulwich.pack.write_pack_index_v3
    functionSourceFile: dulwich.pack
    functionUses: 10
    functionsReached:
    - hashlib.sha1
    - <builtin>.len
    - <builtin>.ord
    - f.write
    - <builtin>.range
    - collections.defaultdict
    - struct.pack
    - <builtin>.list
    - largetable.append
    - f.write_sha
    - dulwich.pack.SHA1Writer.__init__
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadf3bc70>
    - <ast.Constant object at 0x7febadf3baf0>
    - <ast.Constant object at 0x7febadf3b670>
    - <ast.Constant object at 0x7febadf3b520>
    argNames:
    - self
    - filename
    - progress
    - version
    - resolve_ext_ref
    - hash_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1844
    functionName: dulwich.pack.PackData.create_index
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.pack.PackData.create_index_v2
    - hashlib.sha1.update
    - os.fspath
    - f.write_sha
    - io.BytesIO.read
    - os.fdopen
    - io.BytesIO.seek
    - os.open
    - dulwich.file._GitFile.tell
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - <builtin>.list
    - hashlib.sha1.digest
    - <builtin>.open
    - typing.cast.read
    - PackIndexer.for_pack_data
    - dulwich.pack.write_pack_index_v2
    - io.BytesIO.write_sha
    - dulwich.file.GitFile
    - <builtin>.ord
    - dulwich.pack.PackData.create_index_v1
    - collections.defaultdict
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - dulwich.pack.PackData.create_index_v3
    - largetable.append
    - dulwich.pack.compute_file_sha
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.file._GitFile.read
    - dulwich.pack.PackData.iterentries
    - io.BytesIO.write
    - dulwich.pack.PackData.sorted_entries
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - f.write
    - dulwich.pack.write_pack_index_v1
    - io.BytesIO.tell
    - dulwich.pack.write_pack_index_v3
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - dulwich.pack.PackData.calculate_checksum
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1885
    functionName: dulwich.pack.PackData.check
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - hashlib.sha1
    - dulwich.pack.PackData.get_stored_checksum
    - <builtin>.min
    - hashlib.sha1.update
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.file._GitFile.tell
    - <builtin>.len
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - hashlib.sha1.digest
    - typing.cast.read
    - dulwich.contrib.swift.SwiftPackData.get_stored_checksum
    - dulwich.contrib.swift.SwiftPackReader.read_checksum
    - <builtin>.isinstance
    - dulwich.pack.compute_file_sha
    - ret.read
    - dulwich.file._GitFile.read
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - <builtin>.str
    - typing.cast.seek
    - typing.cast.tell
    - dulwich.pack.PackData.calculate_checksum
    linkageType: pythonLinkage
    raised:
    - ChecksumMismatch
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - offset
    - include_comp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1892
    functionName: dulwich.pack.PackData.get_unpacked_object_at
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - io.BytesIO.read
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - typing.cast.seek
    - <builtin>.enumerate
    - <builtin>.map
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1902
    functionName: dulwich.pack.PackData.get_object_at
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - io.BytesIO.read
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - dulwich.pack.PackData.get_unpacked_object_at
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - unpacked._obj
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - typing.cast.seek
    - <builtin>.enumerate
    - <builtin>.map
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unpacked._obj
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - file_obj
    - resolve_ext_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1944
    functionName: dulwich.pack.DeltaChainIterator.__init__
    functionSourceFile: dulwich.pack
    functionUses: 2
    functionsReached:
    - collections.defaultdict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.defaultdict
    functionSourceFile: collections
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadfe2460>
    argNames:
    - cls
    - pack_data
    - resolve_ext_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1964
    functionName: dulwich.pack.DeltaChainIterator.for_pack_data
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.DeltaChainIterator.__init__
    - collections.defaultdict
    - walker.record
    - walker.set_pack_data
    - pack_data.iter_unpacked
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: walker.set_pack_data
    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: pack_data.iter_unpacked
    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: walker.record
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 5
    argDefaultValues: []
    argNames:
    - cls
    - pack
    - shas
    - allow_missing
    - resolve_ext_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1983
    functionName: dulwich.pack.DeltaChainIterator.for_pack_subset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - todo.pop
    - pack.index.object_offset
    - dulwich.pack.DeltaChainIterator.__init__
    - collections.defaultdict
    - walker.record
    - typing.NewType
    - <builtin>.isinstance
    - walker.set_pack_data
    - contextlib.suppress
    - pack.data.get_unpacked_object_at
    - <builtin>.set
    - pack.index.object_index
    - done.add
    - todo.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack.index.object_offset
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: todo.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: todo.pop
    functionSourceFile: <builtin>
    functionUses: 82
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack.data.get_unpacked_object_at
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: done.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack.index.object_index
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unpacked
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2033
    functionName: dulwich.pack.DeltaChainIterator.record
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pack_data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2053
    functionName: dulwich.pack.DeltaChainIterator.set_pack_data
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2061
    functionName: dulwich.pack.DeltaChainIterator._walk_all_chains
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - todo.pop
    - <builtin>.min
    - todo.extend
    - decomp_obj.decompress
    - hashlib.sha1.update
    - <builtin>.enumerate
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.DeltaChainIterator._ensure_no_pending
    - unpacked.sha
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.DeltaChainIterator._walk_ref_chains
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - dulwich.pack.DeltaChainIterator._result
    - <builtin>.ord
    - ret.append
    - itertools.chain
    - <builtin>.range
    - <builtin>.repr
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich._pack.apply_delta
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - typing.NewType
    - dulwich.pack.DeltaChainIterator._follow_chain
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.DeltaChainIterator._resolve_object
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - offset
    - obj_type_num
    - base_chunks
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2117
    functionName: dulwich.pack.DeltaChainIterator._follow_chain
    functionSourceFile: dulwich.pack
    functionUses: 3
    functionsReached:
    - todo.pop
    - <builtin>.min
    - todo.extend
    - decomp_obj.decompress
    - hashlib.sha1.update
    - <builtin>.enumerate
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - io.BytesIO.seek
    - unpacked.sha
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - dulwich.pack.DeltaChainIterator._result
    - <builtin>.ord
    - ret.append
    - itertools.chain
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich._pack.apply_delta
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.DeltaChainIterator._resolve_object
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2073
    functionName: dulwich.pack.DeltaChainIterator._walk_ref_chains
    functionSourceFile: dulwich.pack
    functionUses: 2
    functionsReached:
    - todo.pop
    - <builtin>.min
    - todo.extend
    - decomp_obj.decompress
    - hashlib.sha1.update
    - <builtin>.enumerate
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.DeltaChainIterator._ensure_no_pending
    - unpacked.sha
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - dulwich.pack.DeltaChainIterator._result
    - <builtin>.ord
    - ret.append
    - itertools.chain
    - <builtin>.range
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich._pack.apply_delta
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - typing.NewType
    - dulwich.pack.DeltaChainIterator._follow_chain
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.DeltaChainIterator._resolve_object
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2067
    functionName: dulwich.pack.DeltaChainIterator._ensure_no_pending
    functionSourceFile: dulwich.pack
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnresolvedDeltas
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unpacked
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2095
    functionName: dulwich.pack.DeltaChainIterator._result
    functionSourceFile: dulwich.pack
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - offset
    - obj_type_num
    - base_chunks
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2098
    functionName: dulwich.pack.DeltaChainIterator._resolve_object
    functionSourceFile: dulwich.pack
    functionUses: 4
    functionsReached:
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - io.BytesIO.seek
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich._pack.apply_delta
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._pack.apply_delta
    functionSourceFile: dulwich
    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: unpacked.sha
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: itertools.chain
    functionSourceFile: itertools
    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: todo.extend
    functionSourceFile: <builtin>
    functionUses: 79
    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: 2138
    functionName: dulwich.pack.DeltaChainIterator.__iter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - todo.pop
    - <builtin>.min
    - todo.extend
    - decomp_obj.decompress
    - hashlib.sha1.update
    - <builtin>.enumerate
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.DeltaChainIterator._ensure_no_pending
    - unpacked.sha
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.DeltaChainIterator._walk_ref_chains
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - typing.cast.read
    - dulwich.pack.DeltaChainIterator._result
    - <builtin>.ord
    - ret.append
    - itertools.chain
    - <builtin>.range
    - <builtin>.repr
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich._pack.apply_delta
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - typing.NewType
    - dulwich.pack.DeltaChainIterator._follow_chain
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.DeltaChainIterator._walk_all_chains
    - dulwich.pack.DeltaChainIterator._resolve_object
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2142
    functionName: dulwich.pack.DeltaChainIterator.ext_refs
    functionSourceFile: dulwich.pack
    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
    - unpacked
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2150
    functionName: dulwich.pack.UnpackedObjectIterator._result
    functionSourceFile: dulwich.pack
    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
    - unpacked
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2167
    functionName: dulwich.pack.PackIndexer._result
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - unpacked.sha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unpacked
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2183
    functionName: dulwich.pack.PackInflater._result
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - unpacked.sha_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unpacked.sha_file
    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
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2198
    functionName: dulwich.pack.SHA1Reader.__init__
    functionSourceFile: dulwich.pack
    functionUses: 23
    functionsReached:
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf080f70>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2207
    functionName: dulwich.pack.SHA1Reader.read
    functionSourceFile: dulwich.pack
    functionUses: 30
    functionsReached:
    - hashlib.sha1.update
    - dulwich.file._GitFile.read
    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 0x7febaf080970>
    argNames:
    - self
    - allow_empty
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2220
    functionName: dulwich.pack.SHA1Reader.check_sha
    functionSourceFile: dulwich.pack
    functionUses: 23
    functionsReached:
    - <builtin>.len
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - hashlib.sha1.digest
    - dulwich.file._GitFile.read
    - binascii.hexlify
    linkageType: pythonLinkage
    raised:
    - ChecksumMismatch
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2240
    functionName: dulwich.pack.SHA1Reader.close
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - tempfile.mkstemp
    - <builtin>.getattr
    - dulwich.file._fancy_rename
    - os.path.exists
    - os.replace
    - os.fsync
    - os.remove
    - <builtin>.str
    - os.close
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.rename
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2244
    functionName: dulwich.pack.SHA1Reader.tell
    functionSourceFile: dulwich.pack
    functionUses: 27
    functionsReached:
    - dulwich.file._GitFile.tell
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2249
    functionName: dulwich.pack.SHA1Reader.readable
    functionSourceFile: dulwich.pack
    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: 2253
    functionName: dulwich.pack.SHA1Reader.writable
    functionSourceFile: dulwich.pack
    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: 2257
    functionName: dulwich.pack.SHA1Reader.seekable
    functionSourceFile: dulwich.pack
    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: dulwich.pack.SHA1Reader.seekable.<lambda1>
    functionSourceFile: dulwich.pack
    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 0x7febafe38520>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2261
    functionName: dulwich.pack.SHA1Reader.seek
    functionSourceFile: dulwich.pack
    functionUses: 24
    functionsReached:
    - dulwich.file._GitFile.seek
    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: 2273
    functionName: dulwich.pack.SHA1Reader.flush
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - dulwich.file._GitFile.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf20ae50>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2278
    functionName: dulwich.pack.SHA1Reader.readline
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - dulwich.file._GitFile.readline
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf20aa00>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2289
    functionName: dulwich.pack.SHA1Reader.readlines
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.file._GitFile.readlines
    linkageType: 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: 2300
    functionName: dulwich.pack.SHA1Reader.writelines
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2304
    functionName: dulwich.pack.SHA1Reader.write
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2308
    functionName: dulwich.pack.SHA1Reader.__enter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - type
    - value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2312
    functionName: dulwich.pack.SHA1Reader.__exit__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - tempfile.mkstemp
    - <builtin>.getattr
    - dulwich.file._fancy_rename
    - os.path.exists
    - os.replace
    - os.fsync
    - os.remove
    - <builtin>.str
    - os.close
    - dulwich.pack.SHA1Reader.close
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.rename
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2321
    functionName: dulwich.pack.SHA1Reader.__iter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2325
    functionName: dulwich.pack.SHA1Reader.__next__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.readline
    - dulwich.file._GitFile.readline
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2339
    functionName: dulwich.pack.SHA1Reader.fileno
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.file._GitFile.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2343
    functionName: dulwich.pack.SHA1Reader.isatty
    functionSourceFile: dulwich.pack
    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: dulwich.pack.SHA1Reader.isatty.<lambda1>
    functionSourceFile: dulwich.pack
    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 0x7febaefed3d0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2347
    functionName: dulwich.pack.SHA1Reader.truncate
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2359
    functionName: dulwich.pack.SHA1Writer.__init__
    functionSourceFile: dulwich.pack
    functionUses: 40
    functionsReached:
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2370
    functionName: dulwich.pack.SHA1Writer.write
    functionSourceFile: dulwich.pack
    functionUses: 46
    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: 2384
    functionName: dulwich.pack.SHA1Writer.write_sha
    functionSourceFile: dulwich.pack
    functionUses: 40
    functionsReached:
    - io.BytesIO.write
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.len
    - hashlib.sha1.digest
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2396
    functionName: dulwich.pack.SHA1Writer.close
    functionSourceFile: dulwich.pack
    functionUses: 19
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.getattr
    - os.path.exists
    - os.replace
    - os.remove
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fsync
    - <builtin>.len
    - io.BytesIO.close
    - os.close
    - hashlib.sha1.digest
    - os.rename
    - io.BytesIO.write
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - <builtin>.str
    - dulwich.pack.SHA1Writer.close
    - dulwich.pack.SHA1Writer.write_sha
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2401
    functionName: dulwich.pack.SHA1Writer.offset
    functionSourceFile: dulwich.pack
    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: 2409
    functionName: dulwich.pack.SHA1Writer.tell
    functionSourceFile: dulwich.pack
    functionUses: 21
    functionsReached:
    - io.BytesIO.tell
    - dulwich.pack.SHA1Writer.tell
    - dulwich.file._GitFile.tell
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2414
    functionName: dulwich.pack.SHA1Writer.readable
    functionSourceFile: dulwich.pack
    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: 2418
    functionName: dulwich.pack.SHA1Writer.writable
    functionSourceFile: dulwich.pack
    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: 2422
    functionName: dulwich.pack.SHA1Writer.seekable
    functionSourceFile: dulwich.pack
    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: dulwich.pack.SHA1Writer.seekable.<lambda1>
    functionSourceFile: dulwich.pack
    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 0x7febadfcdc40>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2426
    functionName: dulwich.pack.SHA1Writer.seek
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Writer.seek
    - dulwich.file._GitFile.seek
    - io.BytesIO.seek
    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: 2438
    functionName: dulwich.pack.SHA1Writer.flush
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Writer.flush
    - io.BytesIO.flush
    - dulwich.file._GitFile.flush
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.flush
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febadfcd2b0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2443
    functionName: dulwich.pack.SHA1Writer.readline
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf5eae50>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2451
    functionName: dulwich.pack.SHA1Writer.readlines
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2459
    functionName: dulwich.pack.SHA1Writer.writelines
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf5ea880>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2468
    functionName: dulwich.pack.SHA1Writer.read
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: 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: 2476
    functionName: dulwich.pack.SHA1Writer.__enter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - type
    - value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2480
    functionName: dulwich.pack.SHA1Writer.__exit__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.getattr
    - os.path.exists
    - os.replace
    - os.remove
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fsync
    - <builtin>.len
    - io.BytesIO.close
    - os.close
    - hashlib.sha1.digest
    - os.rename
    - io.BytesIO.write
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - <builtin>.str
    - dulwich.pack.SHA1Writer.close
    - dulwich.pack.SHA1Writer.write_sha
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2489
    functionName: dulwich.pack.SHA1Writer.__iter__
    functionSourceFile: dulwich.pack
    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: 2493
    functionName: dulwich.pack.SHA1Writer.__next__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: 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: 2501
    functionName: dulwich.pack.SHA1Writer.fileno
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Writer.fileno
    - io.BytesIO.fileno
    - dulwich.file._GitFile.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2505
    functionName: dulwich.pack.SHA1Writer.isatty
    functionSourceFile: dulwich.pack
    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: dulwich.pack.SHA1Writer.isatty.<lambda1>
    functionSourceFile: dulwich.pack
    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 0x7febadac1520>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2509
    functionName: dulwich.pack.SHA1Writer.truncate
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - UnsupportedOperation
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - type_num
    - delta_base
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2518
    functionName: dulwich.pack.pack_object_header
    functionSourceFile: dulwich.pack
    functionUses: 34
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - header.append
    - ret.insert
    - header.extend
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.append
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.insert
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.extend
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febadab4370>
    argNames:
    - type
    - object
    - compression_level
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2553
    functionName: dulwich.pack.pack_object_chunks
    functionSourceFile: dulwich.pack
    functionUses: 33
    functionsReached:
    - <builtin>.bytes
    - compressor.flush
    - <builtin>.bytearray
    - header.append
    - zlib.compressobj
    - <builtin>.len
    - compressor.compress
    - ret.insert
    - header.extend
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    - object.as_raw_chunks
    - dulwich.pack.pack_object_header
    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: object.as_raw_chunks
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.compressobj
    functionSourceFile: zlib
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compressor.compress
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compressor.flush
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaec6ecd0>
    - <ast.UnaryOp object at 0x7febaec6e0d0>
    argNames:
    - write
    - type
    - object
    - sha
    - compression_level
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2592
    functionName: dulwich.pack.write_pack_object
    functionSourceFile: dulwich.pack
    functionUses: 6
    functionsReached:
    - <builtin>.bytes
    - compressor.flush
    - <builtin>.bytearray
    - header.append
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - <builtin>.len
    - compressor.compress
    - ret.insert
    - hashlib.sha1.update
    - binascii.crc32
    - header.extend
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    - object.as_raw_chunks
    - dulwich.pack.pack_object_header
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - filename
    - objects
    - deltify
    - delta_window_size
    - compression_level
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2618
    functionName: dulwich.pack.write_pack
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - difflib.SequenceMatcher
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.pack.write_pack_index
    - o.sha
    - dulwich.pack.full_unpacked_object
    - delta.append
    - magic.append
    - dulwich.pack.write_pack_index_v2
    - collections.defaultdict
    - <builtin>.range
    - o.as_raw_chunks
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - io.BytesIO.write
    - dulwich.pack.pack_objects_to_data.iter_without_path
    - dulwich.pack._encode_copy_operation
    - dulwich.pack.write_pack_index_v1
    - possible_bases.pop
    - dulwich.pack.write_pack_index_v3
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.pack_objects_to_data
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.list
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - <builtin>.open
    - compressor.flush
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - <builtin>.memoryview
    - <builtin>.ord
    - dulwich.pack.pack_header_chunks
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.pack.write_pack_objects
    - <builtin>.iter
    - collections.deque
    - os.fdopen
    - dulwich.file._GitFile.__init__
    - obj.raw_length
    - dulwich.pack.write_pack_data
    - ret.append
    - ret.insert
    - struct.pack
    - dulwich.pack._delta_encode_size
    - header.extend
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.__init__
    - magic.sort
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.pack._create_delta_py
    - dulwich.pack.deltify_pack_objects.objects_with_hints
    - dulwich.pack.pack_object_chunks
    - f.write
    - typing.cast
    - <builtin>.getattr
    - <builtin>.min
    - compressor.compress
    - scratch.append
    - f.write_sha
    - os.open
    - hashlib.sha1.digest
    - dulwich.pack.deltify_pack_objects
    - io.BytesIO.write_sha
    - dulwich.file.GitFile
    - largetable.append
    - dulwich.pack._create_delta_rs_wrapper
    - <builtin>.bytes
    - possible_bases.appendleft
    - <builtin>.bytearray
    - typing.cast.write
    - zlib.compressobj
    - entries.items
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - write
    - objects
    - delta_window_size
    - deltify
    - compression_level
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2976
    functionName: dulwich.pack.write_pack_objects
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    - dulwich.pack.pack_objects_to_data
    - collections.deque
    - hashlib.sha1
    - <builtin>.min
    - compressor.compress
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - dulwich.pack.sort_objects_for_delta
    - dulwich.pack.PackChunkGenerator.__init__
    - <builtin>.type
    - difflib.SequenceMatcher
    - scratch.append
    - object.as_raw_chunks
    - <builtin>.callable
    - difflib.SequenceMatcher.get_opcodes
    - unpacked.sha
    - <builtin>.len
    - o.sha
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.sum
    - obj.raw_length
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - magic.append
    - compressor.flush
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.write_pack_data
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - dulwich.pack.deltify_pack_objects
    - <builtin>.memoryview
    - header.append
    - ret.append
    - <builtin>.range
    - ret.insert
    - o.as_raw_chunks
    - dulwich.pack._delta_encode_size
    - struct.pack
    - header.extend
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - dulwich.pack.UnpackedObject.__init__
    - magic.sort
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.pack._create_delta_py
    - <builtin>.bytes
    - dulwich.pack.deltify_pack_objects.objects_with_hints
    - dulwich.pack.pack_objects_to_data.iter_without_path
    - possible_bases.appendleft
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - typing.cast.write
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - typing.cast
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entries.items
    functionSourceFile: <builtin>
    functionUses: 28
    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 0x7febaf066e20>
    - <ast.Constant object at 0x7febaf066be0>
    argNames:
    - f
    - entries
    - pack_checksum
    - progress
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3462
    functionName: dulwich.pack.write_pack_index
    functionSourceFile: dulwich.pack
    functionUses: 7
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - f.write_sha
    - <builtin>.len
    - <builtin>.list
    - hashlib.sha1.digest
    - dulwich.pack.write_pack_index_v2
    - io.BytesIO.write_sha
    - <builtin>.ord
    - <builtin>.range
    - collections.defaultdict
    - struct.pack
    - largetable.append
    - dulwich.pack.SHA1Writer.__init__
    - io.BytesIO.write
    - f.write
    - dulwich.pack.write_pack_index_v1
    - dulwich.pack.write_pack_index_v3
    - dulwich.pack.SHA1Writer.write_sha
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - num_objects
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2650
    functionName: dulwich.pack.pack_header_chunks
    functionSourceFile: dulwich.pack
    functionUses: 33
    functionsReached:
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.pack
    functionSourceFile: struct
    functionUses: 110
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - write
    - num_objects
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2657
    functionName: dulwich.pack.write_pack_header
    functionSourceFile: dulwich.pack
    functionUses: 6
    functionsReached:
    - warnings.warn
    - struct.pack
    - <builtin>.hasattr
    - dulwich.pack.pack_header_chunks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - container
    - object_ids
    - other_haves
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2675
    functionName: dulwich.pack.find_reusable_deltas
    functionSourceFile: dulwich.pack
    functionUses: 13
    functionsReached:
    - container.iter_unpacked_subset
    - <builtin>.len
    - typing.NewType
    - <builtin>.enumerate
    - dulwich.objects.sha_to_hex
    - <builtin>.set
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: container.iter_unpacked_subset
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - objects
    - window_size
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2712
    functionName: dulwich.pack.deltify_pack_objects
    functionSourceFile: dulwich.pack
    functionUses: 4
    functionsReached:
    - collections.deque
    - <builtin>.min
    - dulwich.pack.sort_objects_for_delta
    - difflib.SequenceMatcher
    - scratch.append
    - difflib.SequenceMatcher.get_opcodes
    - <builtin>.len
    - o.sha
    - delta.append
    - dulwich._pack.create_delta
    - <builtin>.sum
    - obj.raw_length
    - magic.append
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.memoryview
    - ret.append
    - <builtin>.range
    - o.as_raw_chunks
    - dulwich.pack._delta_encode_size
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - dulwich.pack.UnpackedObject.__init__
    - magic.sort
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.pack._create_delta_py
    - <builtin>.bytes
    - dulwich.pack.deltify_pack_objects.objects_with_hints
    - possible_bases.appendleft
    - <builtin>.bytearray
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2728
    functionName: dulwich.pack.deltify_pack_objects.objects_with_hints
    functionSourceFile: dulwich.pack
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - objects
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2743
    functionName: dulwich.pack.sort_objects_for_delta
    functionSourceFile: dulwich.pack
    functionUses: 18
    functionsReached:
    - <builtin>.isinstance
    - obj.raw_length
    - magic.append
    - magic.sort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf859f40>
    - <ast.Constant object at 0x7febaf859640>
    argNames:
    - objects
    - window_size
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2774
    functionName: dulwich.pack.deltas_from_sorted_objects
    functionSourceFile: dulwich.pack
    functionUses: 18
    functionsReached:
    - collections.deque
    - <builtin>.min
    - difflib.SequenceMatcher
    - scratch.append
    - difflib.SequenceMatcher.get_opcodes
    - <builtin>.len
    - o.sha
    - delta.append
    - dulwich._pack.create_delta
    - <builtin>.sum
    - <builtin>.memoryview
    - ret.append
    - <builtin>.range
    - o.as_raw_chunks
    - dulwich.pack._delta_encode_size
    - cdifflib.CSequenceMatcher
    - dulwich.pack.UnpackedObject.__init__
    - <builtin>.isinstance
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.pack._create_delta_py
    - <builtin>.bytes
    - possible_bases.appendleft
    - <builtin>.bytearray
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.raw_length
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: magic.append
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: magic.sort
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: o.as_raw_chunks
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - base_buf
    - target_buf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3214
    functionName: dulwich.pack._create_delta_py
    functionSourceFile: dulwich.pack
    functionUses: 19
    functionsReached:
    - <builtin>.bytes
    - difflib.SequenceMatcher.get_opcodes
    - <builtin>.bytearray
    - <builtin>.len
    - <builtin>.min
    - <builtin>.memoryview
    - dulwich.pack._encode_copy_operation
    - ret.append
    - <builtin>.range
    - dulwich.pack._delta_encode_size
    - difflib.SequenceMatcher
    - scratch.append
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - base_buf
    - target_buf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4054
    functionName: dulwich.pack._create_delta_rs_wrapper
    functionSourceFile: dulwich.pack
    functionUses: 19
    functionsReached:
    - dulwich._pack.create_delta
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: delta.append
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: o.sha
    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: possible_bases.appendleft
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: possible_bases.pop
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - objects
    - deltify
    - delta_window_size
    - ofs_delta
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2827
    functionName: dulwich.pack.pack_objects_to_data
    functionSourceFile: dulwich.pack
    functionUses: 3
    functionsReached:
    - <builtin>.iter
    - collections.deque
    - <builtin>.min
    - dulwich.pack.sort_objects_for_delta
    - difflib.SequenceMatcher
    - scratch.append
    - difflib.SequenceMatcher.get_opcodes
    - <builtin>.len
    - o.sha
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich._pack.create_delta
    - <builtin>.sum
    - obj.raw_length
    - magic.append
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.deltify_pack_objects
    - <builtin>.memoryview
    - ret.append
    - <builtin>.range
    - o.as_raw_chunks
    - dulwich.pack._delta_encode_size
    - cdifflib.CSequenceMatcher
    - dulwich.pack.UnpackedObject.__init__
    - <builtin>.isinstance
    - magic.sort
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.pack._create_delta_py
    - <builtin>.bytes
    - dulwich.pack.deltify_pack_objects.objects_with_hints
    - dulwich.pack.pack_objects_to_data.iter_without_path
    - possible_bases.appendleft
    - <builtin>.bytearray
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2864
    functionName: dulwich.pack.pack_objects_to_data.iter_without_path
    functionSourceFile: dulwich.pack
    functionUses: 4
    functionsReached:
    - o.sha
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.pack.full_unpacked_object
    - o.as_raw_chunks
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - o
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2914
    functionName: dulwich.pack.full_unpacked_object
    functionSourceFile: dulwich.pack
    functionUses: 22
    functionsReached:
    - o.sha
    - o.as_raw_chunks
    - <builtin>.map
    - dulwich.pack.UnpackedObject.__init__
    - <builtin>.sum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaf946910>
    - <ast.Constant object at 0x7febadfc4a30>
    - <ast.Constant object at 0x7febadfc4ac0>
    - <ast.Constant object at 0x7febadfc4eb0>
    - <ast.Constant object at 0x7febadfc49a0>
    - <ast.Constant object at 0x7febadfc4a60>
    argNames:
    - container
    - object_ids
    - delta_window_size
    - deltify
    - reuse_deltas
    - ofs_delta
    - other_haves
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2874
    functionName: dulwich.pack.generate_unpacked_objects
    functionSourceFile: dulwich.pack
    functionUses: 12
    functionsReached:
    - new_packs.append
    - difflib.SequenceMatcher
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - o.sha
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - delta.append
    - json.loads
    - magic.append
    - dulwich.objects.Blob.from_path
    - <builtin>.range
    - o.as_raw_chunks
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - <builtin>.map
    - name.endswith
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - os.fspath
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - name.startswith
    - <builtin>.len
    - dulwich._pack.create_delta
    - <builtin>.sum
    - dulwich.objects.Tree.from_path
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.memoryview
    - dulwich.pack.Pack.__init__
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - container.iter_unpacked_subset
    - <builtin>.iter
    - collections.deque
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.pack.find_reusable_deltas
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - <builtin>.super
    - todo.remove
    - <builtin>.set
    - obj.raw_length
    - dulwich.objects.hex_to_filename
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - ret.append
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - ret.read
    - magic.sort
    - dulwich.pack._create_delta_py
    - typing.cast
    - typing.NewType
    - typing.cast.encode
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - scratch.append
    - <builtin>.dict
    - pack_files.add
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.pack._create_delta_rs_wrapper
    - <builtin>.bytes
    - possible_bases.appendleft
    - <builtin>.bytearray
    - <builtin>.enumerate
    - p.iterobjects_subset
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unpack.sha
    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: todo.keys
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - shas
    - allow_missing
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1260
    functionName: dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    functionSourceFile: dulwich.object_store
    functionUses: 13
    functionsReached:
    - <builtin>.iter
    - name.endswith
    - new_packs.append
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - os.fspath
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - name.startswith
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - <builtin>.len
    - os.path.join
    - <builtin>.super
    - pack_files.add
    - todo.remove
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.objects.Tree.from_path
    - json.loads
    - dulwich.objects.Blob.from_path
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - ret.append
    - typing.cast.decode
    - <builtin>.isinstance
    - ret.read
    - os.listdir
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - typing.cast
    - p.iterobjects_subset
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2eed30>
    - <ast.Constant object at 0x7febaf2ee1c0>
    - <ast.Constant object at 0x7febaf2eecd0>
    - <ast.UnaryOp object at 0x7febaf2eedf0>
    - <ast.Constant object at 0x7febaf2ee130>
    argNames:
    - write
    - container
    - object_ids
    - delta_window_size
    - deltify
    - reuse_deltas
    - compression_level
    - other_haves
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2932
    functionName: dulwich.pack.write_pack_from_container
    functionSourceFile: dulwich.pack
    functionUses: 7
    functionsReached:
    - new_packs.append
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - difflib.SequenceMatcher
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - o.sha
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - delta.append
    - json.loads
    - magic.append
    - dulwich.objects.Blob.from_path
    - dulwich.pack.generate_unpacked_objects
    - <builtin>.range
    - o.as_raw_chunks
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - binascii.crc32
    - <builtin>.map
    - name.endswith
    - hashlib.sha1
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - name.startswith
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.objects.Tree.from_path
    - compressor.flush
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - <builtin>.memoryview
    - dulwich.pack.Pack.__init__
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.pack.pack_header_chunks
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - container.iter_unpacked_subset
    - <builtin>.iter
    - collections.deque
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.pack.find_reusable_deltas
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - <builtin>.super
    - obj.raw_length
    - <builtin>.set
    - todo.remove
    - dulwich.objects.hex_to_filename
    - dulwich.pack.write_pack_data
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - ret.append
    - ret.insert
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - struct.pack
    - header.extend
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - ret.read
    - magic.sort
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.pack._create_delta_py
    - dulwich.pack.pack_object_chunks
    - typing.cast
    - typing.NewType
    - typing.cast.encode
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - compressor.compress
    - scratch.append
    - <builtin>.dict
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.pack._create_delta_rs_wrapper
    - <builtin>.bytes
    - possible_bases.appendleft
    - <builtin>.bytearray
    - typing.cast.write
    - zlib.compressobj
    - <builtin>.enumerate
    - p.iterobjects_subset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - write
    - records
    - num_records
    - progress
    - compression_level
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3118
    functionName: dulwich.pack.write_pack_data
    functionSourceFile: dulwich.pack
    functionUses: 20
    functionsReached:
    - <builtin>.iter
    - hashlib.sha1
    - compressor.compress
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - <builtin>.type
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - dulwich.pack.PackChunkGenerator.sha1digest
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - typing.cast.write
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - typing.cast
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaefb86a0>
    - <ast.Constant object at 0x7febaefb8580>
    - <ast.Constant object at 0x7febaefb8520>
    - <ast.UnaryOp object at 0x7febaefb8c10>
    - <ast.Constant object at 0x7febaefb86d0>
    argNames:
    - self
    - num_records
    - records
    - progress
    - compression_level
    - reuse_compressed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3008
    functionName: dulwich.pack.PackChunkGenerator.__init__
    functionSourceFile: dulwich.pack
    functionUses: 24
    functionsReached:
    - <builtin>.iter
    - hashlib.sha1
    - compressor.compress
    - hashlib.sha1.update
    - <builtin>.type
    - object.as_raw_chunks
    - unpacked.sha
    - <builtin>.len
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - records
    - num_records
    - progress
    - compression_level
    - reuse_compressed
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3045
    functionName: dulwich.pack.PackChunkGenerator._pack_data_chunks
    functionSourceFile: dulwich.pack
    functionUses: 25
    functionsReached:
    - compressor.compress
    - hashlib.sha1.update
    - <builtin>.type
    - object.as_raw_chunks
    - unpacked.sha
    - <builtin>.len
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - header.append
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: 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: 3037
    functionName: dulwich.pack.PackChunkGenerator.sha1digest
    functionSourceFile: dulwich.pack
    functionUses: 21
    functionsReached:
    - hashlib.sha1.digest
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 3041
    functionName: dulwich.pack.PackChunkGenerator.__iter__
    functionSourceFile: dulwich.pack
    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>.type
    functionSourceFile: <builtin>
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.callable
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3915
    functionName: dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    functionSourceFile: ''
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 488
    functionName: dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    functionSourceFile: ''
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.write
    functionSourceFile: typing
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.pack.write_pack_index_v1.<lambda1>
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - size
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3183
    functionName: dulwich.pack._delta_encode_size
    functionSourceFile: dulwich.pack
    functionUses: 20
    functionsReached:
    - <builtin>.bytes
    - ret.append
    - <builtin>.bytearray
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - start
    - length
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3201
    functionName: dulwich.pack._encode_copy_operation
    functionSourceFile: dulwich.pack
    functionUses: 20
    functionsReached:
    - <builtin>.bytes
    - scratch.append
    - <builtin>.bytearray
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scratch.append
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: difflib.SequenceMatcher
    functionSourceFile: difflib
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cdifflib.CSequenceMatcher
    functionSourceFile: cdifflib
    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: difflib.SequenceMatcher.get_opcodes
    functionSourceFile: difflib
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.memoryview
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 3
    IfCount: 11
    argCount: 2
    argDefaultValues: []
    argNames:
    - src_buf
    - delta
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3264
    functionName: dulwich.pack.apply_delta
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.ord
    - <builtin>.range
    - dulwich.pack.apply_delta.get_delta_header_size
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    - out.append
    - dulwich.pack.chunks_length
    linkageType: pythonLinkage
    raised:
    - ApplyDeltaError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - delta
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3281
    functionName: dulwich.pack.apply_delta.get_delta_header_size
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: out.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.pack.write_pack_index_v2.<lambda1>
    functionSourceFile: dulwich.pack
    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: largetable.append
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.write_sha
    functionSourceFile: io
    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: f.write
    functionSourceFile: <builtin>
    functionUses: 412
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.pack.write_pack_index_v3.<lambda1>
    functionSourceFile: dulwich.pack
    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: f.write_sha
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febadc36af0>
    argNames:
    - self
    - basename
    - resolve_ext_ref
    - delta_window_size
    - window_memory
    - delta_cache_size
    - depth
    - threads
    - big_file_threshold
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3504
    functionName: dulwich.pack.Pack.__init__
    functionSourceFile: dulwich.pack
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.pack.Pack.__init__.<lambda1>
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - os.fdopen
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.pack.Pack.__init__.<lambda2>
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - mmap.mmap
    - dulwich.pack.load_pack_index
    - <builtin>.getattr
    - os.fspath
    - io.BytesIO.read
    - os.fdopen
    - os.open
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - struct.unpack
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - io.BytesIO.fileno
    - <builtin>.open
    - dulwich.file.GitFile
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - <builtin>.isinstance
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - data_fn
    - idx_fn
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3554
    functionName: dulwich.pack.Pack.from_lazy_objects
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - dulwich.pack.Pack.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - data
    - idx
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3564
    functionName: dulwich.pack.Pack.from_objects
    functionSourceFile: dulwich.pack
    functionUses: 11
    functionsReached:
    - ret.check_length_and_checksum
    - dulwich.pack.Pack.__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: ret.check_length_and_checksum
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3574
    functionName: dulwich.pack.Pack.name
    functionSourceFile: dulwich.pack
    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: 9
    functionLinenumber: 3579
    functionName: dulwich.pack.Pack.data
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.lru_cache.LRUSizeCache.__init__
    - <builtin>.min
    - <builtin>.getattr
    - hashlib.sha1.update
    - os.fspath
    - dulwich.contrib.swift.SwiftPack.__init__.<lambda3>
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - io.BytesIO.read
    - os.open
    - os.fdopen
    - struct.unpack_from
    - dulwich.contrib.swift.SwiftPackData.__init__
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.lru_cache.LRUSizeCache._update_max_size
    - <builtin>.max
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - dulwich.pack.Pack.check_length_and_checksum
    - typing.cast.read
    - <builtin>.open
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.file.GitFile
    - <builtin>.range
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - dulwich.pack.Pack.__init__.<lambda1>
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - typing.cast
    - <builtin>.str
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: dulwich.contrib.swift.SwiftPack.__init__.<lambda3>
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.lru_cache.LRUSizeCache.__init__
    - <builtin>.min
    - hashlib.sha1.update
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - dulwich.pack.read_pack_header
    - io.BytesIO.seek
    - struct.unpack_from
    - dulwich.contrib.swift.SwiftPackData.__init__
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - dulwich.lru_cache.LRUSizeCache._update_max_size
    - <builtin>.max
    - dulwich.lru_cache.LRUCache._remove_lru
    - io.BytesIO
    - typing.cast.read
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.range
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - typing.cast
    - <builtin>.str
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3704
    functionName: dulwich.pack.Pack.check_length_and_checksum
    functionSourceFile: dulwich.pack
    functionUses: 8
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ChecksumMismatch
    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: 3588
    functionName: dulwich.pack.Pack.index
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - mmap.mmap
    - dulwich.pack.load_pack_index
    - <builtin>.getattr
    - dulwich.contrib.swift.swift_load_pack_index
    - os.fspath
    - io.BytesIO.read
    - os.fdopen
    - os.open
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - dulwich.pack.Pack.__init__.<lambda2>
    - struct.unpack
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.contrib.swift.SwiftPack.__init__.<lambda2>
    - io.BytesIO.fileno
    - io.BytesIO
    - <builtin>.open
    - dulwich.file.GitFile
    - scon.get_object
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - <builtin>.isinstance
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.contrib.swift.SwiftPack.__init__.<lambda2>
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - mmap.mmap
    - dulwich.contrib.swift.swift_load_pack_index
    - io.BytesIO.read
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - struct.unpack
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.fileno
    - io.BytesIO
    - scon.get_object
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - <builtin>.isinstance
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 3599
    functionName: dulwich.pack.Pack.bitmap
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - os.fspath
    - name_hash_cache.append
    - io.BytesIO.read
    - os.fdopen
    - os.open
    - dulwich.bitmap.BitmapEntry.__init__
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap._decode
    - dulwich.bitmap.EWAHBitmap.__init__
    - obj_pos.to_bytes
    - dulwich.file._GitFile.__init__
    - words.append
    - bitmap.entries_list.append
    - io.BytesIO
    - <builtin>.set
    - type_bitmap._decode
    - <builtin>.open
    - lookup_table.append
    - dulwich.file.GitFile
    - dulwich.bitmap.PackBitmap.__init__
    - f.read
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.bitmap.read_bitmap_file
    - dulwich.bitmap.read_bitmap
    - <builtin>.enumerate
    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 0x7febaef5e490>
    argNames:
    - filename
    - pack_index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 504
    functionName: dulwich.bitmap.read_bitmap
    functionSourceFile: dulwich.bitmap
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - os.fspath
    - name_hash_cache.append
    - io.BytesIO.read
    - os.fdopen
    - os.open
    - dulwich.bitmap.BitmapEntry.__init__
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap._decode
    - dulwich.bitmap.EWAHBitmap.__init__
    - obj_pos.to_bytes
    - dulwich.file._GitFile.__init__
    - words.append
    - bitmap.entries_list.append
    - io.BytesIO
    - <builtin>.set
    - type_bitmap._decode
    - <builtin>.open
    - lookup_table.append
    - dulwich.file.GitFile
    - dulwich.bitmap.PackBitmap.__init__
    - f.read
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.bitmap.read_bitmap_file
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5a5850>
    - <ast.Constant object at 0x7febaf5a55b0>
    argNames:
    - self
    - object_store
    - refs
    - commit_interval
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3614
    functionName: dulwich.pack.Pack.ensure_bitmap
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - commit_bitmaps.append
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.pack.Pack.get_stored_checksum
    - dulwich.pack.PackIndex3._unpack_name
    - collections.deque
    - dulwich.pack.PackIndex3._unpack_entry
    - dulwich.pack.PackIndex2._unpack_offset
    - dulwich.bitmap.build_reachability_bitmap
    - dulwich.pack.PackIndex2._unpack_entry
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.objects.sha_to_hex
    - dulwich.bitmap.EWAHBitmap.add
    - os.fspath
    - ref_commits.add
    - dulwich.pack.PackIndex2._unpack_crc32_checksum
    - selected.add
    - dulwich.bitmap.write_bitmap_file
    - binascii.hexlify
    - io.BytesIO.read
    - os.fdopen
    - os.open
    - dulwich.bitmap.BitmapEntry.__init__
    - seen.add
    - struct.unpack_from
    - binascii.unhexlify
    - dulwich.bitmap.select_bitmap_commits
    - collections.deque.append
    - <builtin>.len
    - dulwich.bitmap.build_type_bitmaps
    - dulwich.bitmap.generate_bitmap
    - dulwich.bitmap.EWAHBitmap.__init__
    - dulwich.bitmap.EWAHBitmap._decode
    - struct.unpack
    - dulwich.file._GitFile.__init__
    - msg.encode
    - compressed.append
    - <builtin>.max
    - words.append
    - io.BytesIO
    - obj.items
    - <builtin>.set
    - dulwich.pack.PackIndex1._unpack_entry
    - pack_bitmap.entries_list.append
    - type_bitmap.encode
    - dulwich.object_store.DiskObjectStore._complete_pack.<lambda1>
    - dulwich.objects.hex_to_sha
    - <builtin>.open
    - dulwich.bitmap.build_name_hash_cache
    - dulwich.bitmap._compute_name_hash
    - dulwich.bitmap.write_bitmap
    - sha_to_pos.items
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.bitmap.PackBitmap.__init__
    - selected.update
    - <builtin>.range
    - refs.items
    - dulwich.pack.PackIndex2._unpack_name
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - <builtin>.bytes
    - collections.deque.popleft
    - entry.bitmap.encode
    - dulwich.pack.PackIndex3._unpack_crc32_checksum
    - f.write
    - collections.deque.extend
    - dulwich.pack.Pack.name
    - bitmap.entries.items
    - typing.NewType
    - <builtin>.enumerate
    - dulwich.pack.FilePackIndex.iterentries
    - dulwich.bitmap.apply_xor_compression
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 3732
    functionName: dulwich.pack.Pack.get_stored_checksum
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 12
    IfCount: 15
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febae522910>
    - <ast.Constant object at 0x7febae5226d0>
    - <ast.Constant object at 0x7febae522370>
    - <ast.Constant object at 0x7febae5224c0>
    argNames:
    - pack_index
    - object_store
    - refs
    - pack_checksum
    - include_hash_cache
    - include_lookup_table
    - commit_interval
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1073
    functionName: dulwich.bitmap.generate_bitmap
    functionSourceFile: dulwich.bitmap
    functionUses: 4
    functionsReached:
    - commit_bitmaps.append
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.pack.PackIndex3._unpack_name
    - collections.deque
    - dulwich.pack.PackIndex3._unpack_entry
    - dulwich.pack.PackIndex2._unpack_offset
    - dulwich.bitmap.build_reachability_bitmap
    - dulwich.pack.PackIndex2._unpack_entry
    - <builtin>.min
    - dulwich.objects.sha_to_hex
    - dulwich.bitmap.EWAHBitmap.add
    - ref_commits.add
    - dulwich.pack.PackIndex2._unpack_crc32_checksum
    - selected.add
    - io.BytesIO.read
    - binascii.hexlify
    - dulwich.bitmap.BitmapEntry.__init__
    - seen.add
    - struct.unpack_from
    - binascii.unhexlify
    - dulwich.bitmap.select_bitmap_commits
    - collections.deque.append
    - <builtin>.len
    - dulwich.bitmap.build_type_bitmaps
    - dulwich.bitmap.EWAHBitmap.__init__
    - dulwich.bitmap.EWAHBitmap._decode
    - struct.unpack
    - msg.encode
    - compressed.append
    - <builtin>.max
    - words.append
    - io.BytesIO
    - obj.items
    - <builtin>.set
    - dulwich.pack.PackIndex1._unpack_entry
    - pack_bitmap.entries_list.append
    - dulwich.object_store.DiskObjectStore._complete_pack.<lambda1>
    - dulwich.objects.hex_to_sha
    - dulwich.bitmap.build_name_hash_cache
    - dulwich.bitmap._compute_name_hash
    - sha_to_pos.items
    - <builtin>.hasattr
    - dulwich.bitmap.PackBitmap.__init__
    - selected.update
    - <builtin>.range
    - refs.items
    - dulwich.pack.PackIndex2._unpack_name
    - <builtin>.sorted
    - <builtin>.isinstance
    - collections.deque.popleft
    - dulwich.pack.PackIndex3._unpack_crc32_checksum
    - collections.deque.extend
    - typing.NewType
    - <builtin>.enumerate
    - dulwich.pack.FilePackIndex.iterentries
    - dulwich.bitmap.apply_xor_compression
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - filename
    - bitmap
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 728
    functionName: dulwich.bitmap.write_bitmap
    functionSourceFile: dulwich.bitmap
    functionUses: 4
    functionsReached:
    - <builtin>.open
    - <builtin>.bytes
    - os.open
    - entry.bitmap.encode
    - type_bitmap.encode
    - <builtin>.len
    - <builtin>.getattr
    - dulwich.file.GitFile
    - f.write
    - dulwich.file._GitFile.__init__
    - os.fdopen
    - bitmap.entries.items
    - struct.pack
    - os.fspath
    - <builtin>.isinstance
    - dulwich.bitmap.write_bitmap_file
    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: 3666
    functionName: dulwich.pack.Pack.close
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3673
    functionName: dulwich.pack.Pack.__enter__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3677
    functionName: dulwich.pack.Pack.__exit__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.Pack.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3686
    functionName: dulwich.pack.Pack.__eq__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3692
    functionName: dulwich.pack.Pack.__len__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3696
    functionName: dulwich.pack.Pack.__repr__
    functionSourceFile: dulwich.pack
    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: 3700
    functionName: dulwich.pack.Pack.__iter__
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3720
    functionName: dulwich.pack.Pack.check
    functionSourceFile: dulwich.pack
    functionUses: 1
    functionsReached:
    - dulwich.pack.Pack.iterobjects
    - PackInflater.for_pack_data
    - obj.check
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3760
    functionName: dulwich.pack.Pack.iterobjects
    functionSourceFile: dulwich.pack
    functionUses: 3
    functionsReached:
    - <builtin>.iter
    - PackInflater.for_pack_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.check
    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: 3736
    functionName: dulwich.pack.Pack.pack_tuples
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.Pack.iterobjects
    - PackInflater.for_pack_data
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha1
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3740
    functionName: dulwich.pack.Pack.__contains__
    functionSourceFile: dulwich.pack
    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
    - sha1
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3748
    functionName: dulwich.pack.Pack.get_raw
    functionSourceFile: dulwich.pack
    functionUses: 9
    functionsReached:
    - dulwich._pack.apply_delta
    - <builtin>.len
    - dulwich.pack.Pack.get_ref
    - typing.cast
    - dulwich.pack.Pack.resolve_object
    - delta_stack.append
    - <builtin>.isinstance
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2af100>
    argNames:
    - self
    - offset
    - type
    - obj
    - get_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3865
    functionName: dulwich.pack.Pack.resolve_object
    functionSourceFile: dulwich.pack
    functionUses: 10
    functionsReached:
    - dulwich._pack.apply_delta
    - <builtin>.len
    - dulwich.pack.Pack.get_ref
    - typing.cast
    - delta_stack.append
    - <builtin>.isinstance
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised:
    - UnresolvedDeltas
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha1
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3755
    functionName: dulwich.pack.Pack.__getitem__
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.Pack.get_raw
    - dulwich._pack.apply_delta
    - dulwich.objects.ShaFile.from_raw_string
    - dulwich.objects.object_class
    - <builtin>.len
    - dulwich.pack.Pack.get_ref
    - typing.cast
    - _TYPE_MAP.get
    - obj.set_raw_string
    - dulwich.pack.Pack.resolve_object
    - delta_stack.append
    - <builtin>.isinstance
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadba4d30>
    argNames:
    - type_num
    - string
    - sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 632
    functionName: dulwich.objects.ShaFile.from_raw_string
    functionSourceFile: dulwich.objects
    functionUses: 5
    functionsReached:
    - dulwich.objects.object_class
    - _TYPE_MAP.get
    - obj.set_raw_string
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PackInflater.for_pack_data
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - shas
    - allow_missing
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3766
    functionName: dulwich.pack.Pack.iterobjects_subset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - PackInflater.for_pack_subset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PackInflater.for_pack_subset
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - shas
    - include_comp
    - allow_missing
    - convert_ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3781
    functionName: dulwich.pack.Pack.iter_unpacked_subset
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - dulwich.pack.Pack.iter_unpacked
    - unpacked.sha
    - <builtin>.len
    - collections.defaultdict
    - typing.NewType
    - ofs_pending.pop
    - dulwich.objects.sha_to_hex
    - <builtin>.isinstance
    - todo.remove
    - <builtin>.set
    - binascii.hexlify
    linkageType: pythonLinkage
    raised:
    - UnresolvedDeltas
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6a60>
    argNames:
    - self
    - include_comp
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3821
    functionName: dulwich.pack.Pack.iter_unpacked
    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: todo.remove
    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: ofs_pending.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf74e850>
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3833
    functionName: dulwich.pack.Pack.keep
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.open
    - <builtin>.getattr
    - dulwich.file.GitFile
    - dulwich.file._GitFile.__init__
    - os.fspath
    - <builtin>.isinstance
    - keepfile.write
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: keepfile.write
    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
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3848
    functionName: dulwich.pack.Pack.get_ref
    functionSourceFile: dulwich.pack
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: delta_stack.append
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf601550>
    argNames:
    - self
    - progress
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3932
    functionName: dulwich.pack.Pack.entries
    functionSourceFile: dulwich.pack
    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 0x7febaebdbb50>
    argNames:
    - self
    - progress
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3946
    functionName: dulwich.pack.Pack.sorted_entries
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sha
    - include_comp
    - convert_ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3962
    functionName: dulwich.pack.Pack.get_unpacked_object
    functionSourceFile: dulwich.pack
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - f
    - object_ids
    - get_raw
    - compression_level
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3985
    functionName: dulwich.pack.extend_pack
    functionSourceFile: dulwich.pack
    functionUses: 3
    functionsReached:
    - dulwich.midx.MultiPackIndex._get_oid
    - hashlib.sha1.update
    - object.as_raw_chunks
    - io.BytesIO.read
    - dulwich.file._GitFile.tell
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_header
    - extra_entries.append
    - warnings.warn
    - f.tell
    - dulwich.object_store.DiskObjectStore.get_midx
    - dulwich.objects.hex_to_sha
    - dulwich.midx.MultiPackIndex.__init__
    - <builtin>.range
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.load_midx_file
    - binascii.crc32
    - delta_stack.append
    - <builtin>.map
    - mmap.mmap
    - hashlib.sha1
    - dulwich.pack.write_pack_object
    - os.path.exists
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.pack.Pack.get_raw
    - <builtin>.open
    - compressor.flush
    - header.append
    - f.fileno
    - dulwich.pack.Pack.__init__
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.pack.pack_header_chunks
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - typing.cast.tell
    - <builtin>.reversed
    - os.fdopen
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - struct.unpack_from
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - f.read
    - ret.insert
    - struct.pack
    - os.fstat
    - header.extend
    - <builtin>.isinstance
    - ret.read
    - dulwich._pack.apply_delta
    - dulwich.pack.write_pack_header
    - dulwich.midx.MultiPackIndex._get_pack_info
    - dulwich.pack.pack_object_chunks
    - f.write
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - dulwich.object_store.DiskObjectStore.get_raw
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - <builtin>.min
    - <builtin>.getattr
    - compressor.compress
    - f.seek
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - struct.unpack
    - tempfile.SpooledTemporaryFile.seek
    - f.flush
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - hashlib.sha1.digest
    - typing.cast.read
    - pack_name.endswith
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.midx.load_midx
    - dulwich.pack.Pack.resolve_object
    - dulwich.pack.compute_file_sha
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - zlib.compressobj
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.seek
    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: f.flush
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2159
    functionName: dulwich.object_store.DiskObjectStore.get_raw
    functionSourceFile: dulwich.object_store
    functionUses: 7
    functionsReached:
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - mmap.mmap
    - dulwich.midx.MultiPackIndex._get_oid
    - <builtin>.min
    - os.path.exists
    - <builtin>.getattr
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - os.fspath
    - os.fdopen
    - os.open
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - struct.unpack
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.midx.MultiPackIndex._parse_header
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - dulwich.object_store.DiskObjectStore.get_midx
    - dulwich.objects.hex_to_sha
    - dulwich.pack.Pack.get_raw
    - <builtin>.open
    - pack_name.endswith
    - f.fileno
    - dulwich.file.GitFile
    - dulwich.midx.load_midx
    - dulwich.pack.Pack.__init__
    - <builtin>.range
    - f.read
    - dulwich.pack.Pack.resolve_object
    - os.fstat
    - <builtin>.isinstance
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich._pack.apply_delta
    - dulwich.midx.MultiPackIndex._get_pack_info
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.midx.load_midx_file
    - typing.cast
    - typing.NewType
    - delta_stack.append
    - dulwich.midx.MultiPackIndex.__init__
    - binascii.unhexlify
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.tell
    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: extra_entries.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._pack.create_delta
    functionSourceFile: dulwich
    functionUses: 20
    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: dulwich.lru_cache
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.object
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf7dd700>
    argNames:
    - self
    - key
    - value
    - cleanup
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 49
    functionName: dulwich.lru_cache._LRUNode.__init__
    functionSourceFile: dulwich.lru_cache
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: dulwich.lru_cache._LRUNode.__repr__
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: dulwich.lru_cache._LRUNode.run_cleanup
    functionSourceFile: dulwich.lru_cache
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4f2fd0>
    - <ast.Constant object at 0x7febaf4f2370>
    argNames:
    - self
    - max_cache
    - after_cleanup_count
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 83
    functionName: dulwich.lru_cache.LRUCache.__init__
    functionSourceFile: dulwich.lru_cache
    functionUses: 33
    functionsReached:
    - <builtin>.len
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.min
    - typing.cast
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.lru_cache.LRUCache.cleanup
    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 0x7febae001100>
    argNames:
    - self
    - max_cache
    - after_cleanup_count
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 320
    functionName: dulwich.lru_cache.LRUCache._update_max_cache
    functionSourceFile: dulwich.lru_cache
    functionUses: 35
    functionsReached:
    - <builtin>.len
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.min
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.lru_cache.LRUCache.cleanup
    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: 99
    functionName: dulwich.lru_cache.LRUCache.__contains__
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: dulwich.lru_cache.LRUCache.__getitem__
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 137
    functionName: dulwich.lru_cache.LRUCache.__len__
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: dulwich.lru_cache.LRUCache._walk_lru
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadf33310>
    argNames:
    - self
    - key
    - value
    - cleanup
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 178
    functionName: dulwich.lru_cache.LRUCache.add
    functionSourceFile: dulwich.lru_cache
    functionUses: 1
    functionsReached:
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.len
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.lru_cache.LRUCache._record_access
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.lru_cache._LRUNode.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - node
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 257
    functionName: dulwich.lru_cache.LRUCache._record_access
    functionSourceFile: dulwich.lru_cache
    functionUses: 3
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 243
    functionName: dulwich.lru_cache.LRUCache.cleanup
    functionSourceFile: dulwich.lru_cache
    functionUses: 38
    functionsReached:
    - <builtin>.len
    - dulwich.lru_cache._LRUNode.run_cleanup
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 208
    functionName: dulwich.lru_cache.LRUCache.cache_size
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf54b2b0>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 212
    functionName: dulwich.lru_cache.LRUCache.get
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - dulwich.lru_cache.LRUCache._record_access
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 228
    functionName: dulwich.lru_cache.LRUCache.keys
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 239
    functionName: dulwich.lru_cache.LRUCache.items
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 301
    functionName: dulwich.lru_cache.LRUCache._remove_lru
    functionSourceFile: dulwich.lru_cache
    functionUses: 40
    functionsReached:
    - dulwich.lru_cache._LRUNode.run_cleanup
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_node
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 253
    functionName: dulwich.lru_cache.LRUCache.__setitem__
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.lru_cache._LRUNode.__init__
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.lru_cache.LRUCache._record_access
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.lru_cache.LRUCache.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - node
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 283
    functionName: dulwich.lru_cache.LRUCache._remove_node
    functionSourceFile: dulwich.lru_cache
    functionUses: 43
    functionsReached:
    - dulwich.lru_cache._LRUNode.run_cleanup
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 310
    functionName: dulwich.lru_cache.LRUCache.clear
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - dulwich.lru_cache._LRUNode.run_cleanup
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae001e20>
    argNames:
    - self
    - max_cache
    - after_cleanup_count
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 316
    functionName: dulwich.lru_cache.LRUCache.resize
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.min
    - typing.cast
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.lru_cache.LRUCache.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.BinOp object at 0x7febaec28d90>
    - <ast.Constant object at 0x7febaec28c10>
    - <ast.Constant object at 0x7febaec28af0>
    argNames:
    - self
    - max_size
    - after_cleanup_size
    - compute_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 343
    functionName: dulwich.lru_cache.LRUSizeCache.__init__
    functionSourceFile: dulwich.lru_cache
    functionUses: 3
    functionsReached:
    - <builtin>.int
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.len
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.min
    - typing.cast
    - dulwich.lru_cache.LRUSizeCache._update_max_size
    - <builtin>.max
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.lru_cache.LRUCache.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8b2760>
    argNames:
    - self
    - max_size
    - after_cleanup_size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 433
    functionName: dulwich.lru_cache.LRUSizeCache._update_max_size
    functionSourceFile: dulwich.lru_cache
    functionUses: 5
    functionsReached:
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febae7e4b50>
    argNames:
    - self
    - key
    - value
    - cleanup
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 371
    functionName: dulwich.lru_cache.LRUSizeCache.add
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - dulwich.lru_cache.LRUSizeCache._remove_node
    - dulwich.lru_cache.LRUSizeCache.cleanup
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.len
    - dulwich.pack._compute_object_size
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.map
    - <builtin>.isinstance
    - <builtin>.sum
    - dulwich.lru_cache._LRUNode.__init__
    - dulwich.pack.chunks_length
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - node
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 422
    functionName: dulwich.lru_cache.LRUSizeCache._remove_node
    functionSourceFile: dulwich.lru_cache
    functionUses: 1
    functionsReached:
    - dulwich.lru_cache._LRUNode.run_cleanup
    - typing.cast
    - dulwich.lru_cache.LRUCache._remove_node
    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: 412
    functionName: dulwich.lru_cache.LRUSizeCache.cleanup
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaec31940>
    argNames:
    - self
    - max_size
    - after_cleanup_size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 427
    functionName: dulwich.lru_cache.LRUSizeCache.resize
    functionSourceFile: dulwich.lru_cache
    functionUses: 0
    functionsReached:
    - dulwich.lru_cache.LRUSizeCache._update_max_size
    - <builtin>.max
    - <builtin>.min
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.bitmap
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - words
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: dulwich.bitmap._encode_ewah_words
    functionSourceFile: dulwich.bitmap
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - literals.append
    - compressed_words.append
    - compressed_words.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: literals.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compressed_words.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compressed_words.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadf68790>
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 170
    functionName: dulwich.bitmap.EWAHBitmap.__init__
    functionSourceFile: dulwich.bitmap
    functionUses: 15
    functionsReached:
    - dulwich.bitmap.EWAHBitmap._decode
    - <builtin>.len
    - struct.unpack
    - <builtin>.range
    - words.append
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 182
    functionName: dulwich.bitmap.EWAHBitmap._decode
    functionSourceFile: dulwich.bitmap
    functionUses: 16
    functionsReached:
    - struct.unpack
    - <builtin>.len
    - <builtin>.range
    - words.append
    - io.BytesIO
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: words.append
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 249
    functionName: dulwich.bitmap.EWAHBitmap.encode
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - literals.append
    - io.BytesIO.write
    - compressed_words.append
    - dulwich.bitmap._encode_ewah_words
    - <builtin>.len
    - io.BytesIO.getvalue
    - struct.pack
    - <builtin>.max
    - io.BytesIO
    - compressed_words.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 291
    functionName: dulwich.bitmap.EWAHBitmap.__contains__
    functionSourceFile: dulwich.bitmap
    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: 302
    functionName: dulwich.bitmap.EWAHBitmap.__len__
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 310
    functionName: dulwich.bitmap.EWAHBitmap.__or__
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - dulwich.bitmap.EWAHBitmap._decode
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap.__init__
    - <builtin>.range
    - <builtin>.max
    - words.append
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 324
    functionName: dulwich.bitmap.EWAHBitmap.__and__
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - dulwich.bitmap.EWAHBitmap._decode
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap.__init__
    - <builtin>.range
    - <builtin>.max
    - words.append
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 338
    functionName: dulwich.bitmap.EWAHBitmap.__xor__
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - dulwich.bitmap.EWAHBitmap._decode
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap.__init__
    - <builtin>.range
    - <builtin>.max
    - words.append
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 352
    functionName: dulwich.bitmap.EWAHBitmap.__sub__
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - dulwich.bitmap.EWAHBitmap._decode
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap.__init__
    - <builtin>.range
    - words.append
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 369
    functionName: dulwich.bitmap.EWAHBitmap.add
    functionSourceFile: dulwich.bitmap
    functionUses: 7
    functionsReached:
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - object_pos
    - xor_offset
    - flags
    - bitmap
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 382
    functionName: dulwich.bitmap.BitmapEntry.__init__
    functionSourceFile: dulwich.bitmap
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febadaa84c0>
    - <ast.Name object at 0x7febadaa8850>
    argNames:
    - self
    - version
    - flags
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 410
    functionName: dulwich.bitmap.PackBitmap.__init__
    functionSourceFile: dulwich.bitmap
    functionUses: 8
    functionsReached:
    - dulwich.bitmap.EWAHBitmap._decode
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap.__init__
    - <builtin>.range
    - words.append
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - commit_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 443
    functionName: dulwich.bitmap.PackBitmap.get_bitmap
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - dulwich.bitmap.PackBitmap.get_bitmap
    - <builtin>.next
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - commit_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 484
    functionName: dulwich.bitmap.PackBitmap.has_commit
    functionSourceFile: dulwich.bitmap
    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: dulwich.bitmap.PackBitmap.iter_commits
    functionSourceFile: dulwich.bitmap
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 35
    ICount: 6
    IfCount: 24
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaef5e850>
    argNames:
    - f
    - pack_index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 525
    functionName: dulwich.bitmap.read_bitmap_file
    functionSourceFile: dulwich.bitmap
    functionUses: 2
    functionsReached:
    - name_hash_cache.append
    - dulwich.bitmap.BitmapEntry.__init__
    - lookup_table.append
    - <builtin>.len
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap._decode
    - dulwich.bitmap.EWAHBitmap.__init__
    - dulwich.bitmap.PackBitmap.__init__
    - f.read
    - obj_pos.to_bytes
    - <builtin>.range
    - words.append
    - <builtin>.enumerate
    - bitmap.entries_list.append
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    - type_bitmap._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: type_bitmap._decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bitmap.entries_list.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj_pos.to_bytes
    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: lookup_table.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name_hash_cache.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 16
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - bitmap
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 742
    functionName: dulwich.bitmap.write_bitmap_file
    functionSourceFile: dulwich.bitmap
    functionUses: 5
    functionsReached:
    - <builtin>.bytes
    - entry.bitmap.encode
    - <builtin>.len
    - f.write
    - bitmap.entries.items
    - struct.pack
    - type_bitmap.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: type_bitmap.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bitmap.entries.items
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.bitmap.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 801
    functionName: dulwich.bitmap._compute_name_hash
    functionSourceFile: dulwich.bitmap
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febae391730>
    argNames:
    - refs
    - object_store
    - commit_interval
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 820
    functionName: dulwich.bitmap.select_bitmap_commits
    functionSourceFile: dulwich.bitmap
    functionUses: 5
    functionsReached:
    - collections.deque
    - collections.deque.popleft
    - seen.add
    - collections.deque.append
    - selected.update
    - refs.items
    - ref_commits.add
    - <builtin>.sorted
    - <builtin>.isinstance
    - <builtin>.set
    - selected.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_commits.add
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selected.update
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque.popleft
    functionSourceFile: collections
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selected.add
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque.append
    functionSourceFile: collections
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - commit_sha
    - sha_to_pos
    - object_store
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 888
    functionName: dulwich.bitmap.build_reachability_bitmap
    functionSourceFile: dulwich.bitmap
    functionUses: 5
    functionsReached:
    - collections.deque
    - dulwich.bitmap.EWAHBitmap.add
    - io.BytesIO.read
    - seen.add
    - collections.deque.append
    - <builtin>.len
    - dulwich.bitmap.EWAHBitmap._decode
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap.__init__
    - <builtin>.max
    - words.append
    - obj.items
    - io.BytesIO
    - <builtin>.set
    - dulwich.objects.hex_to_sha
    - <builtin>.hasattr
    - <builtin>.range
    - <builtin>.isinstance
    - collections.deque.popleft
    - collections.deque.extend
    - typing.NewType
    - binascii.unhexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque.extend
    functionSourceFile: collections
    functionUses: 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: obj.items
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7febae4e8820>
    argNames:
    - bitmaps
    - max_xor_offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 943
    functionName: dulwich.bitmap.apply_xor_compression
    functionSourceFile: dulwich.bitmap
    functionUses: 5
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    - compressed.append
    - <builtin>.range
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compressed.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sha_to_pos
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 983
    functionName: dulwich.bitmap.build_type_bitmaps
    functionSourceFile: dulwich.bitmap
    functionUses: 5
    functionsReached:
    - sha_to_pos.items
    - <builtin>.len
    - dulwich.bitmap.EWAHBitmap._decode
    - struct.unpack
    - dulwich.bitmap.EWAHBitmap.__init__
    - <builtin>.range
    - typing.NewType
    - <builtin>.max
    - words.append
    - dulwich.objects.sha_to_hex
    - dulwich.bitmap.EWAHBitmap.add
    - io.BytesIO
    - <builtin>.set
    - io.BytesIO.read
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sha_to_pos.items
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - sha_to_pos
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1026
    functionName: dulwich.bitmap.build_name_hash_cache
    functionSourceFile: dulwich.bitmap
    functionUses: 5
    functionsReached:
    - dulwich.bitmap._compute_name_hash
    - sha_to_pos.items
    - <builtin>.len
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - <builtin>.isinstance
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.object_store.DiskObjectStore._complete_pack.<lambda1>
    functionSourceFile: dulwich.object_store
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_bitmaps.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: pack_bitmap.entries_list.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - commit_shas
    - packs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1192
    functionName: dulwich.bitmap.find_commit_bitmaps
    functionSourceFile: dulwich.bitmap
    functionUses: 14
    functionsReached:
    - dulwich.objects.hex_to_sha
    - remaining.remove
    - <builtin>.len
    - typing.NewType
    - <builtin>.enumerate
    - <builtin>.isinstance
    - pack_bitmap.has_commit
    - <builtin>.list
    - binascii.unhexlify
    - <builtin>.set
    - pack.index.iterentries
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack.index.iterentries
    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: pack_bitmap.has_commit
    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: remaining.remove
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadfcdb50>
    argNames:
    - bitmap
    - pack_index
    - type_filter
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1232
    functionName: dulwich.bitmap.bitmap_to_object_shas
    functionSourceFile: dulwich.bitmap
    functionUses: 13
    functionsReached:
    - pack_index.iterentries
    - result.add
    - <builtin>.len
    - typing.NewType
    - <builtin>.enumerate
    - dulwich.objects.sha_to_hex
    - <builtin>.set
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_index.iterentries
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.add
    functionSourceFile: <builtin>
    functionUses: 31
    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: dulwich.object_store
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: dulwich.object_store.GraphWalker.__next__
    functionSourceFile: dulwich.object_store
    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
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 132
    functionName: dulwich.object_store.GraphWalker.ack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 136
    functionName: dulwich.object_store.GraphWalker.nak
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadc32430>
    - <ast.Constant object at 0x7febadc329d0>
    argNames:
    - self
    - heads
    - exclude
    - shallow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 148
    functionName: dulwich.object_store.ObjectReachabilityProvider.get_reachable_commits
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadf8f9a0>
    argNames:
    - self
    - commits
    - exclude_commits
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 166
    functionName: dulwich.object_store.ObjectReachabilityProvider.get_reachable_objects
    functionSourceFile: dulwich.object_store
    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
    - tree_shas
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 182
    functionName: dulwich.object_store.ObjectReachabilityProvider.get_tree_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - store
    - heads
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 210
    functionName: dulwich.object_store.find_shallow
    functionSourceFile: dulwich.object_store
    functionUses: 10
    functionsReached:
    - store.get_commit_graph
    - todo.pop
    - dulwich.object_store.find_shallow.get_parents
    - todo.append
    - commit_graph.get_parents
    - todo.extend
    - shallow.add
    - not_shallow.add
    - parents.get
    - <builtin>.isinstance
    - <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: store.get_commit_graph
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 227
    functionName: dulwich.object_store.find_shallow.get_parents
    functionSourceFile: dulwich.object_store
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - commit_graph.get_parents
    - parents.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: parents.get
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_graph.get_parents
    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: todo.append
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: not_shallow.add
    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: shallow.add
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Lambda object at 0x7febaeca5c10>
    - <ast.Constant object at 0x7febaeca50d0>
    argNames:
    - store
    - head
    - get_parents
    - max_depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 268
    functionName: dulwich.object_store.get_depth
    functionSourceFile: dulwich.object_store
    functionUses: 3
    functionsReached:
    - dulwich.object_store.BaseObjectStore.<lambda2>
    - <builtin>.open
    - queue.pop
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - path.encode
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - commit_graph.get_parents
    - os.path.exists
    - os.path.join
    - <builtin>.max
    - dulwich.object_store.<lambda1>
    - <builtin>.isinstance
    - queue.extend
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 694
    functionName: dulwich.object_store.BaseObjectStore.get_commit_graph
    functionSourceFile: ''
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2060
    functionName: dulwich.object_store.DiskObjectStore.get_commit_graph
    functionSourceFile: dulwich.object_store
    functionUses: 19
    functionsReached:
    - <builtin>.open
    - dulwich.commit_graph.CommitGraph.__init__
    - path.encode
    - dulwich.commit_graph.CommitGraph.from_file
    - os.path.exists
    - os.path.join
    - <builtin>.isinstance
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: queue.pop
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.object_store.BaseObjectStore.<lambda2>
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.object_store.<lambda1>
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: queue.extend
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 315
    functionName: dulwich.object_store.PackContainer.add_pack
    functionSourceFile: dulwich.object_store
    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 0x7febae434af0>
    argNames:
    - self
    - refs
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 322
    functionName: dulwich.object_store.BaseObjectStore.determine_wants_all
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - queue.pop
    - path.encode
    - os.path.exists
    - queue.extend
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    - dulwich.object_store.get_depth
    - dulwich.object_store.BaseObjectStore._get_depth
    - dulwich.commit_graph.CommitGraph.__init__
    - commit_graph.get_parents
    - os.path.join
    - ref.endswith
    - <builtin>.max
    - <builtin>.open
    - dulwich.commit_graph.CommitGraph.from_file
    - refs.items
    - dulwich.object_store.<lambda1>
    - <builtin>.isinstance
    - dulwich.object_store.BaseObjectStore.<lambda2>
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.determine_wants_all._want_deepen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 327
    functionName: dulwich.object_store.BaseObjectStore.determine_wants_all._want_deepen
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - queue.pop
    - path.encode
    - os.path.exists
    - queue.extend
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    - dulwich.object_store.get_depth
    - dulwich.object_store.BaseObjectStore._get_depth
    - dulwich.commit_graph.CommitGraph.__init__
    - commit_graph.get_parents
    - os.path.join
    - <builtin>.max
    - <builtin>.open
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.object_store.<lambda1>
    - <builtin>.isinstance
    - dulwich.object_store.BaseObjectStore.<lambda2>
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Lambda object at 0x7febafdbce80>
    - <ast.Constant object at 0x7febafdbc2b0>
    argNames:
    - self
    - head
    - get_parents
    - max_depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 649
    functionName: dulwich.object_store.BaseObjectStore._get_depth
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - dulwich.object_store.BaseObjectStore.<lambda2>
    - <builtin>.open
    - queue.pop
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - path.encode
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - commit_graph.get_parents
    - os.path.exists
    - os.path.join
    - <builtin>.max
    - dulwich.object_store.<lambda1>
    - <builtin>.isinstance
    - queue.extend
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    - dulwich.object_store.get_depth
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 342
    functionName: dulwich.object_store.BaseObjectStore.contains_loose
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 346
    functionName: dulwich.object_store.BaseObjectStore.contains_packed
    functionSourceFile: dulwich.object_store
    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
    - sha1
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 350
    functionName: dulwich.object_store.BaseObjectStore.__contains__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - decompressed.find
    - dulwich.object_store.MemoryObjectStore.contains_loose
    - resp.close
    - dulwich.objects.sha_to_hex
    - sha.decode
    - binascii.hexlify
    - <builtin>.len
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - dulwich.object_store.MemoryObjectStore._to_hexsha
    - dulwich.object_store.BaseObjectStore.contains_loose
    - zlib.decompress
    - chunks.append
    - header.split
    - urllib.parse.urljoin
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.int
    - dulwich.dumb.DumbHTTPObjectStore.contains_loose
    - typing.cast
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 289
    functionName: dulwich.dumb.DumbHTTPObjectStore.contains_loose
    functionSourceFile: dulwich.dumb
    functionUses: 1
    functionsReached:
    - decompressed.find
    - <builtin>.int
    - <builtin>.len
    - zlib.decompress
    - chunks.append
    - urllib.parse.urljoin
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - resp.close
    - header.split
    - sha.decode
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2387
    functionName: dulwich.object_store.MemoryObjectStore.contains_loose
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - typing.cast
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.MemoryObjectStore._to_hexsha
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 358
    functionName: dulwich.object_store.BaseObjectStore.packs
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 362
    functionName: dulwich.object_store.BaseObjectStore.get_raw
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha1
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 371
    functionName: dulwich.object_store.BaseObjectStore.__getitem__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.object_store.BaseObjectStore.get_raw
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.midx.MultiPackIndex._get_oid
    - resp.close
    - obj.set_raw_string
    - ret.check_length_and_checksum
    - hashlib.sha1.update
    - io.BytesIO.read
    - binascii.hexlify
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - dulwich.midx.MultiPackIndex._parse_header
    - io.BytesIO.fileno
    - dulwich.object_store.DiskObjectStore.get_midx
    - dulwich.objects.hex_to_sha
    - dulwich.midx.MultiPackIndex.__init__
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.load_midx_file
    - dulwich.pack._load_file_contents
    - delta_stack.append
    - packs_data.strip
    - tempfile.mkdtemp
    - dulwich.pack.PackIndex3.__init__
    - dulwich._pack.bisect_find_sha
    - decompressed.find
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - os.path.exists
    - dulwich.pack.FilePackIndex.object_offset
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - _TYPE_MAP.get
    - pack.close
    - dulwich.pack.Pack.get_raw
    - <builtin>.open
    - f.fileno
    - dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - header.split
    - dulwich.object_store.MemoryObjectStore.get_raw
    - dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - line.startswith
    - <builtin>.int
    - pack_name.split
    - obj.as_raw_string
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - <builtin>.reversed
    - dulwich.objects.sha_to_hex
    - dulwich.pack.Pack.from_objects
    - os.fdopen
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.pack.load_pack_index_file
    - dulwich.midx.MultiPackIndex.object_offset
    - struct.unpack_from
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - dulwich.dumb.DumbHTTPObjectStore.get_raw
    - dulwich.objects.ShaFile.from_raw_string
    - dulwich.objects.object_class
    - zlib.decompress
    - chunks.append
    - ret.append
    - f.read
    - os.fstat
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - ret.read
    - dulwich._pack.apply_delta
    - dulwich.midx.MultiPackIndex._get_pack_info
    - f.write
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - dulwich.object_store.DiskObjectStore.get_raw
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - sha.decode
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - struct.unpack
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - dulwich.pack.FilePackIndex._object_offset
    - dulwich.object_store.MemoryObjectStore._to_hexsha
    - typing.cast.read
    - pack_name.endswith
    - dulwich.file.GitFile
    - dulwich.midx.load_midx
    - dulwich.pack.Pack.resolve_object
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.pack.PackIndex1.__init__
    - <builtin>.enumerate
    - dulwich.pack.PackIndex1._unpack_offset
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2404
    functionName: dulwich.object_store.MemoryObjectStore.get_raw
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - obj.as_raw_string
    - typing.cast
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.MemoryObjectStore._to_hexsha
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 264
    functionName: dulwich.dumb.DumbHTTPObjectStore.get_raw
    functionSourceFile: dulwich.dumb
    functionUses: 4
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - hashlib.sha1.update
    - resp.close
    - ret.check_length_and_checksum
    - io.BytesIO.read
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - io.BytesIO.fileno
    - dulwich.objects.hex_to_sha
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - packs_data.strip
    - tempfile.mkdtemp
    - dulwich.pack.PackIndex3.__init__
    - dulwich._pack.bisect_find_sha
    - decompressed.find
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - os.path.exists
    - dulwich.pack.FilePackIndex.object_offset
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - <builtin>.len
    - pack.close
    - <builtin>.open
    - dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - header.split
    - dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack
    - line.startswith
    - <builtin>.int
    - pack_name.split
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.Pack.from_objects
    - os.fdopen
    - struct.unpack_from
    - dulwich.pack.load_pack_index_file
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - zlib.decompress
    - chunks.append
    - ret.append
    - os.fstat
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - ret.read
    - f.write
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - sha.decode
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - struct.unpack
    - dulwich.pack.FilePackIndex._object_offset
    - typing.cast.read
    - pack_name.endswith
    - dulwich.file.GitFile
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.PackIndex1.__init__
    - <builtin>.enumerate
    - dulwich.pack.PackIndex1._unpack_offset
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 376
    functionName: dulwich.object_store.BaseObjectStore.__iter__
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 380
    functionName: dulwich.object_store.BaseObjectStore.add_object
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf60f700>
    argNames:
    - self
    - objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 384
    functionName: dulwich.object_store.BaseObjectStore.add_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf60f400>
    argNames:
    - self
    - prefer_bitmap
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 397
    functionName: dulwich.object_store.BaseObjectStore.get_reachability_provider
    functionSourceFile: dulwich.object_store
    functionUses: 11
    functionsReached:
    - dulwich.object_store.GraphTraversalReachability.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3450
    functionName: dulwich.object_store.GraphTraversalReachability.__init__
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaf60f7f0>
    - <ast.Constant object at 0x7febaf60fb50>
    - <ast.Constant object at 0x7febaf60f9d0>
    - <ast.Constant object at 0x7febaf60f370>
    - <ast.Constant object at 0x7febaf60ff40>
    argNames:
    - self
    - source
    - target
    - want_unchanged
    - include_trees
    - change_type_same
    - rename_detector
    - paths
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 415
    functionName: dulwich.object_store.BaseObjectStore.tree_changes
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.objects.Tree.__init__
    - todo.pop
    - stat.S_IFMT
    - todo.extend
    - dulwich.diff_tree.TreeChange.delete
    - <builtin>.super
    - dulwich.diff_tree.tree_changes
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - <builtin>.isinstance
    - dulwich._diff_tree._is_tree
    - stat.S_ISDIR
    - filter_path.startswith
    - dulwich.diff_tree.walk_trees
    - rename_detector.changes_with_renames
    - dulwich.diff_tree._skip_tree
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaf6792b0>
    - <ast.Constant object at 0x7febaf679790>
    - <ast.Constant object at 0x7febaf679280>
    - <ast.Constant object at 0x7febaf679130>
    - <ast.Constant object at 0x7febaf679ca0>
    argNames:
    - store
    - tree1_id
    - tree2_id
    - want_unchanged
    - rename_detector
    - include_trees
    - change_type_same
    - paths
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 276
    functionName: dulwich.diff_tree.tree_changes
    functionSourceFile: dulwich.diff_tree
    functionUses: 36
    functionsReached:
    - dulwich.objects.Tree.__init__
    - todo.pop
    - stat.S_IFMT
    - todo.extend
    - dulwich.diff_tree.TreeChange.delete
    - <builtin>.super
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - <builtin>.isinstance
    - dulwich._diff_tree._is_tree
    - stat.S_ISDIR
    - filter_path.startswith
    - dulwich.diff_tree.walk_trees
    - rename_detector.changes_with_renames
    - dulwich.diff_tree._skip_tree
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1c2250>
    argNames:
    - self
    - tree_id
    - include_trees
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 469
    functionName: dulwich.object_store.BaseObjectStore.iter_tree_contents
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.object_store.BaseObjectStore.iter_tree_contents
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - shas
    - allow_missing
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 489
    functionName: dulwich.object_store.BaseObjectStore.iterobjects_subset
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febb00dd0a0>
    - <ast.Constant object at 0x7febb00dd9a0>
    - <ast.Constant object at 0x7febadde18b0>
    argNames:
    - self
    - shas
    - include_comp
    - allow_missing
    - convert_ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 511
    functionName: dulwich.object_store.BaseObjectStore.iter_unpacked_subset
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.pack.UnpackedObject.__init__
    - <builtin>.sum
    - obj.as_raw_chunks
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.as_raw_chunks
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf327280>
    - <ast.Constant object at 0x7febaf327790>
    - <ast.Constant object at 0x7febaf327e50>
    - <ast.Lambda object at 0x7febaf327310>
    argNames:
    - self
    - haves
    - wants
    - shallow
    - progress
    - get_tagged
    - get_parents
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 552
    functionName: dulwich.object_store.BaseObjectStore.find_missing_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - typing.Protocol.as_dict
    - queue.pop
    - remaining.remove
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.reftable.RefRecord.__init__
    - dulwich.commit_graph.read_commit_graph
    - io.BytesIO.read
    - binascii.hexlify
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.object_store.<lambda2>
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - pack_bitmap.get_bitmap
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs._split_ref_line
    - commits.add
    - pack_bitmap.has_commit
    - warnings.warn
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.objects.hex_to_sha
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - want_others.difference
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.__init__
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - kset.add
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - value.hex
    - os.fspath
    - dulwich.object_store.MissingObjectFinder.__init__
    - queue.extend
    - graph._read_from_file
    - refs.keys
    - table_data.sort
    - logging.warning
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - stat.S_IFMT
    - all_refs.pop
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - <builtin>.open
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - dulwich.refs.RefsContainer.allkeys
    - <builtin>.frozenset
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - io.BytesIO.tell
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - filetree.iteritems
    - <builtin>.iter
    - pack_index.iterentries
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - dulwich.reftable.ReftableReader.__init__
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - os.fdopen
    - table_data.append
    - commit_graph.get_parents
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - want_tags.difference
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - bases.add
    - pack.index.iterentries
    - <builtin>.isinstance
    - dulwich.object_store._split_commits_and_tags
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.refs.read_packed_refs
    - others.add
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - e.decode
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.server.PackHandler.has_capability
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.objects.S_ISGITLINK
    - dulwich.object_store._collect_filetree_revs
    - dulwich.file.GitFile
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - <builtin>.bytes
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - repo.get_peeled
    - <builtin>.enumerate
    - dulwich.bitmap.find_commit_bitmaps
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.object_store.BitmapReachability.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - object_store
    - haves
    - wants
    - shallow
    - progress
    - get_tagged
    - get_parents
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 2664
    functionName: dulwich.object_store.MissingObjectFinder.__init__
    functionSourceFile: dulwich.object_store
    functionUses: 10
    functionsReached:
    - typing.Protocol.as_dict
    - queue.pop
    - remaining.remove
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.reftable.RefRecord.__init__
    - dulwich.commit_graph.read_commit_graph
    - io.BytesIO.read
    - binascii.hexlify
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.object_store.<lambda2>
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - pack_bitmap.get_bitmap
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs._split_ref_line
    - commits.add
    - pack_bitmap.has_commit
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.objects.hex_to_sha
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - want_others.difference
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - kset.add
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - queue.extend
    - refs.keys
    - graph._read_from_file
    - table_data.sort
    - logging.warning
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - stat.S_IFMT
    - all_refs.pop
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - <builtin>.open
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - dulwich.refs.RefsContainer.allkeys
    - <builtin>.frozenset
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - io.BytesIO.tell
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - filetree.iteritems
    - pack_index.iterentries
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - os.fdopen
    - table_data.append
    - commit_graph.get_parents
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - want_tags.difference
    - <builtin>.max
    - dulwich.file._GitFile.seek
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - bases.add
    - pack.index.iterentries
    - <builtin>.isinstance
    - dulwich.object_store._split_commits_and_tags
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.refs.read_packed_refs
    - others.add
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - e.decode
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.server.PackHandler.has_capability
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.object_store._collect_filetree_revs
    - dulwich.file.GitFile
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - <builtin>.bytes
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - dulwich.bitmap.find_commit_bitmaps
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.objects.S_ISGITLINK
    - repo.get_peeled
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.object_store.BitmapReachability.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - graphwalker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 587
    functionName: dulwich.object_store.BaseObjectStore.find_common_revisions
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - haves.append
    - graphwalker.ack
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: haves.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: graphwalker.ack
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - have
    - want
    - shallow
    - progress
    - ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 603
    functionName: dulwich.object_store.BaseObjectStore.generate_pack_data
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - queue.pop
    - typing.Protocol.as_dict
    - remaining.remove
    - dulwich.reftable.ReftableReader.all_refs
    - difflib.SequenceMatcher
    - data.find
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.reftable.RefRecord.__init__
    - dulwich.commit_graph.read_commit_graph
    - io.BytesIO.read
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.object_store.<lambda2>
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - pack_bitmap.get_bitmap
    - int.from_bytes
    - os.path.join
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs.is_per_worktree_ref
    - dulwich.refs._split_ref_line
    - commits.add
    - pack_bitmap.has_commit
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.objects.hex_to_sha
    - dulwich.reftable._decode_ref_value
    - magic.append
    - directory.replace
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - <builtin>.range
    - want_others.difference
    - o.as_raw_chunks
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.pack.pack_objects_to_data.iter_without_path
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - <builtin>.map
    - kset.add
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.pack.pack_objects_to_data
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - value.hex
    - dulwich.pack.sort_objects_for_delta
    - os.fspath
    - queue.extend
    - dulwich.object_store.MissingObjectFinder.__init__
    - graph._read_from_file
    - refs.keys
    - table_data.sort
    - logging.warning
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - stat.S_IFMT
    - all_refs.pop
    - dulwich._pack.create_delta
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - <builtin>.sum
    - <builtin>.open
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - dulwich.refs.RefsContainer.allkeys
    - <builtin>.frozenset
    - dulwich.pack.deltas_from_sorted_objects
    - refname.startswith
    - <builtin>.memoryview
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - io.BytesIO.tell
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - filetree.iteritems
    - <builtin>.iter
    - pack_index.iterentries
    - os.fsencode
    - collections.deque
    - <builtin>.next
    - search_paths.append
    - dulwich.reftable.ReftableReader.__init__
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - os.fdopen
    - table_data.append
    - commit_graph.get_parents
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - want_tags.difference
    - dulwich.file._GitFile.seek
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - <builtin>.max
    - io.BytesIO
    - obj.raw_length
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - bases.add
    - ret.append
    - dulwich.pack._delta_encode_size
    - cdifflib.CSequenceMatcher
    - pack.index.iterentries
    - <builtin>.isinstance
    - dulwich.object_store._split_commits_and_tags
    - magic.sort
    - dulwich.pack._create_delta_py
    - dulwich.pack.deltify_pack_objects.objects_with_hints
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.refs.read_packed_refs
    - others.add
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - scratch.append
    - io.BytesIO.seek
    - e.decode
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.server.PackHandler.has_capability
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.pack.deltify_pack_objects
    - dulwich.object_store._collect_filetree_revs
    - dulwich.file.GitFile
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - <builtin>.bytes
    - possible_bases.appendleft
    - <builtin>.bytearray
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - dulwich.bitmap.find_commit_bitmaps
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - repo.get_peeled
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.object_store.BitmapReachability.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 633
    functionName: dulwich.object_store.BaseObjectStore.peel_sha
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - warnings.warn
    - dulwich.object_store.BaseObjectStore.peel_sha
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 667
    functionName: dulwich.object_store.BaseObjectStore.close
    functionSourceFile: dulwich.object_store
    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 0x7febaf8cc4c0>
    argNames:
    - self
    - grace_period
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 671
    functionName: dulwich.object_store.BaseObjectStore.prune
    functionSourceFile: dulwich.object_store
    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
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 683
    functionName: dulwich.object_store.BaseObjectStore.iter_prefix
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.object_store.BaseObjectStore.__iter__
    - sha.startswith
    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 0x7febadd06790>
    - <ast.Constant object at 0x7febadd06700>
    argNames:
    - self
    - refs
    - reachable
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 702
    functionName: dulwich.object_store.BaseObjectStore.write_commit_graph
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 718
    functionName: dulwich.object_store.BaseObjectStore.get_object_mtime
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 742
    functionName: dulwich.object_store.PackCapableObjectStore.add_pack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf112280>
    argNames:
    - self
    - count
    - unpacked_objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 749
    functionName: dulwich.object_store.PackCapableObjectStore.add_pack_data
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sha1
    - include_comp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 764
    functionName: dulwich.object_store.PackCapableObjectStore.get_unpacked_object
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.pack.UnpackedObject.__init__
    - <builtin>.sum
    - obj.as_raw_chunks
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - shas
    - allow_missing
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 781
    functionName: dulwich.object_store.PackCapableObjectStore.iterobjects_subset
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaee21430>
    - <ast.Constant object at 0x7febaee21dc0>
    - <ast.Constant object at 0x7febaee21130>
    - <ast.Constant object at 0x7febaee21c10>
    - <ast.Constant object at 0x7febaee21730>
    - <ast.Constant object at 0x7febaee21d90>
    - <ast.Constant object at 0x7febaee213d0>
    - <ast.Constant object at 0x7febaee211c0>
    argNames:
    - self
    - pack_compression_level
    - pack_index_version
    - pack_delta_window_size
    - pack_window_memory
    - pack_delta_cache_size
    - pack_depth
    - pack_threads
    - pack_big_file_threshold
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 809
    functionName: dulwich.object_store.PackBasedObjectStore.__init__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf97f610>
    argNames:
    - self
    - prefer_bitmaps
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 842
    functionName: dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    functionSourceFile: dulwich.object_store
    functionUses: 11
    functionsReached:
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.object_store.BitmapReachability.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3549
    functionName: dulwich.object_store.BitmapReachability.__init__
    functionSourceFile: dulwich.object_store
    functionUses: 12
    functionsReached:
    - dulwich.object_store.GraphTraversalReachability.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 874
    functionName: dulwich.object_store.PackBasedObjectStore.add_pack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadd4c8e0>
    argNames:
    - self
    - count
    - unpacked_objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 878
    functionName: dulwich.object_store.PackBasedObjectStore.add_pack_data
    functionSourceFile: dulwich.object_store
    functionUses: 4
    functionsReached:
    - <builtin>.iter
    - hashlib.sha1
    - compressor.compress
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - <builtin>.type
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - os.fdopen
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - dulwich.object_store.DiskObjectStore.add_pack
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.contrib.swift.SwiftObjectStore.add_pack
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - io.BytesIO
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.write_pack_data
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - os.chmod
    - dulwich.pack.PackChunkGenerator.sha1digest
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - tempfile.mkstemp
    - typing.cast.write
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - typing.cast
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 836
    functionName: dulwich.contrib.swift.SwiftObjectStore.add_pack
    functionSourceFile: dulwich.contrib.swift
    functionUses: 5
    functionsReached:
    - io.BytesIO
    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: 1924
    functionName: dulwich.object_store.DiskObjectStore.add_pack
    functionSourceFile: dulwich.object_store
    functionUses: 5
    functionsReached:
    - tempfile.mkstemp
    - os.chmod
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 910
    functionName: dulwich.object_store.PackBasedObjectStore.alternates
    functionSourceFile: dulwich.object_store
    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
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 914
    functionName: dulwich.object_store.PackBasedObjectStore.contains_packed
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 927
    functionName: dulwich.object_store.PackBasedObjectStore.__contains__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - mmap.mmap
    - <builtin>.getattr
    - os.path.exists
    - <builtin>.min
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - os.fspath
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - os.fdopen
    - os.open
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - typing.cast.encode
    - dulwich.midx.MultiPackIndex._load_file_contents
    - dulwich.objects.Tag.from_path
    - <builtin>.len
    - struct.unpack
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.object_store.PackBasedObjectStore.contains_loose
    - <builtin>.super
    - dulwich.file._GitFile.__init__
    - dulwich.midx.MultiPackIndex._parse_header
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - dulwich.object_store.DiskObjectStore.get_midx
    - dulwich.objects.hex_to_filename
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.objects.Tree.from_path
    - <builtin>.open
    - dulwich.objects.Blob.from_path
    - f.fileno
    - dulwich.file.GitFile
    - dulwich.midx.load_midx
    - f.read
    - <builtin>.range
    - typing.cast.decode
    - os.fstat
    - <builtin>.isinstance
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.objects.Commit.from_path
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.midx.load_midx_file
    - dulwich.midx.MultiPackIndex.__init__
    - dulwich.object_store.DiskObjectStore.contains_packed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2139
    functionName: dulwich.object_store.DiskObjectStore.contains_packed
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - mmap.mmap
    - <builtin>.min
    - os.path.exists
    - <builtin>.getattr
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - os.fspath
    - os.fdopen
    - os.open
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - struct.unpack
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.midx.MultiPackIndex._parse_header
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - dulwich.object_store.DiskObjectStore.get_midx
    - <builtin>.open
    - f.fileno
    - dulwich.file.GitFile
    - dulwich.midx.load_midx
    - <builtin>.range
    - f.read
    - os.fstat
    - <builtin>.isinstance
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.midx.load_midx_file
    - dulwich.midx.MultiPackIndex.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1156
    functionName: dulwich.object_store.PackBasedObjectStore.contains_loose
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - dulwich.objects.Blob.from_path
    - dulwich.objects.Commit.from_path
    - dulwich.objects.Tag.from_path
    - os.path.join
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - typing.cast.decode
    - os.fspath
    - <builtin>.isinstance
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.objects.hex_to_filename
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - typing.cast.encode
    - dulwich.objects.Tree.from_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - base_name
    - pack
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 939
    functionName: dulwich.object_store.PackBasedObjectStore._add_cached_pack
    functionSourceFile: dulwich.object_store
    functionUses: 8
    functionsReached:
    - prev_pack.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prev_pack.close
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - have
    - want
    - shallow
    - progress
    - ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 947
    functionName: dulwich.object_store.PackBasedObjectStore.generate_pack_data
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - queue.pop
    - new_packs.append
    - typing.Protocol.as_dict
    - remaining.remove
    - dulwich.reftable.ReftableReader.all_refs
    - difflib.SequenceMatcher
    - data.find
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.reftable.RefRecord.__init__
    - dulwich.commit_graph.read_commit_graph
    - io.BytesIO.read
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.object_store.<lambda2>
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - pack_bitmap.get_bitmap
    - int.from_bytes
    - os.path.join
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs.is_per_worktree_ref
    - dulwich.refs._split_ref_line
    - commits.add
    - pack_bitmap.has_commit
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.objects.hex_to_sha
    - json.loads
    - magic.append
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.objects.Blob.from_path
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.pack.generate_unpacked_objects
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.object_store.MissingObjectFinder.get_remote_has
    - <builtin>.range
    - want_others.difference
    - o.as_raw_chunks
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - <builtin>.map
    - kset.add
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - name.endswith
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - value.hex
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - os.fspath
    - dulwich.object_store.MissingObjectFinder.__init__
    - queue.extend
    - graph._read_from_file
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - refs.keys
    - table_data.sort
    - name.startswith
    - logging.warning
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - stat.S_IFMT
    - all_refs.pop
    - dulwich._pack.create_delta
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - <builtin>.sum
    - dulwich.objects.Tree.from_path
    - <builtin>.open
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - dulwich.refs.RefsContainer.allkeys
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.frozenset
    - refname.startswith
    - <builtin>.memoryview
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - refs.items
    - os.walk
    - line.startswith
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.objects.Commit.from_path
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - io.BytesIO.tell
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - filetree.iteritems
    - container.iter_unpacked_subset
    - <builtin>.iter
    - pack_index.iterentries
    - os.fsencode
    - collections.deque
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - <builtin>.next
    - search_paths.append
    - dulwich.pack.find_reusable_deltas
    - dulwich.reftable.ReftableReader.__init__
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - os.fdopen
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - table_data.append
    - commit_graph.get_parents
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - want_tags.difference
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - <builtin>.max
    - dulwich.file._GitFile.seek
    - io.BytesIO
    - todo.remove
    - obj.raw_length
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - refname.endswith
    - result.add
    - files.append
    - bases.add
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - ret.append
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - cdifflib.CSequenceMatcher
    - pack.index.iterentries
    - <builtin>.isinstance
    - dulwich.object_store._split_commits_and_tags
    - ret.read
    - magic.sort
    - dulwich.pack._create_delta_py
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.refs.read_packed_refs
    - others.add
    - typing.cast
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - typing.cast.encode
    - key.startswith
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.reftable.RefRecord.decode
    - scratch.append
    - <builtin>.dict
    - io.BytesIO.seek
    - e.decode
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - pack_files.add
    - dulwich.server.PackHandler.has_capability
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.object_store._collect_filetree_revs
    - dulwich.file.GitFile
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - <builtin>.bytes
    - possible_bases.appendleft
    - <builtin>.bytearray
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - dulwich.bitmap.find_commit_bitmaps
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - repo.get_peeled
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - p.iterobjects_subset
    - dulwich.object_store.BitmapReachability.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2755
    functionName: dulwich.object_store.MissingObjectFinder.get_remote_has
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 978
    functionName: dulwich.object_store.PackBasedObjectStore._clear_cached_packs
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - pack_cache.popitem
    - pack.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_cache.popitem
    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: pack.close
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 985
    functionName: dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    functionSourceFile: dulwich.object_store
    functionUses: 21
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 988
    functionName: dulwich.object_store.PackBasedObjectStore._update_pack_cache
    functionSourceFile: dulwich.object_store
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 991
    functionName: dulwich.object_store.PackBasedObjectStore.close
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.object_store.PackBasedObjectStore._clear_cached_packs
    - pack_cache.popitem
    - pack.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 999
    functionName: dulwich.object_store.PackBasedObjectStore.packs
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - new_packs.append
    - name.endswith
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - name.startswith
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - <builtin>.len
    - os.path.join
    - <builtin>.super
    - pack_files.add
    - <builtin>.list
    - <builtin>.set
    - json.loads
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - os.path.splitext
    - ret.append
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - <builtin>.isinstance
    - ret.read
    - os.listdir
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - typing.cast
    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: 3
    functionLinenumber: 1621
    functionName: dulwich.object_store.DiskObjectStore._update_pack_cache
    functionSourceFile: dulwich.object_store
    functionUses: 23
    functionsReached:
    - new_packs.append
    - os.listdir
    - name.endswith
    - <builtin>.len
    - alt.close
    - os.path.join
    - os.path.splitext
    - dulwich.object_store.DiskObjectStore.close
    - <builtin>.super
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - pack_files.add
    - <builtin>.isinstance
    - <builtin>.set
    - name.startswith
    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: 766
    functionName: dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    functionSourceFile: dulwich.contrib.swift
    functionUses: 23
    functionsReached:
    - json.loads
    - dulwich.contrib.swift.SwiftPack.__init__
    - ret.append
    - <builtin>.super
    - typing.cast
    - ret.read
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1003
    functionName: dulwich.object_store.PackBasedObjectStore.count_pack_files
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - os.path.exists
    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: 1017
    functionName: dulwich.object_store.PackBasedObjectStore._iter_alternate_objects
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1022
    functionName: dulwich.object_store.PackBasedObjectStore._iter_loose_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1026
    functionName: dulwich.object_store.PackBasedObjectStore._get_loose_object
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1029
    functionName: dulwich.object_store.PackBasedObjectStore.delete_loose_object
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pack
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1037
    functionName: dulwich.object_store.PackBasedObjectStore._remove_pack
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaec93610>
    argNames:
    - self
    - progress
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1040
    functionName: dulwich.object_store.PackBasedObjectStore.pack_loose_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - os.fsencode
    - hashlib.sha1
    - dulwich.object_store.PackBasedObjectStore.add_objects
    - compressor.compress
    - dulwich.pack.PackChunkGenerator.__iter__
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - os.remove
    - hashlib.sha1.update
    - <builtin>.type
    - dulwich.pack.PackChunkGenerator.__init__
    - <builtin>.enumerate
    - os.fspath
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - object.as_raw_chunks
    - os.fdopen
    - <builtin>.callable
    - dulwich.object_store.PackBasedObjectStore.delete_loose_object
    - unpacked.sha
    - dulwich.objects.Tag.from_path
    - <builtin>.len
    - o.sha
    - dulwich.object_store.DiskObjectStore.add_pack
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.contrib.swift.SwiftObjectStore.add_pack
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - dulwich.object_store.DiskObjectStore._iter_loose_objects
    - io.BytesIO
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.objects.hex_to_filename
    - dulwich.pack.pack_object_header
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.objects.Tree.from_path
    - compressor.flush
    - dulwich.objects.Blob.from_path
    - dulwich.pack.write_pack_data
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - o.as_raw_chunks
    - struct.pack
    - typing.cast.decode
    - header.extend
    - dulwich.object_store.PackBasedObjectStore.add_pack_data
    - os.chmod
    - <builtin>.isinstance
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.object_store.DiskObjectStore.delete_loose_object
    - dulwich.pack.PackChunkGenerator.sha1digest
    - <builtin>.bytes
    - os.listdir
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - tempfile.mkstemp
    - typing.cast.write
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - dulwich.objects.Commit.from_path
    - objects.append
    - typing.cast
    - typing.NewType
    - binascii.crc32
    - dulwich.contrib.swift.SwiftObjectStore._iter_loose_objects
    - <builtin>.map
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1662
    functionName: dulwich.object_store.DiskObjectStore._iter_loose_objects
    functionSourceFile: dulwich.object_store
    functionUses: 3
    functionsReached:
    - os.fsencode
    - os.listdir
    - <builtin>.len
    - os.path.join
    - typing.NewType
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 782
    functionName: dulwich.contrib.swift.SwiftObjectStore._iter_loose_objects
    functionSourceFile: dulwich.contrib.swift
    functionUses: 3
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 899
    functionName: dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    functionSourceFile: ''
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1698
    functionName: dulwich.object_store.DiskObjectStore._get_loose_object
    functionSourceFile: dulwich.object_store
    functionUses: 22
    functionsReached:
    - dulwich.objects.Blob.from_path
    - dulwich.objects.Tag.from_path
    - dulwich.objects.Commit.from_path
    - os.path.join
    - typing.cast.decode
    - os.fspath
    - <builtin>.isinstance
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.objects.hex_to_filename
    - typing.cast.encode
    - dulwich.objects.Tree.from_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: objects.append
    functionSourceFile: <builtin>
    functionUses: 12
    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 0x7febaf781d60>
    argNames:
    - self
    - objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1340
    functionName: dulwich.object_store.PackBasedObjectStore.add_objects
    functionSourceFile: dulwich.object_store
    functionUses: 3
    functionsReached:
    - <builtin>.iter
    - hashlib.sha1
    - compressor.compress
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - <builtin>.type
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - os.fdopen
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - o.sha
    - dulwich.object_store.DiskObjectStore.add_pack
    - dulwich.pack.full_unpacked_object
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.contrib.swift.SwiftObjectStore.add_pack
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - io.BytesIO
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.write_pack_data
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - o.as_raw_chunks
    - struct.pack
    - header.extend
    - dulwich.object_store.PackBasedObjectStore.add_pack_data
    - dulwich.pack.UnpackedObject.__init__
    - os.chmod
    - <builtin>.isinstance
    - dulwich.pack.PackChunkGenerator.sha1digest
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - tempfile.mkstemp
    - typing.cast.write
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - typing.cast
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1705
    functionName: dulwich.object_store.DiskObjectStore.delete_loose_object
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - os.path.join
    - os.remove
    - typing.cast.decode
    - os.fspath
    - <builtin>.isinstance
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.objects.hex_to_filename
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 9
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadd48070>
    - <ast.Constant object at 0x7febadd483a0>
    argNames:
    - self
    - exclude
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1058
    functionName: dulwich.object_store.PackBasedObjectStore.repack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - new_packs.append
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - o.sha
    - dulwich.object_store.DiskObjectStore.add_pack
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - json.loads
    - dulwich.objects.Blob.from_path
    - p.name
    - o.as_raw_chunks
    - dulwich.object_store.PackBasedObjectStore.add_pack_data
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.object_store.DiskObjectStore._remove_pack
    - binascii.crc32
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - objects.update
    - name.endswith
    - hashlib.sha1
    - dulwich.object_store.PackBasedObjectStore.add_objects
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - os.remove
    - <builtin>.type
    - os.fspath
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - name.startswith
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - pack.close
    - dulwich.object_store.DiskObjectStore._iter_loose_objects
    - <builtin>.list
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.objects.Tree.from_path
    - compressor.flush
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - dulwich.pack.Pack.__init__
    - os.listdir
    - loose_objects.add
    - dulwich.pack.pack_header_chunks
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.contrib.swift.SwiftObjectStore._iter_loose_objects
    - <builtin>.iter
    - os.fsencode
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - os.fdopen
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - old_packs.pop
    - <builtin>.super
    - io.BytesIO
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - dulwich.pack.write_pack_data
    - excluded_loose_objects.add
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - ret.append
    - typing.cast.decode
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.PackChunkGenerator.sha1digest
    - tempfile.mkstemp
    - dulwich.pack.pack_object_chunks
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.object_store.PackBasedObjectStore._remove_pack
    - dulwich.object_store.DiskObjectStore.close
    - compressor.compress
    - pack.iterobjects
    - consolidated.name
    - dulwich.object_store.PackBasedObjectStore.delete_loose_object
    - dulwich.contrib.swift.SwiftObjectStore.add_pack
    - old_packs.items
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - os.path.basename
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - <builtin>.hasattr
    - os.chmod
    - dulwich.object_store.DiskObjectStore.delete_loose_object
    - <builtin>.bytes
    - <builtin>.bytearray
    - typing.cast.write
    - zlib.compressobj
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: loose_objects.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: excluded_loose_objects.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.name
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: old_packs.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: pack.iterobjects
    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: objects.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: consolidated.name
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: old_packs.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pack
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1751
    functionName: dulwich.object_store.DiskObjectStore._remove_pack
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - os.remove
    - <builtin>.hasattr
    - pack.close
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - refs
    - commit_interval
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1113
    functionName: dulwich.object_store.PackBasedObjectStore.generate_pack_bitmaps
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - new_packs.append
    - name.endswith
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - name.startswith
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - <builtin>.len
    - os.path.join
    - <builtin>.super
    - pack_files.add
    - <builtin>.set
    - json.loads
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - os.path.splitext
    - ret.append
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - <builtin>.isinstance
    - ret.read
    - os.listdir
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1145
    functionName: dulwich.object_store.PackBasedObjectStore.__iter__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - os.fsencode
    - name.endswith
    - new_packs.append
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.object_store.PackBasedObjectStore._iter_alternate_objects
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - name.startswith
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - <builtin>.len
    - os.path.join
    - <builtin>.super
    - pack_files.add
    - dulwich.object_store.DiskObjectStore._iter_loose_objects
    - <builtin>.set
    - json.loads
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - ret.append
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - <builtin>.isinstance
    - ret.read
    - os.listdir
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - typing.cast
    - typing.NewType
    - dulwich.contrib.swift.SwiftObjectStore._iter_loose_objects
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1163
    functionName: dulwich.object_store.PackBasedObjectStore.get_raw
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - <builtin>.iter
    - name.endswith
    - new_packs.append
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - ret.as_raw_string
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.objects.sha_to_hex
    - os.fspath
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - name.startswith
    - binascii.hexlify
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - <builtin>.len
    - os.path.join
    - <builtin>.super
    - pack_files.add
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.objects.Tree.from_path
    - dulwich.objects.hex_to_sha
    - json.loads
    - dulwich.objects.Blob.from_path
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - ret.append
    - typing.cast.decode
    - pack.get_raw
    - <builtin>.isinstance
    - ret.read
    - os.listdir
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack.get_raw
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.as_raw_string
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf510c40>
    - <ast.Constant object at 0x7febaf510d30>
    - <ast.Constant object at 0x7febaf510220>
    argNames:
    - self
    - shas
    - include_comp
    - allow_missing
    - convert_ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1204
    functionName: dulwich.object_store.PackBasedObjectStore.iter_unpacked_subset
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - name.endswith
    - new_packs.append
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.objects.sha_to_hex
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - name.startswith
    - binascii.hexlify
    - p.iter_unpacked_subset
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - unpacked.sha
    - <builtin>.len
    - os.path.join
    - <builtin>.super
    - pack_files.add
    - todo.remove
    - <builtin>.set
    - json.loads
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - ret.append
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - <builtin>.isinstance
    - ret.read
    - os.listdir
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - typing.cast
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.iter_unpacked_subset
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.iterobjects_subset
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sha1
    - include_comp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1299
    functionName: dulwich.object_store.PackBasedObjectStore.get_unpacked_object
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - name.endswith
    - new_packs.append
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.object_store.DiskObjectStore.close
    - pack.get_unpacked_object
    - dulwich.objects.sha_to_hex
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - name.startswith
    - binascii.hexlify
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - <builtin>.len
    - os.path.join
    - <builtin>.super
    - pack_files.add
    - <builtin>.set
    - dulwich.objects.hex_to_sha
    - json.loads
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - os.path.splitext
    - ret.append
    - dulwich.midx.MultiPackIndex.close
    - dulwich.pack.Pack.__init__
    - <builtin>.isinstance
    - ret.read
    - os.listdir
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack.get_unpacked_object
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 17
    argDefaultValues: []
    argNames:
    - self
    - path
    - loose_compression_level
    - pack_compression_level
    - pack_index_version
    - pack_delta_window_size
    - pack_window_memory
    - pack_delta_cache_size
    - pack_depth
    - pack_threads
    - pack_big_file_threshold
    - fsync_object_files
    - pack_write_bitmaps
    - pack_write_bitmap_hash_cache
    - pack_write_bitmap_lookup_table
    - file_mode
    - dir_mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1366
    functionName: dulwich.object_store.DiskObjectStore.__init__
    functionSourceFile: dulwich.object_store
    functionUses: 290
    functionsReached:
    - <builtin>.super
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1437
    functionName: dulwich.object_store.DiskObjectStore.__repr__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - cls
    - path
    - config
    - file_mode
    - dir_mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1446
    functionName: dulwich.object_store.DiskObjectStore.from_config
    functionSourceFile: dulwich.object_store
    functionUses: 286
    functionsReached:
    - subsection.encode
    - backend.get
    - <builtin>.int
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.len
    - value.lower
    - os.path.join
    - <builtin>.tuple
    - <builtin>.super
    - name.encode
    - <builtin>.isinstance
    - dulwich.config.ConfigDict.get
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    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: 1566
    functionName: dulwich.object_store.DiskObjectStore.alternates
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - line.startswith
    - os.fsencode
    - <builtin>.open
    - os.open
    - dulwich.object_store.DiskObjectStore._read_alternate_paths
    - os.path.isabs
    - <builtin>.getattr
    - dulwich.file.GitFile
    - os.path.join
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - line.rstrip
    - os.fsdecode
    - dulwich.file._GitFile.readlines
    - <builtin>.isinstance
    - os.fspath
    - dulwich.object_store.DiskObjectStore.__init__
    - os.fdopen
    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: 3
    functionLinenumber: 1581
    functionName: dulwich.object_store.DiskObjectStore._read_alternate_paths
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - line.startswith
    - os.fsencode
    - <builtin>.open
    - os.open
    - os.path.isabs
    - <builtin>.getattr
    - dulwich.file.GitFile
    - os.path.join
    - dulwich.file._GitFile.__init__
    - line.rstrip
    - os.fsdecode
    - dulwich.file._GitFile.readlines
    - <builtin>.isinstance
    - os.fspath
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.rstrip
    functionSourceFile: <builtin>
    functionUses: 137
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.fsdecode
    functionSourceFile: os
    functionUses: 339
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.fsencode
    functionSourceFile: os
    functionUses: 365
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1596
    functionName: dulwich.object_store.DiskObjectStore.add_alternate_path
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.fsencode
    - os.open
    - os.path.isabs
    - orig_f.read
    - <builtin>.getattr
    - dulwich.file.GitFile
    - os.path.join
    - f.write
    - dulwich.file._GitFile.__init__
    - os.mkdir
    - <builtin>.super
    - os.fspath
    - <builtin>.isinstance
    - os.chmod
    - dulwich.object_store.DiskObjectStore.__init__
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.mkdir
    functionSourceFile: os
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.chmod
    functionSourceFile: os
    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: orig_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: os.listdir
    functionSourceFile: os
    functionUses: 135
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2347
    functionName: dulwich.object_store.DiskObjectStore.close
    functionSourceFile: dulwich.object_store
    functionUses: 24
    functionsReached:
    - <builtin>.super
    - <builtin>.isinstance
    - alt.close
    - dulwich.midx.MultiPackIndex.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.endswith
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.splitext
    functionSourceFile: os
    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: pack_files.add
    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: new_packs.append
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1658
    functionName: dulwich.object_store.DiskObjectStore._get_shafile_path
    functionSourceFile: dulwich.object_store
    functionUses: 25
    functionsReached:
    - os.path.join
    - typing.cast.decode
    - os.fspath
    - <builtin>.isinstance
    - dulwich.objects.hex_to_filename
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - hex
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 215
    functionName: dulwich.objects.hex_to_filename
    functionSourceFile: dulwich.objects
    functionUses: 26
    functionsReached:
    - <builtin>.isinstance
    - typing.cast.decode
    - os.path.join
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hex
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 193
    functionName: dulwich.objects.valid_hexsha
    functionSourceFile: dulwich.objects
    functionUses: 351
    functionsReached:
    - binascii.unhexlify
    - <builtin>.len
    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: 1672
    functionName: dulwich.object_store.DiskObjectStore.count_loose_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - os.listdir
    - <builtin>.len
    - os.path.exists
    - os.path.join
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 970
    functionName: dulwich.objects.Tag.from_path
    functionSourceFile: dulwich.objects
    functionUses: 26
    functionsReached:
    - dulwich.objects.Blob.from_path
    - dulwich.objects.Tag.from_path
    - dulwich.objects.Commit.from_path
    - <builtin>.isinstance
    - dulwich.objects.Tree.from_path
    linkageType: pythonLinkage
    raised:
    - NotTagError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1771
    functionName: dulwich.objects.Commit.from_path
    functionSourceFile: dulwich.objects
    functionUses: 26
    functionsReached:
    - dulwich.objects.Blob.from_path
    - dulwich.objects.Tag.from_path
    - dulwich.objects.Commit.from_path
    - <builtin>.isinstance
    - dulwich.objects.Tree.from_path
    linkageType: pythonLinkage
    raised:
    - NotCommitError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 809
    functionName: dulwich.objects.Blob.from_path
    functionSourceFile: dulwich.objects
    functionUses: 26
    functionsReached:
    - dulwich.objects.Blob.from_path
    - dulwich.objects.Tag.from_path
    - dulwich.objects.Commit.from_path
    - <builtin>.isinstance
    - dulwich.objects.Tree.from_path
    linkageType: pythonLinkage
    raised:
    - NotBlobError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1390
    functionName: dulwich.objects.Tree.from_path
    functionSourceFile: dulwich.objects
    functionUses: 26
    functionsReached:
    - dulwich.objects.Blob.from_path
    - dulwich.objects.Tag.from_path
    - dulwich.objects.Commit.from_path
    - <builtin>.isinstance
    - dulwich.objects.Tree.from_path
    linkageType: pythonLinkage
    raised:
    - NotTreeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1716
    functionName: dulwich.object_store.DiskObjectStore.get_object_mtime
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.objects.Blob.from_path
    - os.path.getmtime
    - dulwich.objects.Commit.from_path
    - dulwich.objects.Tag.from_path
    - os.path.join
    - dulwich.object_store.PackBasedObjectStore.contains_loose
    - typing.cast.decode
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - os.fspath
    - <builtin>.isinstance
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.objects.hex_to_filename
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - typing.cast.encode
    - dulwich.objects.Tree.from_path
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.getmtime
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1761
    functionName: dulwich.object_store.DiskObjectStore._get_pack_basepath
    functionSourceFile: dulwich.object_store
    functionUses: 3
    functionsReached:
    - hashlib.sha1.hexdigest
    - hashlib.sha1
    - dulwich.pack.iter_sha1
    - os.path.join
    - hashlib.sha1.update
    - suffix_bytes.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: suffix_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 16
    IfCount: 7
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf31c5e0>
    - <ast.Constant object at 0x7febaf31ce20>
    argNames:
    - self
    - f
    - path
    - num_objects
    - indexer
    - progress
    - refs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1769
    functionName: dulwich.object_store.DiskObjectStore._complete_pack
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.midx.MultiPackIndex._get_oid
    - hashlib.sha1.update
    - ref_commits.add
    - object.as_raw_chunks
    - io.BytesIO.read
    - suffix_bytes.decode
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.bitmap.select_bitmap_commits
    - dulwich.pack.write_pack_index
    - dulwich.bitmap.EWAHBitmap._decode
    - dulwich.bitmap.EWAHBitmap.__init__
    - os.path.join
    - dulwich.pack.PackStreamCopier._read
    - dulwich.midx.MultiPackIndex._parse_header
    - extra_entries.append
    - io.BytesIO.fileno
    - dulwich.object_store.DiskObjectStore.get_midx
    - f.tell
    - warnings.warn
    - type_bitmap.encode
    - dulwich.objects.hex_to_sha
    - dulwich.midx.MultiPackIndex.__init__
    - dulwich.pack.write_pack_index_v2
    - selected.update
    - <builtin>.range
    - collections.defaultdict
    - dulwich.file._GitFile.fileno
    - <builtin>.sorted
    - dulwich.contrib.swift.SwiftPackReader.read
    - io.BytesIO.write
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.load_midx_file
    - dulwich.pack.write_pack_index_v1
    - dulwich.pack._load_file_contents
    - dulwich.pack.write_pack_index_v3
    - binascii.crc32
    - delta_stack.append
    - <builtin>.map
    - dulwich.pack.PackIndex2._unpack_crc32_checksum
    - dulwich.pack.PackIndex3.__init__
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - hashlib.sha1
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - entries.sort
    - dulwich.pack.write_pack_object
    - os.path.exists
    - os.remove
    - os.fspath
    - selected.add
    - dulwich.pack.PackStreamReader._buf_len
    - entries.extend
    - dulwich.bitmap.BitmapEntry.__init__
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - <builtin>.list
    - indexer.ext_refs
    - obj.items
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.object_store.DiskObjectStore._complete_pack.<lambda1>
    - <builtin>.open
    - dulwich.pack.Pack.get_raw
    - dulwich.bitmap.build_name_hash_cache
    - compressor.flush
    - f.fileno
    - header.append
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - refs.items
    - contextlib.suppress
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.pack.extend_pack
    - dulwich.pack.iter_sha1
    - dulwich.pack.pack_header_chunks
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - <builtin>.reversed
    - commit_bitmaps.append
    - collections.deque
    - dulwich.bitmap.build_reachability_bitmap
    - entries.append
    - dulwich.objects.sha_to_hex
    - os.fdopen
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.bitmap.build_type_bitmaps
    - dulwich.bitmap.generate_bitmap
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - dulwich.pack.PackIndex1._unpack_entry
    - pack_bitmap.entries_list.append
    - os.rename
    - dulwich.pack.Pack.check_length_and_checksum
    - dulwich.bitmap._compute_name_hash
    - hashlib.sha1.hexdigest
    - sha_to_pos.items
    - ret.append
    - dulwich.bitmap.PackBitmap.__init__
    - f.read
    - ret.insert
    - struct.pack
    - dulwich.pack.PackIndex2._unpack_name
    - os.fstat
    - header.extend
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.SHA1Writer.__init__
    - collections.deque.popleft
    - dulwich._pack.apply_delta
    - dulwich.midx.MultiPackIndex._get_pack_info
    - dulwich.pack.write_pack_header
    - dulwich.pack.pack_object_chunks
    - f.write
    - dulwich.pack.PackIndex3._unpack_crc32_checksum
    - collections.deque.extend
    - typing.cast
    - typing.NewType
    - bitmap.entries.items
    - binascii.unhexlify
    - dulwich.object_store.DiskObjectStore.get_raw
    - dulwich.bitmap.apply_xor_compression
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - dulwich.pack.PackIndex3._unpack_name
    - dulwich.pack.PackIndex3._unpack_entry
    - dulwich.pack.PackIndex2._unpack_entry
    - <builtin>.min
    - <builtin>.getattr
    - compressor.compress
    - f.seek
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - dulwich.bitmap.EWAHBitmap.add
    - f.write_sha
    - dulwich.bitmap.write_bitmap_file
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - dulwich.contrib.swift.SwiftPackReader._read
    - os.open
    - prev_pack.close
    - seen.add
    - collections.deque.append
    - struct.unpack
    - msg.encode
    - compressed.append
    - tempfile.SpooledTemporaryFile.seek
    - f.flush
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - words.append
    - hashlib.sha1.digest
    - os.path.basename
    - typing.cast.read
    - dulwich.bitmap.write_bitmap
    - pack_name.endswith
    - dulwich.object_store.DiskObjectStore._get_pack_basepath
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - io.BytesIO.write_sha
    - dulwich.midx.load_midx
    - dulwich.pack.Pack.resolve_object
    - largetable.append
    - dulwich.pack.compute_file_sha
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - entry.bitmap.encode
    - f.close
    - tempfile.SpooledTemporaryFile.read
    - zlib.compressobj
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.pack.PackIndex1.__init__
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.FilePackIndex.iterentries
    - dulwich.file._GitFile.read
    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: entries.append
    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: indexer.ext_refs
    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: f.fileno
    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: f.close
    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: entries.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entries.sort
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.encode
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf7652e0>
    argNames:
    - self
    - read_all
    - read_some
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1893
    functionName: dulwich.object_store.DiskObjectStore.add_thin_pack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.midx.MultiPackIndex._get_oid
    - hashlib.sha1.update
    - decomp_obj.decompress
    - dulwich.object_store.DiskObjectStore._complete_pack
    - dulwich.pack.unpack_object
    - ref_commits.add
    - object.as_raw_chunks
    - io.BytesIO.read
    - os.fsync
    - suffix_bytes.decode
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.bitmap.select_bitmap_commits
    - dulwich.pack.write_pack_index
    - dulwich.bitmap.EWAHBitmap._decode
    - zlib.decompressobj
    - dulwich.pack.PackStreamCopier._read
    - dulwich.bitmap.EWAHBitmap.__init__
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_header
    - extra_entries.append
    - io.BytesIO.fileno
    - dulwich.object_store.DiskObjectStore.get_midx
    - f.tell
    - warnings.warn
    - type_bitmap.encode
    - dulwich.objects.hex_to_sha
    - dulwich.midx.MultiPackIndex.__init__
    - dulwich.pack.write_pack_index_v2
    - selected.update
    - <builtin>.range
    - collections.defaultdict
    - dulwich.file._GitFile.fileno
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.PackStreamReader.recv
    - io.BytesIO.write
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.load_midx_file
    - dulwich.pack.write_pack_index_v1
    - dulwich.pack._load_file_contents
    - dulwich.pack.write_pack_index_v3
    - delta_stack.append
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.PackIndex2._unpack_crc32_checksum
    - dulwich.pack.PackIndex3.__init__
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - dulwich.pack.SHA1Writer.write
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - entries.sort
    - dulwich.pack.write_pack_object
    - os.path.exists
    - os.remove
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - selected.add
    - entries.extend
    - dulwich.bitmap.BitmapEntry.__init__
    - dulwich.midx.MultiPackIndex._load_file_contents
    - decomp_chunks.append
    - <builtin>.len
    - dulwich.pack.take_msb_bytes
    - <builtin>.list
    - indexer.ext_refs
    - obj.items
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.object_store.DiskObjectStore._complete_pack.<lambda1>
    - <builtin>.open
    - dulwich.pack.Pack.get_raw
    - dulwich.bitmap.build_name_hash_cache
    - compressor.flush
    - f.fileno
    - header.append
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - refs.items
    - contextlib.suppress
    - dulwich.pack.PackStreamCopier.verify
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.pack.extend_pack
    - dulwich.pack.iter_sha1
    - dulwich.pack.pack_header_chunks
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - <builtin>.reversed
    - commit_bitmaps.append
    - collections.deque
    - dulwich.bitmap.build_reachability_bitmap
    - entries.append
    - dulwich.objects.sha_to_hex
    - os.fdopen
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.bitmap.build_type_bitmaps
    - dulwich.bitmap.generate_bitmap
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.file._GitFile.seek
    - io.BytesIO
    - <builtin>.set
    - dulwich.pack.PackIndex1._unpack_entry
    - pack_bitmap.entries_list.append
    - os.rename
    - dulwich.pack.Pack.check_length_and_checksum
    - dulwich.bitmap._compute_name_hash
    - hashlib.sha1.hexdigest
    - sha_to_pos.items
    - dulwich.bitmap.PackBitmap.__init__
    - ret.append
    - f.read
    - ret.insert
    - struct.pack
    - dulwich.pack.PackIndex2._unpack_name
    - os.fstat
    - header.extend
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.SHA1Writer.__init__
    - collections.deque.popleft
    - dulwich._pack.apply_delta
    - tempfile.mkstemp
    - dulwich.midx.MultiPackIndex._get_pack_info
    - dulwich.pack.write_pack_header
    - dulwich.pack.pack_object_chunks
    - comp_chunks.append
    - dulwich.pack.PackIndex3._unpack_crc32_checksum
    - collections.deque.extend
    - f.write
    - typing.cast
    - typing.NewType
    - bitmap.entries.items
    - binascii.unhexlify
    - dulwich.object_store.DiskObjectStore.get_raw
    - dulwich.bitmap.apply_xor_compression
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - dulwich.pack.PackIndex3._unpack_name
    - dulwich.pack.PackIndex3._unpack_entry
    - dulwich.pack.PackIndex2._unpack_entry
    - <builtin>.getattr
    - <builtin>.min
    - compressor.compress
    - f.seek
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - dulwich.bitmap.EWAHBitmap.add
    - f.write_sha
    - dulwich.bitmap.write_bitmap_file
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - dulwich.contrib.swift.SwiftPackReader._read
    - os.open
    - prev_pack.close
    - seen.add
    - collections.deque.append
    - struct.unpack
    - msg.encode
    - compressed.append
    - tempfile.SpooledTemporaryFile.seek
    - f.flush
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - words.append
    - hashlib.sha1.digest
    - os.path.basename
    - typing.cast.read
    - dulwich.bitmap.write_bitmap
    - pack_name.endswith
    - dulwich.object_store.DiskObjectStore._get_pack_basepath
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - io.BytesIO.write_sha
    - dulwich.pack.PackStreamCopier.__init__
    - dulwich.midx.load_midx
    - dulwich.pack.Pack.resolve_object
    - os.chmod
    - largetable.append
    - dulwich.pack.PackStreamReader.read_objects
    - dulwich.pack.compute_file_sha
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - entry.bitmap.encode
    - f.close
    - zlib.compressobj
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.pack.PackIndex1.__init__
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.FilePackIndex.iterentries
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1940
    functionName: dulwich.object_store.DiskObjectStore.add_pack.commit
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - dulwich.midx.MultiPackIndex._get_oid
    - hashlib.sha1.update
    - dulwich.object_store.DiskObjectStore._complete_pack
    - ref_commits.add
    - object.as_raw_chunks
    - io.BytesIO.read
    - os.fsync
    - suffix_bytes.decode
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.bitmap.select_bitmap_commits
    - dulwich.pack.write_pack_index
    - dulwich.bitmap.EWAHBitmap._decode
    - dulwich.pack.PackStreamCopier._read
    - dulwich.bitmap.EWAHBitmap.__init__
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_header
    - extra_entries.append
    - io.BytesIO.fileno
    - dulwich.object_store.DiskObjectStore.get_midx
    - f.tell
    - warnings.warn
    - type_bitmap.encode
    - dulwich.objects.hex_to_sha
    - dulwich.midx.MultiPackIndex.__init__
    - dulwich.pack.write_pack_index_v2
    - selected.update
    - <builtin>.range
    - collections.defaultdict
    - dulwich.file._GitFile.fileno
    - <builtin>.sorted
    - dulwich.contrib.swift.SwiftPackReader.read
    - io.BytesIO.write
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.load_midx_file
    - dulwich.pack.write_pack_index_v1
    - dulwich.pack._load_file_contents
    - dulwich.pack.write_pack_index_v3
    - delta_stack.append
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.PackIndex2._unpack_crc32_checksum
    - dulwich.pack.PackIndex3.__init__
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - entries.sort
    - dulwich.pack.write_pack_object
    - os.path.exists
    - os.remove
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - selected.add
    - entries.extend
    - dulwich.bitmap.BitmapEntry.__init__
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - <builtin>.list
    - indexer.ext_refs
    - obj.items
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.object_store.DiskObjectStore._complete_pack.<lambda1>
    - <builtin>.open
    - dulwich.pack.Pack.get_raw
    - dulwich.bitmap.build_name_hash_cache
    - compressor.flush
    - f.fileno
    - header.append
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - refs.items
    - contextlib.suppress
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.pack.extend_pack
    - dulwich.pack.iter_sha1
    - dulwich.pack.pack_header_chunks
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - <builtin>.reversed
    - commit_bitmaps.append
    - collections.deque
    - dulwich.bitmap.build_reachability_bitmap
    - entries.append
    - dulwich.objects.sha_to_hex
    - os.fdopen
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - struct.unpack_from
    - dulwich.pack.load_pack_index_file
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.bitmap.build_type_bitmaps
    - dulwich.bitmap.generate_bitmap
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.file._GitFile.seek
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - <builtin>.set
    - dulwich.pack.PackIndex1._unpack_entry
    - pack_bitmap.entries_list.append
    - os.rename
    - dulwich.pack.Pack.check_length_and_checksum
    - PackIndexer.for_pack_data
    - dulwich.bitmap._compute_name_hash
    - sha_to_pos.items
    - hashlib.sha1.hexdigest
    - ret.append
    - dulwich.bitmap.PackBitmap.__init__
    - f.read
    - ret.insert
    - struct.pack
    - dulwich.pack.PackIndex2._unpack_name
    - os.fstat
    - header.extend
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.SHA1Writer.__init__
    - collections.deque.popleft
    - dulwich._pack.apply_delta
    - dulwich.midx.MultiPackIndex._get_pack_info
    - dulwich.pack.write_pack_header
    - dulwich.pack.pack_object_chunks
    - dulwich.pack.PackIndex3._unpack_crc32_checksum
    - f.write
    - collections.deque.extend
    - typing.cast
    - typing.NewType
    - bitmap.entries.items
    - binascii.unhexlify
    - dulwich.object_store.DiskObjectStore.get_raw
    - dulwich.bitmap.apply_xor_compression
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - dulwich.pack.PackIndex3._unpack_name
    - dulwich.pack.PackIndex3._unpack_entry
    - dulwich.pack.PackIndex2._unpack_entry
    - <builtin>.min
    - <builtin>.getattr
    - compressor.compress
    - f.seek
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - dulwich.bitmap.EWAHBitmap.add
    - f.write_sha
    - dulwich.bitmap.write_bitmap_file
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - io.BytesIO.seek
    - os.open
    - prev_pack.close
    - seen.add
    - collections.deque.append
    - struct.unpack
    - msg.encode
    - compressed.append
    - tempfile.SpooledTemporaryFile.seek
    - f.flush
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - words.append
    - hashlib.sha1.digest
    - os.path.basename
    - typing.cast.read
    - dulwich.bitmap.write_bitmap
    - pack_name.endswith
    - dulwich.object_store.DiskObjectStore._get_pack_basepath
    - io.BytesIO.write_sha
    - dulwich.file.GitFile
    - <builtin>.hasattr
    - dulwich.midx.load_midx
    - dulwich.pack.Pack.resolve_object
    - largetable.append
    - dulwich.pack.compute_file_sha
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - f.close
    - entry.bitmap.encode
    - tempfile.SpooledTemporaryFile.read
    - zlib.compressobj
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.pack.PackIndex1.__init__
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.FilePackIndex.iterentries
    - dulwich.file._GitFile.read
    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: 1955
    functionName: dulwich.object_store.DiskObjectStore.add_pack.abort
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - os.remove
    - f.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1961
    functionName: dulwich.object_store.DiskObjectStore.add_object
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - os.path.exists
    - os.mkdir
    - obj.as_legacy_object
    - os.fspath
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - os.fdopen
    - os.open
    - os.path.join
    - dulwich.file._GitFile.__init__
    - dulwich.objects.hex_to_filename
    - <builtin>.open
    - os.path.dirname
    - dulwich.file.GitFile
    - typing.cast.decode
    - <builtin>.isinstance
    - os.chmod
    - f.write
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.as_legacy_object
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - path
    - file_mode
    - dir_mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1984
    functionName: dulwich.object_store.DiskObjectStore.init
    functionSourceFile: dulwich.object_store
    functionUses: 7
    functionsReached:
    - os.path.join
    - os.mkdir
    - <builtin>.super
    - os.chmod
    - dulwich.object_store.DiskObjectStore.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 8
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2018
    functionName: dulwich.object_store.DiskObjectStore.iter_prefix
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - os.fsencode
    - os.listdir
    - seen.add
    - <builtin>.len
    - binascii.hexlify
    - os.path.join
    - <builtin>.super
    - typing.NewType
    - sha.startswith
    - dulwich.objects.sha_to_hex
    - binascii.unhexlify
    - <builtin>.set
    - p.index.iter_prefix
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: binascii.unhexlify
    functionSourceFile: binascii
    functionUses: 433
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.index.iter_prefix
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 418
    functionName: dulwich.commit_graph.read_commit_graph
    functionSourceFile: dulwich.commit_graph
    functionUses: 20
    functionsReached:
    - <builtin>.open
    - dulwich.commit_graph.CommitGraph.__init__
    - path.encode
    - dulwich.commit_graph.CommitGraph.from_file
    - os.path.exists
    - <builtin>.isinstance
    - graph._read_from_file
    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: 6
    functionLinenumber: 2078
    functionName: dulwich.object_store.DiskObjectStore.get_midx
    functionSourceFile: dulwich.object_store
    functionUses: 10
    functionsReached:
    - mmap.mmap
    - <builtin>.min
    - os.path.exists
    - <builtin>.getattr
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - os.fspath
    - os.fdopen
    - os.open
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - struct.unpack
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - dulwich.midx.MultiPackIndex._parse_header
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - <builtin>.open
    - f.fileno
    - dulwich.file.GitFile
    - dulwich.midx.load_midx
    - <builtin>.range
    - f.read
    - os.fstat
    - <builtin>.isinstance
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.midx.load_midx_file
    - dulwich.midx.MultiPackIndex.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 445
    functionName: dulwich.midx.load_midx
    functionSourceFile: dulwich.midx
    functionUses: 11
    functionsReached:
    - mmap.mmap
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - os.fspath
    - os.fdopen
    - os.open
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - struct.unpack
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - dulwich.midx.MultiPackIndex._parse_header
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - <builtin>.open
    - f.fileno
    - dulwich.file.GitFile
    - f.read
    - <builtin>.range
    - os.fstat
    - <builtin>.isinstance
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.midx.load_midx_file
    - dulwich.midx.MultiPackIndex.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pack_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2098
    functionName: dulwich.object_store.DiskObjectStore._get_pack_by_name
    functionSourceFile: dulwich.object_store
    functionUses: 8
    functionsReached:
    - os.path.exists
    - os.path.join
    - pack_name.endswith
    - dulwich.pack.Pack.__init__
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_name.endswith
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 373
    functionName: dulwich.midx.MultiPackIndex.object_offset
    functionSourceFile: dulwich.midx
    functionUses: 9
    functionsReached:
    - dulwich.midx.MultiPackIndex._get_oid
    - dulwich.midx.MultiPackIndex._get_pack_info
    - <builtin>.len
    - struct.unpack
    - typing.NewType
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 2202
    functionName: dulwich.object_store.DiskObjectStore.write_midx
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - <builtin>.getattr
    - name.encode
    - dulwich.midx.write_midx
    - os.fspath
    - os.fdopen
    - chunk_table.append
    - os.open
    - <builtin>.len
    - os.path.join
    - pack_entries.append
    - dulwich.file._GitFile.__init__
    - <builtin>.list
    - large_offsets.append
    - <builtin>.sum
    - hashlib.sha1.digest
    - all_objects.append
    - os.path.basename
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - <builtin>.any
    - pack.index.iterentries
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.__init__
    - <builtin>.bytes
    - io.BytesIO.write
    - pack_names.append
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.midx.write_midx_file
    - all_objects.sort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_entries.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febaf5f6ee0>
    argNames:
    - path
    - pack_index_entries
    - hash_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 641
    functionName: dulwich.midx.write_midx_file
    functionSourceFile: dulwich.midx
    functionUses: 1
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - <builtin>.getattr
    - name.encode
    - dulwich.midx.write_midx
    - os.fspath
    - os.fdopen
    - chunk_table.append
    - os.open
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - large_offsets.append
    - <builtin>.sum
    - hashlib.sha1.digest
    - all_objects.append
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.__init__
    - <builtin>.bytes
    - io.BytesIO.write
    - pack_names.append
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - all_objects.sort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf26f5e0>
    - <ast.Constant object at 0x7febaf26f2e0>
    argNames:
    - self
    - refs
    - reachable
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2234
    functionName: dulwich.object_store.DiskObjectStore.write_commit_graph
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - all_refs.append
    - graph.entries.append
    - normalized_commit_ids.append
    - dulwich.objects.sha_to_hex
    - os.fspath
    - dulwich.commit_graph.CommitGraphEntry.__init__
    - os.fdopen
    - binascii.hexlify
    - os.open
    - reachable.append
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - os.path.join
    - oid_to_index.get
    - dulwich.file._GitFile.__init__
    - parents_hex.append
    - <builtin>.max
    - <builtin>.list
    - <builtin>.set
    - dulwich.commit_graph.CommitGraph.write_to_file
    - dulwich.commit_graph.generate_commit_graph
    - <builtin>.open
    - dulwich.objects.hex_to_sha
    - dulwich.file.GitFile
    - os.makedirs
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - stack.append
    - <builtin>.isinstance
    - os.chmod
    - stack.pop
    - commit_map.items
    - dulwich.commit_graph.generate_commit_graph.calculate_generation
    - f.write
    - visited.add
    - typing.NewType
    - <builtin>.enumerate
    - binascii.unhexlify
    - dulwich.commit_graph.get_reachable_commits
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_refs.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 7
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - object_store
    - start_commits
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 597
    functionName: dulwich.commit_graph.get_reachable_commits
    functionSourceFile: dulwich.commit_graph
    functionUses: 1
    functionsReached:
    - reachable.append
    - <builtin>.len
    - stack.append
    - visited.add
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - <builtin>.isinstance
    - stack.pop
    - <builtin>.set
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - object_store
    - commit_ids
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 451
    functionName: dulwich.commit_graph.generate_commit_graph
    functionSourceFile: dulwich.commit_graph
    functionUses: 2
    functionsReached:
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - dulwich.commit_graph.generate_commit_graph.calculate_generation
    - dulwich.objects.sha_to_hex
    - binascii.hexlify
    - parents_hex.append
    - graph.entries.append
    - typing.NewType
    - <builtin>.max
    - normalized_commit_ids.append
    - <builtin>.enumerate
    - <builtin>.isinstance
    - dulwich.commit_graph.CommitGraphEntry.__init__
    - commit_map.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 13
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 320
    functionName: dulwich.commit_graph.CommitGraph.write_to_file
    functionSourceFile: dulwich.commit_graph
    functionUses: 2
    functionsReached:
    - dulwich.objects.hex_to_sha
    - <builtin>.len
    - f.write
    - oid_to_index.get
    - <builtin>.range
    - struct.pack
    - typing.NewType
    - <builtin>.enumerate
    - <builtin>.isinstance
    - <builtin>.sorted
    - binascii.unhexlify
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadb1adf0>
    argNames:
    - self
    - grace_period
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2297
    functionName: dulwich.object_store.DiskObjectStore.prune
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - os.listdir
    - name.endswith
    - idx_files.add
    - os.path.getmtime
    - os.path.join
    - time.time
    - os.remove
    - pack_files.items
    - <builtin>.set
    - glob.glob
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: glob.glob
    functionSourceFile: glob
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 80
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: idx_files.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_files.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 431
    functionName: dulwich.midx.MultiPackIndex.close
    functionSourceFile: dulwich.midx
    functionUses: 25
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: alt.close
    functionSourceFile: <builtin>
    functionUses: 25
    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: 2370
    functionName: dulwich.object_store.MemoryObjectStore.__init__
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2379
    functionName: dulwich.object_store.MemoryObjectStore._to_hexsha
    functionSourceFile: dulwich.object_store
    functionUses: 6
    functionsReached:
    - <builtin>.len
    - typing.cast
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - binascii.hexlify
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2391
    functionName: dulwich.object_store.MemoryObjectStore.contains_packed
    functionSourceFile: dulwich.object_store
    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: 2395
    functionName: dulwich.object_store.MemoryObjectStore.__iter__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - typing.Protocol._data.keys
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.Protocol._data.keys
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2400
    functionName: dulwich.object_store.MemoryObjectStore.packs
    functionSourceFile: dulwich.object_store
    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: obj.as_raw_string
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2414
    functionName: dulwich.object_store.MemoryObjectStore.__getitem__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - typing.cast
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.MemoryObjectStore._to_hexsha
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2428
    functionName: dulwich.object_store.MemoryObjectStore.__delitem__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - typing.cast
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.MemoryObjectStore._to_hexsha
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2432
    functionName: dulwich.object_store.MemoryObjectStore.add_object
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - obj.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.copy
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf216cd0>
    argNames:
    - self
    - objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2436
    functionName: dulwich.object_store.MemoryObjectStore.add_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - obj.copy
    - dulwich.object_store.MemoryObjectStore.add_object
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2450
    functionName: dulwich.object_store.MemoryObjectStore.add_pack
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached:
    - tempfile.SpooledTemporaryFile
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.SpooledTemporaryFile
    functionSourceFile: tempfile
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2463
    functionName: dulwich.object_store.MemoryObjectStore.add_pack.commit
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - os.fdopen
    - dulwich.pack.read_pack_header
    - dulwich.contrib.swift.SwiftPackReader._read
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - obj.copy
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - tempfile.SpooledTemporaryFile.seek
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - p.close
    - io.BytesIO
    - dulwich.object_store.MemoryObjectStore.add_object
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - tempfile.SpooledTemporaryFile.close
    - <builtin>.bytes
    - dulwich.pack.PackData.from_file
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - tempfile.SpooledTemporaryFile.tell
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    - PackInflater.for_pack_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.close
    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: 2476
    functionName: dulwich.object_store.MemoryObjectStore.add_pack.abort
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - tempfile.SpooledTemporaryFile.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf791b20>
    argNames:
    - self
    - count
    - unpacked_objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2481
    functionName: dulwich.object_store.MemoryObjectStore.add_pack_data
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - hashlib.sha1
    - dulwich.object_store.MemoryObjectStore.add_pack
    - compressor.compress
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - <builtin>.type
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - tempfile.SpooledTemporaryFile
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.write_pack_data
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - dulwich.pack.PackChunkGenerator.sha1digest
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - typing.cast.write
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - typing.cast
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaed61400>
    argNames:
    - self
    - read_all
    - read_some
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2514
    functionName: dulwich.object_store.MemoryObjectStore.add_thin_pack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.min
    - dulwich.object_store.MemoryObjectStore.add_pack
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - io.BytesIO.seek
    - struct.unpack_from
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - tempfile.SpooledTemporaryFile
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - hashlib.sha1.digest
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - dulwich.pack.PackStreamCopier.__init__
    - <builtin>.range
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - <builtin>.isinstance
    - dulwich.pack.PackStreamReader.read_objects
    - ret.read
    - dulwich.pack.PackStreamReader.recv
    - dulwich.pack.PackStreamCopier.verify
    - <builtin>.bytes
    - io.BytesIO.write
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2547
    functionName: dulwich.object_store.ObjectIterator.iterobjects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - lookup_obj
    - root_sha
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2556
    functionName: dulwich.object_store.tree_lookup_path
    functionSourceFile: dulwich.object_store
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - NotTreeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tree.lookup_path
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - obj_store
    - tree_sha
    - kset
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2575
    functionName: dulwich.object_store._collect_filetree_revs
    functionSourceFile: dulwich.object_store
    functionUses: 16
    functionsReached:
    - stat.S_IFMT
    - dulwich.object_store._collect_filetree_revs
    - <builtin>.isinstance
    - stat.S_ISDIR
    - kset.add
    - dulwich.objects.S_ISGITLINK
    - filetree.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filetree.iteritems
    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:
    - m
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 158
    functionName: dulwich.objects.S_ISGITLINK
    functionSourceFile: dulwich.objects
    functionUses: 115
    functionsReached:
    - stat.S_IFMT
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kset.add
    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: stat.S_ISDIR
    functionSourceFile: stat
    functionUses: 156
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - obj_store
    - lst
    - unknown
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2596
    functionName: dulwich.object_store._split_commits_and_tags
    functionSourceFile: dulwich.object_store
    functionUses: 11
    functionsReached:
    - logging.warning
    - e.decode
    - others.add
    - tags.add
    - commits.add
    - <builtin>.isinstance
    - dulwich.object_store._split_commits_and_tags
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: e.decode
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commits.add
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tags.add
    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: others.add
    functionSourceFile: <builtin>
    functionUses: 12
    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 0x7febaee6a8e0>
    - <ast.Constant object at 0x7febaee6a250>
    argNames:
    - self
    - heads
    - exclude
    - shallow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3458
    functionName: dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    functionSourceFile: dulwich.object_store
    functionUses: 12
    functionsReached:
    - queue.pop
    - path.encode
    - os.path.exists
    - dulwich.object_store._collect_ancestors
    - queue.extend
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.object_store.<lambda2>
    - commit_graph.get_parents
    - os.path.join
    - commits.add
    - <builtin>.set
    - dulwich.repo.ParentsProvider.get_parents
    - <builtin>.open
    - <builtin>.frozenset
    - dulwich.commit_graph.CommitGraph.from_file
    - bases.add
    - <builtin>.isinstance
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5fea00>
    - <ast.Constant object at 0x7febaf5fe0a0>
    argNames:
    - self
    - heads
    - exclude
    - shallow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 3631
    functionName: dulwich.object_store.BitmapReachability.get_reachable_commits
    functionSourceFile: dulwich.object_store
    functionUses: 11
    functionsReached:
    - pack_index.iterentries
    - queue.pop
    - path.encode
    - remaining.remove
    - os.path.exists
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - queue.extend
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    - binascii.hexlify
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.object_store.<lambda2>
    - <builtin>.len
    - commit_graph.get_parents
    - pack_bitmap.get_bitmap
    - os.path.join
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - commits.add
    - pack_bitmap.has_commit
    - <builtin>.list
    - <builtin>.set
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.objects.hex_to_sha
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - <builtin>.open
    - result.add
    - <builtin>.frozenset
    - dulwich.commit_graph.CommitGraph.from_file
    - bases.add
    - pack.index.iterentries
    - <builtin>.isinstance
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - typing.NewType
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - dulwich.bitmap.find_commit_bitmaps
    - <builtin>.enumerate
    - binascii.unhexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 5
    argDefaultValues:
    - <ast.Call object at 0x7febaed98f70>
    - <ast.Call object at 0x7febaed98b20>
    - <ast.Lambda object at 0x7febaed98040>
    argNames:
    - store
    - heads
    - common
    - shallow
    - get_parents
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3282
    functionName: dulwich.object_store._collect_ancestors
    functionSourceFile: dulwich.object_store
    functionUses: 14
    functionsReached:
    - queue.pop
    - path.encode
    - os.path.exists
    - queue.extend
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.object_store.<lambda2>
    - commit_graph.get_parents
    - os.path.join
    - commits.add
    - <builtin>.set
    - dulwich.repo.ParentsProvider.get_parents
    - <builtin>.open
    - dulwich.commit_graph.CommitGraph.from_file
    - bases.add
    - <builtin>.isinstance
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tree_shas
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3483
    functionName: dulwich.object_store.GraphTraversalReachability.get_tree_objects
    functionSourceFile: dulwich.object_store
    functionUses: 14
    functionsReached:
    - dulwich.objects.S_ISGITLINK
    - stat.S_IFMT
    - dulwich.object_store._collect_filetree_revs
    - stat.S_ISDIR
    - kset.add
    - <builtin>.isinstance
    - <builtin>.set
    - filetree.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tree_shas
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3673
    functionName: dulwich.object_store.BitmapReachability.get_tree_objects
    functionSourceFile: dulwich.object_store
    functionUses: 11
    functionsReached:
    - dulwich.objects.S_ISGITLINK
    - stat.S_IFMT
    - dulwich.object_store._collect_filetree_revs
    - <builtin>.isinstance
    - stat.S_ISDIR
    - kset.add
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - <builtin>.set
    - filetree.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: want_tags.difference
    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: want_others.difference
    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: dulwich.object_store.MissingObjectFinder.__init__.<lambda1>
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae4ac850>
    - <ast.Constant object at 0x7febae4ac820>
    argNames:
    - self
    - refs
    - repo
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 493
    functionName: dulwich.server.UploadPackHandler.get_tagged
    functionSourceFile: dulwich.server
    functionUses: 11
    functionsReached:
    - typing.Protocol.as_dict
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs._split_ref_line
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.server.PackHandler.has_capability
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - <builtin>.bytes
    - repo.get_peeled
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2763
    functionName: dulwich.object_store.MissingObjectFinder.add_todo
    functionSourceFile: dulwich.object_store
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 9
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2773
    functionName: dulwich.object_store.MissingObjectFinder.__next__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.objects.S_ISGITLINK
    - functools.partial
    - stat.S_IFMT
    - todos.append
    - o.iteritems
    - dulwich.object_store.MissingObjectFinder.add_todo
    - stat.S_ISREG
    - stat.S_ISDIR
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.partial
    functionSourceFile: functools
    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: o.iteritems
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stat.S_ISREG
    functionSourceFile: stat
    functionUses: 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: todos.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2824
    functionName: dulwich.object_store.MissingObjectFinder.__iter__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae381a30>
    - <ast.Constant object at 0x7febae3818e0>
    argNames:
    - self
    - local_heads
    - get_parents
    - shallow
    - update_shallow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2844
    functionName: dulwich.object_store.ObjectStoreGraphWalker.__init__
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2868
    functionName: dulwich.object_store.ObjectStoreGraphWalker.nak
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2871
    functionName: dulwich.object_store.ObjectStoreGraphWalker.ack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.set
    - new_ancestors.update
    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: new_ancestors.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2897
    functionName: dulwich.object_store.ObjectStoreGraphWalker.next
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - dulwich.repo.ParentsProvider.get_parents
    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 0x7febaed98e50>
    argNames:
    - self
    - commit_id
    - commit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 462
    functionName: dulwich.repo.ParentsProvider.get_parents
    functionSourceFile: dulwich.repo
    functionUses: 19
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - object_store
    - tree
    - changes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2913
    functionName: dulwich.object_store.commit_tree_changes
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - dulwich.objects.Tree.__init__
    - nested_changes.setdefault
    - <builtin>.len
    - dulwich.object_store.commit_tree_changes
    - path.split
    - <builtin>.super
    - <builtin>.isinstance
    - nested_changes.items
    - object_store.add_object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.split
    functionSourceFile: <builtin>
    functionUses: 61
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: nested_changes.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: nested_changes.items
    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: 1384
    functionName: dulwich.objects.Tree.__init__
    functionSourceFile: dulwich.objects
    functionUses: 80
    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: object_store.add_object
    functionSourceFile: <builtin>
    functionUses: 35
    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 0x7febaf268a60>
    argNames:
    - self
    - bases
    - add_store
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2979
    functionName: dulwich.object_store.OverlayObjectStore.__init__
    functionSourceFile: dulwich.object_store
    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
    - object
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2993
    functionName: dulwich.object_store.OverlayObjectStore.add_object
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2688b0>
    argNames:
    - self
    - objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3006
    functionName: dulwich.object_store.OverlayObjectStore.add_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    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: 3025
    functionName: dulwich.object_store.OverlayObjectStore.packs
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - ret.extend
    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: 3036
    functionName: dulwich.object_store.OverlayObjectStore.__iter__
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - done.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - shas
    - allow_missing
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3049
    functionName: dulwich.object_store.OverlayObjectStore.iterobjects_subset
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - b.iterobjects_subset
    - found.add
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.iterobjects_subset
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: found.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaeee6fa0>
    - <ast.Constant object at 0x7febaeee6310>
    - <ast.Constant object at 0x7febaeee6760>
    argNames:
    - self
    - shas
    - include_comp
    - allow_missing
    - convert_ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3080
    functionName: dulwich.object_store.OverlayObjectStore.iter_unpacked_subset
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - todo.remove
    - <builtin>.set
    - o.sha
    - b.iter_unpacked_subset
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.iter_unpacked_subset
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3114
    functionName: dulwich.object_store.OverlayObjectStore.get_raw
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - b.get_raw
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.get_raw
    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
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3133
    functionName: dulwich.object_store.OverlayObjectStore.contains_packed
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - b.contains_packed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.contains_packed
    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
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3147
    functionName: dulwich.object_store.OverlayObjectStore.contains_loose
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - b.contains_loose
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.contains_loose
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3162
    functionName: dulwich.object_store.read_packs_file
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - line.split
    - os.fsdecode
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 3176
    functionName: dulwich.object_store.BucketBasedObjectStore._iter_loose_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3180
    functionName: dulwich.object_store.BucketBasedObjectStore._get_loose_object
    functionSourceFile: dulwich.object_store
    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
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3183
    functionName: dulwich.object_store.BucketBasedObjectStore.delete_loose_object
    functionSourceFile: dulwich.object_store
    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 0x7febaf4d23a0>
    argNames:
    - self
    - progress
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3193
    functionName: dulwich.object_store.BucketBasedObjectStore.pack_loose_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3203
    functionName: dulwich.object_store.BucketBasedObjectStore._remove_pack_by_name
    functionSourceFile: dulwich.object_store
    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: 3207
    functionName: dulwich.object_store.BucketBasedObjectStore._iter_pack_names
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3210
    functionName: dulwich.object_store.BucketBasedObjectStore._get_pack
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3213
    functionName: dulwich.object_store.BucketBasedObjectStore._update_pack_cache
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - new_packs.append
    - dulwich.object_store.BucketBasedObjectStore._iter_pack_names
    - dulwich.object_store.BucketBasedObjectStore._get_pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - basename
    - pack_file
    - index_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3228
    functionName: dulwich.object_store.BucketBasedObjectStore._upload_pack
    functionSourceFile: dulwich.object_store
    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: 3233
    functionName: dulwich.object_store.BucketBasedObjectStore.add_pack
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - tempfile.SpooledTemporaryFile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3246
    functionName: dulwich.object_store.BucketBasedObjectStore.add_pack.commit
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - hashlib.sha1.update
    - ret.check_length_and_checksum
    - idxf.close
    - io.BytesIO.read
    - os.fsync
    - pf.close
    - dulwich.pack.write_pack_index
    - dulwich.pack.PackStreamCopier._read
    - idxf.seek
    - pf.tell
    - io.BytesIO.fileno
    - tempfile.SpooledTemporaryFile
    - os.close
    - pf.seek
    - dulwich.pack.write_pack_index_v2
    - dulwich.contrib.swift.SwiftPackData.get_stored_checksum
    - <builtin>.range
    - collections.defaultdict
    - dulwich.file._GitFile.fileno
    - <builtin>.sorted
    - dulwich.contrib.swift.SwiftPackReader.read
    - io.BytesIO.write
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack.write_pack_index_v1
    - dulwich.pack._load_file_contents
    - dulwich.pack.write_pack_index_v3
    - dulwich.pack.PackIndex3.__init__
    - mmap.mmap
    - hashlib.sha1
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - dulwich.pack.PackData.get_stored_checksum
    - os.path.exists
    - os.replace
    - os.remove
    - os.fspath
    - dulwich.file._GitFile.close
    - dulwich.pack.PackStreamReader._buf_len
    - <builtin>.len
    - <builtin>.list
    - dulwich.pack.FilePackIndex.close
    - <builtin>.open
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.pack.iter_sha1
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.pack.Pack.from_objects
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - os.rename
    - PackIndexer.for_pack_data
    - hashlib.sha1.hexdigest
    - ret.append
    - dulwich.contrib.swift.SwiftPackReader.read_checksum
    - struct.pack
    - os.fstat
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.pack.PackData.sorted_entries
    - tempfile.mkstemp
    - dulwich.contrib.swift.SwiftPackData.close
    - dulwich.object_store.BucketBasedObjectStore._upload_pack
    - dulwich.file._fancy_rename
    - f.write
    - <builtin>.getattr
    - <builtin>.min
    - f.write_sha
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - prev_pack.close
    - struct.unpack
    - tempfile.SpooledTemporaryFile.seek
    - hashlib.sha1.digest
    - typing.cast.read
    - io.BytesIO.write_sha
    - dulwich.file.GitFile
    - largetable.append
    - dulwich.pack.PackData.iterentries
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.PackIndex1.__init__
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pf.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: pf.close
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pf.seek
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: idxf.seek
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: idxf.close
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bases.add
    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: dulwich.object_store.BaseObjectStore.<lambda1>
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.object_store.MissingObjectFinder.<lambda1>
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - commit
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 766
    functionName: dulwich.repo.BaseRepo.find_missing_objects.get_parents
    functionSourceFile: dulwich.repo
    functionUses: 15
    functionsReached:
    - <builtin>.isinstance
    - dulwich.repo.ParentsProvider.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.object_store.<lambda2>
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - store
    - tree_id
    - include_trees
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3335
    functionName: dulwich.object_store.iter_tree_contents
    functionSourceFile: dulwich.object_store
    functionUses: 31
    functionsReached:
    - subentry.in_path
    - todo.pop
    - todo.extend
    - stat.S_ISDIR
    - tree.iteritems
    - <builtin>.isinstance
    - extra.append
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.__init__
    functionSourceFile: ''
    functionUses: 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: tree.iteritems
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subentry.in_path
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extra.append
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - store
    - commit
    - include
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3370
    functionName: dulwich.object_store.iter_commit_contents
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - subentry.in_path
    - todo.pop
    - entry.in_path
    - <builtin>.reversed
    - dulwich.object_store.iter_tree_contents
    - todo.extend
    - tree.lookup_path
    - <builtin>.str
    - stat.S_ISDIR
    - tree.iteritems
    - <builtin>.isinstance
    - extra.append
    - dulwich.object_store.tree_lookup_path
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.in_path
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - type
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 303
    functionName: dulwich.objects.object_class
    functionSourceFile: dulwich.objects
    functionUses: 72
    functionsReached:
    - _TYPE_MAP.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaed148e0>
    argNames:
    - self
    - commits
    - exclude_commits
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3502
    functionName: dulwich.object_store.GraphTraversalReachability.get_reachable_objects
    functionSourceFile: dulwich.object_store
    functionUses: 1
    functionsReached:
    - dulwich.object_store.GraphTraversalReachability.get_reachable_objects
    - tree_shas.append
    - dulwich.objects.S_ISGITLINK
    - stat.S_IFMT
    - dulwich.object_store._collect_filetree_revs
    - stat.S_ISDIR
    - kset.add
    - <builtin>.isinstance
    - <builtin>.set
    - filetree.iteritems
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - result.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: tree_shas.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febade97910>
    argNames:
    - self
    - commit_shas
    - exclude_shas
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3559
    functionName: dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    functionSourceFile: dulwich.object_store
    functionUses: 13
    functionsReached:
    - dulwich.objects.hex_to_sha
    - <builtin>.len
    - remaining.remove
    - pack_bitmap.get_bitmap
    - typing.NewType
    - <builtin>.enumerate
    - <builtin>.isinstance
    - dulwich.bitmap.find_commit_bitmaps
    - pack_bitmap.has_commit
    - <builtin>.list
    - binascii.unhexlify
    - <builtin>.set
    - pack.index.iterentries
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_bitmap.get_bitmap
    functionSourceFile: <builtin>
    functionUses: 14
    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 0x7febb01e6b50>
    argNames:
    - self
    - commits
    - exclude_commits
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3688
    functionName: dulwich.object_store.BitmapReachability.get_reachable_objects
    functionSourceFile: dulwich.object_store
    functionUses: 0
    functionsReached:
    - pack_index.iterentries
    - remaining.remove
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - binascii.hexlify
    - <builtin>.len
    - stat.S_IFMT
    - pack_bitmap.get_bitmap
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - pack_bitmap.has_commit
    - <builtin>.set
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.objects.hex_to_sha
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - result.add
    - dulwich.objects.S_ISGITLINK
    - dulwich.object_store._collect_filetree_revs
    - pack.index.iterentries
    - <builtin>.isinstance
    - result.update
    - dulwich.object_store.GraphTraversalReachability.get_reachable_objects
    - tree_shas.append
    - typing.NewType
    - dulwich.bitmap.find_commit_bitmaps
    - kset.add
    - <builtin>.enumerate
    - binascii.unhexlify
    - filetree.iteritems
    linkageType: 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: dulwich.commit_graph
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - commit_id
    - tree_id
    - parents
    - generation
    - commit_time
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 94
    functionName: dulwich.commit_graph.CommitGraphEntry.__init__
    functionSourceFile: dulwich.commit_graph
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: dulwich.commit_graph.CommitGraphEntry.__repr__
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - chunk_id
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 129
    functionName: dulwich.commit_graph.CommitGraphChunk.__init__
    functionSourceFile: dulwich.commit_graph
    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: 139
    functionName: dulwich.commit_graph.CommitGraphChunk.__repr__
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7febaf5a5550>
    argNames:
    - self
    - hash_version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 147
    functionName: dulwich.commit_graph.CommitGraph.__init__
    functionSourceFile: dulwich.commit_graph
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 160
    functionName: dulwich.commit_graph.CommitGraph.from_file
    functionSourceFile: dulwich.commit_graph
    functionUses: 21
    functionsReached:
    - dulwich.commit_graph.CommitGraph.__init__
    - graph._read_from_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: graph._read_from_file
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 166
    functionName: dulwich.commit_graph.CommitGraph._read_from_file
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - toc_entries.append
    - parents.extend
    - struct.unpack
    - <builtin>.len
    - dulwich.commit_graph.CommitGraphEntry.__init__
    - f.read
    - dulwich.commit_graph.CommitGraph._parse_extra_edges
    - <builtin>.range
    - f.seek
    - dulwich.commit_graph.CommitGraph._parse_chunks
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - parents.append
    - dulwich.commit_graph.CommitGraphChunk.__init__
    - oids.append
    - binascii.hexlify
    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: toc_entries.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 207
    functionName: dulwich.commit_graph.CommitGraph._parse_chunks
    functionSourceFile: dulwich.commit_graph
    functionUses: 1
    functionsReached:
    - parents.extend
    - <builtin>.len
    - struct.unpack
    - dulwich.commit_graph.CommitGraphEntry.__init__
    - <builtin>.range
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - parents.append
    - dulwich.commit_graph.CommitGraph._parse_extra_edges
    - oids.append
    - binascii.hexlify
    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: oids.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parents.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - offset
    - oids
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 280
    functionName: dulwich.commit_graph.CommitGraph._parse_extra_edges
    functionSourceFile: dulwich.commit_graph
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - struct.unpack
    - parents.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parents.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - oid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 303
    functionName: dulwich.commit_graph.CommitGraph.get_entry_by_oid
    functionSourceFile: dulwich.commit_graph
    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
    - oid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 310
    functionName: dulwich.commit_graph.CommitGraph.get_generation_number
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - dulwich.commit_graph.CommitGraph.get_entry_by_oid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - oid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 315
    functionName: dulwich.commit_graph.CommitGraph.get_parents
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - dulwich.commit_graph.CommitGraph.get_entry_by_oid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.commit_graph.CommitGraph.write_to_file.<lambda1>
    functionSourceFile: dulwich.commit_graph
    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: oid_to_index.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 409
    functionName: dulwich.commit_graph.CommitGraph.__len__
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 413
    functionName: dulwich.commit_graph.CommitGraph.__iter__
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.encode
    functionSourceFile: <builtin>
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - git_dir
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 430
    functionName: dulwich.commit_graph.find_commit_graph_file
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - os.listdir
    - os.path.exists
    - os.path.join
    - filename.endswith
    - <builtin>.isinstance
    - filename.startswith
    - git_dir.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: git_dir.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filename.startswith
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filename.endswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalized_commit_ids.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - commit_id
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 498
    functionName: dulwich.commit_graph.generate_commit_graph.calculate_generation
    functionSourceFile: dulwich.commit_graph
    functionUses: 3
    functionsReached:
    - dulwich.commit_graph.generate_commit_graph.calculate_generation
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_map.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parents_hex.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: graph.entries.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - git_dir
    - object_store
    - commit_ids
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 564
    functionName: dulwich.commit_graph.write_commit_graph
    functionSourceFile: dulwich.commit_graph
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - graph.entries.append
    - normalized_commit_ids.append
    - os.fspath
    - dulwich.objects.sha_to_hex
    - dulwich.commit_graph.CommitGraphEntry.__init__
    - os.fdopen
    - binascii.hexlify
    - dulwich.commit_graph.CommitGraph.__init__
    - os.open
    - <builtin>.len
    - os.path.join
    - oid_to_index.get
    - dulwich.file._GitFile.__init__
    - parents_hex.append
    - <builtin>.max
    - dulwich.commit_graph.CommitGraph.write_to_file
    - dulwich.commit_graph.generate_commit_graph
    - dulwich.objects.hex_to_sha
    - <builtin>.open
    - os.makedirs
    - dulwich.file.GitFile
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - commit_map.items
    - git_dir.encode
    - dulwich.commit_graph.generate_commit_graph.calculate_generation
    - f.write
    - typing.NewType
    - <builtin>.enumerate
    - binascii.unhexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stack.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stack.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: visited.add
    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: reachable.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.midx
    functionSourceFile: dulwich.midx
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaff9f160>
    - <ast.Constant object at 0x7febaff9f550>
    - <ast.Constant object at 0x7febaff9f9a0>
    argNames:
    - self
    - filename
    - file
    - contents
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 108
    functionName: dulwich.midx.MultiPackIndex.__init__
    functionSourceFile: dulwich.midx
    functionUses: 13
    functionsReached:
    - mmap.mmap
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - os.fspath
    - os.fdopen
    - os.open
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - struct.unpack
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - dulwich.midx.MultiPackIndex._parse_header
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - <builtin>.open
    - f.fileno
    - dulwich.file.GitFile
    - f.read
    - <builtin>.range
    - os.fstat
    - <builtin>.isinstance
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    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 0x7febadc3d430>
    argNames:
    - self
    - f
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 158
    functionName: dulwich.midx.MultiPackIndex._load_file_contents
    functionSourceFile: dulwich.midx
    functionUses: 14
    functionsReached:
    - mmap.mmap
    - f.fileno
    - <builtin>.len
    - f.read
    - os.fstat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 193
    functionName: dulwich.midx.MultiPackIndex._parse_header
    functionSourceFile: dulwich.midx
    functionUses: 14
    functionsReached:
    - <builtin>.len
    - struct.unpack
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 228
    functionName: dulwich.midx.MultiPackIndex._parse_chunk_table
    functionSourceFile: dulwich.midx
    functionUses: 14
    functionsReached:
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - struct.unpack
    - <builtin>.len
    - <builtin>.min
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - <builtin>.range
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    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: 259
    functionName: dulwich.midx.MultiPackIndex._parse_pnam_chunk
    functionSourceFile: dulwich.midx
    functionUses: 15
    functionsReached:
    - <builtin>.len
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 286
    functionName: dulwich.midx.MultiPackIndex._parse_oidf_chunk
    functionSourceFile: dulwich.midx
    functionUses: 15
    functionsReached:
    - struct.unpack
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 304
    functionName: dulwich.midx.MultiPackIndex._parse_oidl_chunk
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 311
    functionName: dulwich.midx.MultiPackIndex._parse_ooff_chunk
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 318
    functionName: dulwich.midx.MultiPackIndex._parse_loff_chunk
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 322
    functionName: dulwich.midx.MultiPackIndex.__len__
    functionSourceFile: dulwich.midx
    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
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 326
    functionName: dulwich.midx.MultiPackIndex._get_oid
    functionSourceFile: dulwich.midx
    functionUses: 11
    functionsReached:
    - typing.NewType
    linkageType: pythonLinkage
    raised:
    - IndexError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 341
    functionName: dulwich.midx.MultiPackIndex._get_pack_info
    functionSourceFile: dulwich.midx
    functionUses: 11
    functionsReached:
    - struct.unpack
    linkageType: pythonLinkage
    raised:
    - ValueError
    - IndexError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 408
    functionName: dulwich.midx.MultiPackIndex.__contains__
    functionSourceFile: dulwich.midx
    functionUses: 0
    functionsReached:
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.midx.MultiPackIndex._get_oid
    - dulwich.midx.MultiPackIndex._get_pack_info
    - <builtin>.len
    - struct.unpack
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 419
    functionName: dulwich.midx.MultiPackIndex.iterentries
    functionSourceFile: dulwich.midx
    functionUses: 0
    functionsReached:
    - dulwich.midx.MultiPackIndex._get_oid
    - dulwich.midx.MultiPackIndex._get_pack_info
    - struct.unpack
    - <builtin>.range
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 458
    functionName: dulwich.midx.load_midx_file
    functionSourceFile: dulwich.midx
    functionUses: 12
    functionsReached:
    - mmap.mmap
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - os.fspath
    - os.fdopen
    - os.open
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - struct.unpack
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - dulwich.midx.MultiPackIndex._parse_header
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - <builtin>.open
    - f.fileno
    - dulwich.file.GitFile
    - f.read
    - <builtin>.range
    - os.fstat
    - <builtin>.isinstance
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.midx.MultiPackIndex.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 23
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febaf84e640>
    argNames:
    - f
    - pack_index_entries
    - hash_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 473
    functionName: dulwich.midx.write_midx
    functionSourceFile: dulwich.midx
    functionUses: 2
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - name.encode
    - chunk_table.append
    - <builtin>.len
    - large_offsets.append
    - <builtin>.sum
    - hashlib.sha1.digest
    - all_objects.append
    - <builtin>.range
    - struct.pack
    - <builtin>.sorted
    - <builtin>.any
    - dulwich.pack.SHA1Writer.__init__
    - <builtin>.bytes
    - io.BytesIO.write
    - pack_names.append
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - all_objects.sort
    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: dulwich.midx.write_midx.<lambda1>
    functionSourceFile: dulwich.midx
    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: pack_names.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_objects.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.midx.write_midx.<lambda2>
    functionSourceFile: dulwich.midx
    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: all_objects.sort
    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: chunk_table.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: large_offsets.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.diff_tree
    functionSourceFile: dulwich.diff_tree
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - new
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: dulwich.diff_tree.TreeChange.add
    functionSourceFile: dulwich.diff_tree
    functionUses: 3
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - old
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: dulwich.diff_tree.TreeChange.delete
    functionSourceFile: dulwich.diff_tree
    functionUses: 38
    functionsReached:
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - tree
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: dulwich.diff_tree._tree_entries
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - entry.in_path
    - tree.iteritems
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.append
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - path
    - tree1
    - tree2
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 112
    functionName: dulwich.diff_tree._merge_entries
    functionSourceFile: dulwich.diff_tree
    functionUses: 0
    functionsReached:
    - entry.in_path
    - <builtin>.len
    - result.append
    - <builtin>.range
    - dulwich.diff_tree._tree_entries
    - tree.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - entry
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 154
    functionName: dulwich.diff_tree._is_tree
    functionSourceFile: dulwich.diff_tree
    functionUses: 0
    functionsReached:
    - stat.S_ISDIR
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 6
    IfCount: 16
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febade97ca0>
    - <ast.Constant object at 0x7febade97790>
    argNames:
    - store
    - tree1_id
    - tree2_id
    - prune_identical
    - paths
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 160
    functionName: dulwich.diff_tree.walk_trees
    functionSourceFile: dulwich.diff_tree
    functionUses: 37
    functionsReached:
    - dulwich.objects.Tree.__init__
    - todo.pop
    - todo.extend
    - <builtin>.super
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - <builtin>.isinstance
    - dulwich._diff_tree._is_tree
    - filter_path.startswith
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._diff_tree._is_tree
    functionSourceFile: dulwich
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filter_path.startswith
    functionSourceFile: <builtin>
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.startswith
    functionSourceFile: <builtin>
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._diff_tree._merge_entries
    functionSourceFile: dulwich
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - entry
    - include_trees
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 268
    functionName: dulwich.diff_tree._skip_tree
    functionSourceFile: dulwich.diff_tree
    functionUses: 37
    functionsReached:
    - stat.S_ISDIR
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rename_detector.changes_with_renames
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stat.S_IFMT
    functionSourceFile: stat
    functionUses: 125
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - seq
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 353
    functionName: dulwich.diff_tree._all_eq
    functionSourceFile: dulwich.diff_tree
    functionUses: 3
    functionsReached:
    - dulwich.diff_tree.tree_changes_for_merge.change_type
    - dulwich.diff_tree.tree_changes_for_merge.old_sha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - c
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 414
    functionName: dulwich.diff_tree.tree_changes_for_merge.change_type
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - c
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 411
    functionName: dulwich.diff_tree.tree_changes_for_merge.old_sha
    functionSourceFile: ''
    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:
    - seq
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 360
    functionName: dulwich.diff_tree._all_same
    functionSourceFile: dulwich.diff_tree
    functionUses: 2
    functionsReached:
    - dulwich.diff_tree._all_eq
    - dulwich.diff_tree.tree_changes_for_merge.change_type
    - dulwich.diff_tree.tree_changes_for_merge.old_sha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf395850>
    argNames:
    - store
    - parent_tree_ids
    - tree_id
    - rename_detector
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 364
    functionName: dulwich.diff_tree.tree_changes_for_merge
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - todo.pop
    - todo.extend
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - stat.S_ISDIR
    - dulwich.diff_tree._skip_tree
    - changes_by_path.items
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.diff_tree.TreeChange.delete
    - <builtin>.super
    - dulwich.diff_tree.walk_trees
    - dulwich.diff_tree._all_eq
    - collections.defaultdict
    - dulwich.diff_tree.tree_changes
    - dulwich.diff_tree.tree_changes_for_merge.change_type
    - <builtin>.sorted
    - dulwich.diff_tree.tree_changes_for_merge.old_sha
    - <builtin>.isinstance
    - dulwich.diff_tree._all_same
    - dulwich._diff_tree._is_tree
    - <builtin>.enumerate
    - filter_path.startswith
    - rename_detector.changes_with_renames
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.diff_tree.tree_changes_for_merge.<lambda1>
    functionSourceFile: dulwich.diff_tree
    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: changes_by_path.items
    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:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 436
    functionName: dulwich.diff_tree._count_blocks
    functionSourceFile: dulwich.diff_tree
    functionUses: 0
    functionsReached:
    - io.BytesIO.write
    - c.to_bytes
    - <builtin>.len
    - io.BytesIO.getvalue
    - collections.defaultdict
    - obj.as_raw_chunks
    - itertools.chain.from_iterable
    - io.BytesIO.truncate
    - <builtin>.hash
    - io.BytesIO
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: itertools.chain.from_iterable
    functionSourceFile: itertools
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.to_bytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hash
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.truncate
    functionSourceFile: io
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - blocks1
    - blocks2
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 473
    functionName: dulwich.diff_tree._common_bytes
    functionSourceFile: dulwich.diff_tree
    functionUses: 6
    functionsReached:
    - <builtin>.len
    - blocks1.items
    - <builtin>.min
    - blocks2.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: blocks1.items
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blocks2.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadd441f0>
    argNames:
    - obj1
    - obj2
    - block_cache
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 495
    functionName: dulwich.diff_tree._similarity_score
    functionSourceFile: dulwich.diff_tree
    functionUses: 5
    functionsReached:
    - dulwich.diff_tree._common_bytes
    - <builtin>.int
    - blocks2.get
    - <builtin>.len
    - blocks1.items
    - <builtin>.min
    - dulwich._diff_tree._count_blocks
    - <builtin>.max
    - obj1.raw_length
    - obj2.raw_length
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._diff_tree._count_blocks
    functionSourceFile: dulwich
    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: obj1.raw_length
    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: obj2.raw_length
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - entry
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 527
    functionName: dulwich.diff_tree._tree_change_key
    functionSourceFile: dulwich.diff_tree
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Name object at 0x7febaf4d2ca0>
    - <ast.Name object at 0x7febaf4d2f10>
    - <ast.Name object at 0x7febaf4d2340>
    - <ast.Constant object at 0x7febaf4d2d90>
    argNames:
    - self
    - store
    - rename_threshold
    - max_files
    - rewrite_threshold
    - find_copies_harder
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 548
    functionName: dulwich.diff_tree.RenameDetector.__init__
    functionSourceFile: dulwich.diff_tree
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 580
    functionName: dulwich.diff_tree.RenameDetector._reset
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - change
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 585
    functionName: dulwich.diff_tree.RenameDetector._should_split
    functionSourceFile: dulwich.diff_tree
    functionUses: 3
    functionsReached:
    - dulwich.diff_tree._common_bytes
    - <builtin>.int
    - blocks2.get
    - <builtin>.len
    - blocks1.items
    - <builtin>.min
    - dulwich._diff_tree._count_blocks
    - <builtin>.max
    - dulwich.diff_tree._similarity_score
    - obj1.raw_length
    - obj2.raw_length
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - change
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 597
    functionName: dulwich.diff_tree.RenameDetector._add_change
    functionSourceFile: dulwich.diff_tree
    functionUses: 2
    functionsReached:
    - dulwich.diff_tree._common_bytes
    - <builtin>.int
    - blocks2.get
    - <builtin>.len
    - blocks1.items
    - <builtin>.min
    - dulwich.diff_tree.TreeChange.add
    - dulwich.diff_tree.RenameDetector._should_split
    - dulwich.diff_tree.TreeChange.delete
    - dulwich._diff_tree._count_blocks
    - <builtin>.max
    - dulwich.diff_tree._similarity_score
    - obj2.raw_length
    - obj1.raw_length
    - typing.NamedTuple.__init__
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tree1_id
    - tree2_id
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 617
    functionName: dulwich.diff_tree.RenameDetector._collect_changes
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - todo.pop
    - dulwich.diff_tree._common_bytes
    - blocks1.items
    - <builtin>.min
    - todo.extend
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - stat.S_ISDIR
    - obj1.raw_length
    - dulwich.diff_tree._skip_tree
    - dulwich.objects.Tree.__init__
    - stat.S_IFMT
    - <builtin>.len
    - dulwich.diff_tree.RenameDetector._should_split
    - dulwich.diff_tree.TreeChange.delete
    - <builtin>.super
    - <builtin>.max
    - dulwich.diff_tree._similarity_score
    - dulwich.diff_tree.walk_trees
    - obj2.raw_length
    - <builtin>.float
    - blocks2.get
    - dulwich.diff_tree.TreeChange.add
    - dulwich.diff_tree.tree_changes
    - dulwich._diff_tree._count_blocks
    - <builtin>.isinstance
    - dulwich.diff_tree.RenameDetector._add_change
    - <builtin>.int
    - dulwich._diff_tree._is_tree
    - filter_path.startswith
    - rename_detector.changes_with_renames
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - add_paths
    - delete_paths
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 630
    functionName: dulwich.diff_tree.RenameDetector._prune
    functionSourceFile: dulwich.diff_tree
    functionUses: 3
    functionsReached:
    - dulwich.diff_tree.RenameDetector._prune.check_delete
    - dulwich.diff_tree.RenameDetector._prune.check_add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - a
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 633
    functionName: dulwich.diff_tree.RenameDetector._prune.check_add
    functionSourceFile: dulwich.diff_tree
    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:
    - d
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 637
    functionName: dulwich.diff_tree.RenameDetector._prune.check_delete
    functionSourceFile: dulwich.diff_tree
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 644
    functionName: dulwich.diff_tree.RenameDetector._find_exact_renames
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - dulwich.diff_tree.RenameDetector._prune.check_delete
    - collections.defaultdict.items
    - stat.S_IFMT
    - <builtin>.len
    - <builtin>.zip
    - collections.defaultdict
    - delete_paths.add
    - add_paths.add
    - dulwich.diff_tree.RenameDetector._prune.check_add
    - <builtin>.set
    - typing.NamedTuple.__init__
    - dulwich.diff_tree.RenameDetector._prune
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.defaultdict.items
    functionSourceFile: collections
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: delete_paths.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: add_paths.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 684
    functionName: dulwich.diff_tree.RenameDetector._should_find_content_renames
    functionSourceFile: dulwich.diff_tree
    functionUses: 2
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - check_paths
    - delete
    - add
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 689
    functionName: dulwich.diff_tree.RenameDetector._rename_type
    functionSourceFile: dulwich.diff_tree
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 704
    functionName: dulwich.diff_tree.RenameDetector._find_content_rename_candidates
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - dulwich.diff_tree._common_bytes
    - <builtin>.int
    - blocks2.get
    - candidates.append
    - stat.S_IFMT
    - <builtin>.len
    - blocks1.items
    - <builtin>.min
    - dulwich._diff_tree._count_blocks
    - <builtin>.max
    - dulwich.diff_tree._similarity_score
    - obj2.raw_length
    - dulwich.objects.S_ISGITLINK
    - obj1.raw_length
    - dulwich.diff_tree.RenameDetector._rename_type
    - dulwich.diff_tree.RenameDetector._should_find_content_renames
    - typing.NamedTuple.__init__
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: candidates.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 739
    functionName: dulwich.diff_tree.RenameDetector._choose_content_renames
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - dulwich.diff_tree.RenameDetector._prune.check_delete
    - delete_paths.add
    - add_paths.add
    - dulwich.diff_tree.RenameDetector._prune.check_add
    - <builtin>.set
    - typing.NamedTuple.__init__
    - dulwich.diff_tree.RenameDetector._prune
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 766
    functionName: dulwich.diff_tree.RenameDetector._join_modifies
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - dulwich.diff_tree.RenameDetector._join_modifies.check_delete_mod
    - stat.S_IFMT
    - modifies.values
    - delete_map.get
    - typing.NamedTuple.__init__
    - dulwich.diff_tree.RenameDetector._join_modifies.check_add_mod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: delete_map.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: 1
    argDefaultValues: []
    argNames:
    - a
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 788
    functionName: dulwich.diff_tree.RenameDetector._join_modifies.check_add_mod
    functionSourceFile: dulwich.diff_tree
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - d
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 792
    functionName: dulwich.diff_tree.RenameDetector._join_modifies.check_delete_mod
    functionSourceFile: dulwich.diff_tree
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: modifies.values
    functionSourceFile: <builtin>
    functionUses: 2
    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: 1
    functionLinenumber: 800
    functionName: dulwich.diff_tree.RenameDetector._sorted_changes
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached:
    - result.sort
    - result.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.extend
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 808
    functionName: dulwich.diff_tree.RenameDetector._prune_unchanged
    functionSourceFile: dulwich.diff_tree
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 8
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae7e4550>
    - <ast.Constant object at 0x7febae7e4b80>
    argNames:
    - self
    - tree1_id
    - tree2_id
    - want_unchanged
    - include_trees
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 813
    functionName: dulwich.diff_tree.RenameDetector.changes_with_renames
    functionSourceFile: dulwich.diff_tree
    functionUses: 0
    functionsReached:
    - dulwich.diff_tree.RenameDetector._prune.check_delete
    - dulwich.diff_tree._common_bytes
    - todo.pop
    - dulwich.diff_tree.RenameDetector._find_exact_renames
    - blocks1.items
    - <builtin>.min
    - todo.extend
    - dulwich.diff_tree.RenameDetector._sorted_changes
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - stat.S_ISDIR
    - obj1.raw_length
    - dulwich.diff_tree._skip_tree
    - result.sort
    - result.extend
    - dulwich.diff_tree.RenameDetector._should_find_content_renames
    - dulwich.diff_tree.RenameDetector._prune
    - dulwich.objects.Tree.__init__
    - collections.defaultdict.items
    - stat.S_IFMT
    - <builtin>.len
    - <builtin>.zip
    - dulwich.diff_tree.RenameDetector._reset
    - dulwich.diff_tree.RenameDetector._should_split
    - dulwich.diff_tree.TreeChange.delete
    - delete_paths.add
    - <builtin>.super
    - <builtin>.max
    - dulwich.diff_tree._similarity_score
    - dulwich.diff_tree.walk_trees
    - <builtin>.set
    - dulwich.diff_tree.RenameDetector._choose_content_renames
    - obj2.raw_length
    - dulwich.diff_tree.RenameDetector._join_modifies.check_add_mod
    - <builtin>.float
    - blocks2.get
    - candidates.append
    - dulwich.diff_tree.TreeChange.add
    - collections.defaultdict
    - dulwich.diff_tree.tree_changes
    - dulwich._diff_tree._count_blocks
    - dulwich.diff_tree.RenameDetector._join_modifies
    - add_paths.add
    - dulwich.diff_tree.RenameDetector._prune.check_add
    - <builtin>.isinstance
    - dulwich.diff_tree.RenameDetector._rename_type
    - dulwich.diff_tree.RenameDetector._add_change
    - dulwich.diff_tree.RenameDetector._join_modifies.check_delete_mod
    - <builtin>.int
    - filter_path.startswith
    - dulwich.diff_tree.RenameDetector._prune_unchanged
    - dulwich.diff_tree.RenameDetector._find_content_rename_candidates
    - modifies.values
    - dulwich.diff_tree.RenameDetector._collect_changes
    - dulwich._diff_tree._is_tree
    - dulwich.objects.S_ISGITLINK
    - rename_detector.changes_with_renames
    - delete_map.get
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - typing.NewType
    - <builtin>.set
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - ref
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 95
    functionName: dulwich.refs.SymrefLoop.__init__
    functionSourceFile: dulwich.refs
    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:
    - contents
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: dulwich.refs.parse_symref_value
    functionSourceFile: dulwich.refs
    functionUses: 13
    functionsReached:
    - <builtin>.len
    - contents.startswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contents.startswith
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - refname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 113
    functionName: dulwich.refs.check_ref_format
    functionSourceFile: dulwich.refs
    functionUses: 63
    functionsReached:
    - <builtin>.enumerate
    - <builtin>.ord
    - refname.startswith
    - refname.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refname.startswith
    functionSourceFile: <builtin>
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refname.endswith
    functionSourceFile: <builtin>
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - ref
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 147
    functionName: dulwich.refs.parse_remote_ref
    functionSourceFile: dulwich.refs
    functionUses: 5
    functionsReached:
    - remainder.split
    - <builtin>.len
    - ref.startswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref.startswith
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remainder.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - refs
    - name
    - raw_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: dulwich.refs.set_ref_from_raw
    functionSourceFile: dulwich.refs
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - typing.NewType
    - refs.set_symbolic_ref
    - raw_ref.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: raw_ref.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refs.set_symbolic_ref
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf937c40>
    argNames:
    - self
    - logger
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 196
    functionName: dulwich.refs.RefsContainer.__init__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febadf68130>
    - <ast.Constant object at 0x7febadf68fa0>
    - <ast.Constant object at 0x7febadf687f0>
    - <ast.Constant object at 0x7febadf68550>
    argNames:
    - self
    - ref
    - old_sha
    - new_sha
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 206
    functionName: dulwich.refs.RefsContainer._log
    functionSourceFile: dulwich.refs
    functionUses: 19
    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 0x7febadf68dc0>
    - <ast.Constant object at 0x7febadf68eb0>
    - <ast.Constant object at 0x7febadf688e0>
    - <ast.Constant object at 0x7febadf684c0>
    argNames:
    - self
    - name
    - other
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 227
    functionName: dulwich.refs.RefsContainer.set_symbolic_ref
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 248
    functionName: dulwich.refs.RefsContainer.get_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 258
    functionName: dulwich.refs.RefsContainer.add_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 267
    functionName: dulwich.refs.RefsContainer.get_peeled
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8511f0>
    - <ast.Constant object at 0x7febaf851370>
    - <ast.Constant object at 0x7febaf851fa0>
    - <ast.Constant object at 0x7febaf851070>
    - <ast.Constant object at 0x7febaf88cca0>
    argNames:
    - self
    - base
    - other
    - committer
    - timestamp
    - timezone
    - message
    - prune
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 278
    functionName: dulwich.refs.RefsContainer.import_refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - ref.encode
    - dulwich.contrib.swift.SwiftInfoRefsContainer.set_if_equals
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.readlines
    - time.time
    - data.find
    - packed_refs.get
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - os.fsync
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.reftable.ReftableRefsContainer.remove_if_equals
    - ref.endswith
    - dulwich.refs._split_ref_line
    - os.close
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.refs.DictRefsContainer.set_if_equals
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - io.BytesIO.writelines
    - os.makedirs
    - k.endswith
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - base.rstrip
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - name.endswith
    - dulwich.contrib.swift.SwiftConnector.get_object
    - dulwich.file._GitFile.write
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - os.replace
    - dulwich.reftable.ReftableWriter.__init__
    - value.hex
    - os.remove
    - dulwich.refs.write_packed_refs
    - <builtin>.enumerate
    - ref_files.sort
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - to_delete.remove
    - os.fspath
    - dulwich.file._GitFile.close
    - table_data.sort
    - name.startswith
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - ref_offsets.append
    - <builtin>.len
    - all_refs.pop
    - _TYPE_MAP.get
    - os.rmdir
    - dulwich.reftable.ReftableWriter.delete_ref
    - <builtin>.open
    - refname.startswith
    - os.path.dirname
    - watcher._notify
    - <builtin>.ord
    - refs.items
    - contextlib.suppress
    - os.walk
    - line.startswith
    - os.listdir
    - <builtin>.int
    - dulwich.refs.DictRefsContainer._notify
    - dulwich.contrib.swift.SwiftInfoRefsContainer._write_refs
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - io.BytesIO.tell
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - <builtin>.str
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - refnames.append
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - other.items
    - block.refs.append
    - f.abort
    - dulwich.file._GitFile.abort
    - os.path.lexists
    - os.fdopen
    - dulwich.refs.read_info_refs
    - dulwich.refs.DiskRefsContainer._remove_packed_ref
    - ref_files.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - packed_refs.keys
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - os.rename
    - dulwich.contrib.swift.SwiftInfoRefsContainer.remove_if_equals
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - files.append
    - dulwich.objects.object_class
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - ret.read
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - dulwich.contrib.swift.SwiftConnector.put_object
    - random.randint
    - dulwich.contrib.swift.SwiftInfoRefsContainer._load_check_ref
    - typing.cast.readlines
    - dulwich.file._fancy_rename
    - f.write
    - io.BytesIO.getvalue
    - typing.cast
    - dulwich.object_store.peel_sha
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.refs.DictRefsContainer.remove_if_equals
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - to_delete.add
    - dulwich.objects.git_line
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - parent.rsplit
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - dulwich.refs.DiskRefsContainer.remove_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - dulwich.protocol.write_info_refs
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 876
    functionName: dulwich.refs.DiskRefsContainer.subkeys
    functionSourceFile: dulwich.refs
    functionUses: 23
    functionsReached:
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - key.startswith
    - <builtin>.getattr
    - search_paths.append
    - os.fspath
    - os.fdopen
    - os.open
    - binascii.unhexlify
    - <builtin>.len
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.set
    - <builtin>.open
    - refname.endswith
    - directory.replace
    - refname.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - <builtin>.ord
    - <builtin>.isinstance
    - os.walk
    - line.startswith
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - base.rstrip
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_delete.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febadeb8a90>
    - <ast.Constant object at 0x7febadeb85b0>
    - <ast.Constant object at 0x7febadeb8f40>
    - <ast.Constant object at 0x7febadeb86a0>
    argNames:
    - self
    - name
    - old_ref
    - new_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1033
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer.set_if_equals
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.get_object
    - io.BytesIO.readlines
    - io.BytesIO.read
    - io.BytesIO.seek
    - name.startswith
    - dulwich.refs.read_info_refs
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - <builtin>.len
    - ref.endswith
    - _TYPE_MAP.get
    - line.rstrip
    - io.BytesIO
    - dulwich.refs.RefsContainer._check_refname
    - refname.endswith
    - refname.startswith
    - dulwich.objects.object_class
    - io.BytesIO.writelines
    - k.endswith
    - <builtin>.ord
    - refs.items
    - <builtin>.sorted
    - <builtin>.isinstance
    - ret.read
    - dulwich.contrib.swift.SwiftInfoRefsContainer._write_refs
    - dulwich.contrib.swift.SwiftConnector.put_object
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftInfoRefsContainer._load_check_ref
    - dulwich.protocol.write_info_refs
    - typing.cast
    - typing.NewType
    - <builtin>.str
    - dulwich.object_store.peel_sha
    - dulwich.protocol.split_peeled_refs
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febad923970>
    - <ast.Constant object at 0x7febad923820>
    - <ast.Constant object at 0x7febad923160>
    - <ast.Constant object at 0x7febad923d30>
    argNames:
    - self
    - name
    - old_ref
    - new_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 664
    functionName: dulwich.refs.DictRefsContainer.set_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 3
    functionsReached:
    - dulwich.refs.RefsContainer._check_refname
    - refname.endswith
    - dulwich.refs.DictRefsContainer._notify
    - refname.startswith
    - <builtin>.ord
    - watcher._notify
    - typing.NewType
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - dulwich.refs.RefsContainer._log
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaf32b9d0>
    - <ast.Constant object at 0x7febaf32bdf0>
    - <ast.Constant object at 0x7febaf32b220>
    - <ast.Constant object at 0x7febaf32b1c0>
    argNames:
    - self
    - name
    - old_ref
    - new_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1140
    functionName: dulwich.reftable.ReftableRefsContainer.set_if_equals
    functionSourceFile: dulwich.reftable
    functionUses: 9
    functionsReached:
    - name.endswith
    - ref.encode
    - dulwich.reftable.ReftableReader.all_refs
    - <builtin>.getattr
    - dulwich.reftable.ReftableWriter.__init__
    - os.path.exists
    - dulwich.reftable.RefBlock.decode
    - dulwich.reftable.RefRecord.decode
    - time.time
    - refs.get
    - value.hex
    - data.find
    - ref_files.sort
    - <builtin>.enumerate
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - <builtin>.len
    - os.path.join
    - struct.unpack
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - <builtin>.max
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableWriter._write_header
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - struct.pack
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.reftable.ReftableReader._read_header
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - typing.NewType
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 9
    IfCount: 6
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaeb7ac70>
    - <ast.Constant object at 0x7febaeb7a7c0>
    - <ast.Constant object at 0x7febaeb7ad60>
    - <ast.Constant object at 0x7febaeb7ad90>
    argNames:
    - self
    - name
    - old_ref
    - new_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 1094
    functionName: dulwich.refs.DiskRefsContainer.set_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 9
    functionsReached:
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - packed_refs.get
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - os.makedirs
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - table_data.sort
    - name.startswith
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - refs.items
    - line.startswith
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - io.BytesIO.tell
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - block.refs.append
    - f.abort
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - refname.endswith
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - f.write
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised:
    - NotADirectoryError
    returnType: N/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_delete.remove
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf495430>
    - <ast.Constant object at 0x7febaf4955b0>
    - <ast.Constant object at 0x7febaf495160>
    - <ast.Constant object at 0x7febaf495250>
    argNames:
    - self
    - name
    - old_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1054
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer.remove_if_equals
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.get_object
    - io.BytesIO.readlines
    - io.BytesIO.read
    - io.BytesIO.seek
    - name.startswith
    - dulwich.refs.read_info_refs
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - <builtin>.len
    - ref.endswith
    - _TYPE_MAP.get
    - line.rstrip
    - io.BytesIO
    - dulwich.refs.RefsContainer._check_refname
    - refname.endswith
    - refname.startswith
    - dulwich.objects.object_class
    - io.BytesIO.writelines
    - k.endswith
    - <builtin>.ord
    - refs.items
    - <builtin>.sorted
    - <builtin>.isinstance
    - ret.read
    - dulwich.contrib.swift.SwiftInfoRefsContainer._write_refs
    - dulwich.contrib.swift.SwiftConnector.put_object
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftInfoRefsContainer._load_check_ref
    - dulwich.protocol.write_info_refs
    - typing.cast
    - typing.NewType
    - <builtin>.str
    - dulwich.object_store.peel_sha
    - dulwich.protocol.split_peeled_refs
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febadfe2550>
    - <ast.Constant object at 0x7febadfe2700>
    - <ast.Constant object at 0x7febadfe2a00>
    - <ast.Constant object at 0x7febadfe2280>
    argNames:
    - self
    - name
    - old_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1232
    functionName: dulwich.refs.DiskRefsContainer.remove_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 6
    functionsReached:
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.file._GitFile.write
    - <builtin>.getattr
    - os.path.exists
    - os.replace
    - os.remove
    - dulwich.refs.write_packed_refs
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.file._GitFile.abort
    - os.path.lexists
    - dulwich.file._GitFile.close
    - name.startswith
    - os.fsync
    - os.fdopen
    - os.open
    - dulwich.refs.DiskRefsContainer._remove_packed_ref
    - binascii.unhexlify
    - dulwich.objects.git_line
    - <builtin>.len
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - packed_refs.keys
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - line.rstrip
    - os.rmdir
    - dulwich.refs._split_ref_line
    - os.close
    - parent.rsplit
    - os.rename
    - <builtin>.open
    - dulwich.refs.RefsContainer._check_refname
    - dulwich.file.ensure_dir_exists
    - refname.endswith
    - refname.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - os.path.dirname
    - os.makedirs
    - f.read
    - <builtin>.ord
    - <builtin>.sorted
    - contextlib.suppress
    - <builtin>.isinstance
    - line.startswith
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - typing.NewType
    - <builtin>.str
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    - dulwich.refs.RefsContainer._log
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaffb14f0>
    - <ast.Constant object at 0x7febaffb1640>
    - <ast.Constant object at 0x7febaffb1d90>
    - <ast.Constant object at 0x7febaffb1c70>
    argNames:
    - self
    - name
    - old_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 747
    functionName: dulwich.refs.DictRefsContainer.remove_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 2
    functionsReached:
    - dulwich.refs.RefsContainer._log
    - watcher._notify
    - dulwich.refs.DictRefsContainer._notify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf39d190>
    - <ast.Constant object at 0x7febaf39dd90>
    - <ast.Constant object at 0x7febaf39d850>
    - <ast.Constant object at 0x7febaf39dfd0>
    argNames:
    - self
    - name
    - old_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1185
    functionName: dulwich.reftable.ReftableRefsContainer.remove_if_equals
    functionSourceFile: dulwich.reftable
    functionUses: 6
    functionsReached:
    - name.endswith
    - ref.encode
    - dulwich.reftable.ReftableReader.all_refs
    - <builtin>.getattr
    - dulwich.reftable.ReftableWriter.__init__
    - os.path.exists
    - dulwich.reftable.RefBlock.decode
    - dulwich.reftable.RefRecord.decode
    - time.time
    - refs.get
    - value.hex
    - data.find
    - ref_files.sort
    - <builtin>.enumerate
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - <builtin>.len
    - os.path.join
    - struct.unpack
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - <builtin>.max
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableWriter._write_header
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - struct.pack
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.reftable.ReftableReader._read_header
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - typing.NewType
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 318
    functionName: dulwich.refs.RefsContainer.allkeys
    functionSourceFile: dulwich.refs
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 322
    functionName: dulwich.refs.RefsContainer.__iter__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs._split_ref_line
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 889
    functionName: dulwich.refs.DiskRefsContainer.allkeys
    functionSourceFile: dulwich.refs
    functionUses: 28
    functionsReached:
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - <builtin>.getattr
    - os.path.exists
    - search_paths.append
    - os.fspath
    - os.fdopen
    - os.open
    - binascii.unhexlify
    - dulwich.refs.DiskRefsContainer._iter_dir
    - <builtin>.len
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.set
    - <builtin>.open
    - refname.endswith
    - directory.replace
    - refname.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - <builtin>.ord
    - <builtin>.isinstance
    - os.walk
    - line.startswith
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - base.rstrip
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1093
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    functionSourceFile: dulwich.contrib.swift
    functionUses: 27
    functionsReached:
    - typing.NewType
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 615
    functionName: dulwich.refs.DictRefsContainer.allkeys
    functionSourceFile: dulwich.refs
    functionUses: 27
    functionsReached:
    - <builtin>.set
    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: 8
    functionLinenumber: 976
    functionName: dulwich.reftable.ReftableRefsContainer.allkeys
    functionSourceFile: dulwich.reftable
    functionUses: 27
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - data.find
    - block.refs.append
    - refs.keys
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - <builtin>.len
    - os.path.join
    - struct.unpack
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - result.add
    - files.append
    - dulwich.reftable.ReftableReader._process_ref_block
    - refs.items
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - typing.NewType
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    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 0x7febadde5fa0>
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 326
    functionName: dulwich.refs.RefsContainer.keys
    functionSourceFile: dulwich.refs
    functionUses: 21
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs._split_ref_line
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 339
    functionName: dulwich.refs.RefsContainer.subkeys
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs._split_ref_line
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    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 0x7febadfbf6d0>
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 354
    functionName: dulwich.refs.RefsContainer.as_dict
    functionSourceFile: dulwich.refs
    functionUses: 17
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs._split_ref_line
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base.rstrip
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 371
    functionName: dulwich.refs.RefsContainer._check_refname
    functionSourceFile: dulwich.refs
    functionUses: 19
    functionsReached:
    - refname.endswith
    - refname.startswith
    - <builtin>.ord
    - typing.NewType
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - name.startswith
    linkageType: pythonLinkage
    raised:
    - RefFormatError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - refname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 390
    functionName: dulwich.refs.RefsContainer.read_ref
    functionSourceFile: dulwich.refs
    functionUses: 27
    functionsReached:
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.reftable.ReftableReader.all_refs
    - <builtin>.getattr
    - os.path.exists
    - dulwich.reftable.RefBlock.decode
    - dulwich.reftable.RefRecord.decode
    - value.hex
    - refs.get
    - dulwich.reftable.ReftableReader.__init__
    - data.find
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - os.fdopen
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.RefBlock._find_ref_data_end
    - os.open
    - dulwich.reftable.ReftableReader._read_blocks
    - binascii.unhexlify
    - int.from_bytes
    - table_data.append
    - <builtin>.len
    - line.decode
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - all_refs.pop
    - dulwich.file._GitFile.__init__
    - dulwich.refs.is_per_worktree_ref
    - struct.unpack
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.max
    - io.BytesIO
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - refname.endswith
    - refname.startswith
    - files.append
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - f.read
    - <builtin>.ord
    - dulwich.reftable.ReftableReader._process_ref_block
    - refs.items
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - line.startswith
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.read_packed_refs
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - typing.NewType
    - io.BytesIO.tell
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 619
    functionName: dulwich.refs.DictRefsContainer.read_loose_ref
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1031
    functionName: dulwich.reftable.ReftableRefsContainer.read_loose_ref
    functionSourceFile: dulwich.reftable
    functionUses: 32
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - struct.unpack
    - os.path.join
    - <builtin>.len
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - files.append
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - typing.NewType
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised:
    - ValueError
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1074
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 999
    functionName: dulwich.refs.DiskRefsContainer.read_loose_ref
    functionSourceFile: dulwich.refs
    functionUses: 30
    functionsReached:
    - <builtin>.open
    - <builtin>.iter
    - os.fsencode
    - os.open
    - <builtin>.next
    - dulwich.refs.DiskRefsContainer.refpath
    - <builtin>.len
    - <builtin>.getattr
    - dulwich.file.GitFile
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - f.read
    - dulwich.file._GitFile.__init__
    - os.fspath
    - <builtin>.isinstance
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1078
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 908
    functionName: dulwich.refs.DiskRefsContainer.get_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 51
    functionsReached:
    - <builtin>.iter
    - <builtin>.next
    - <builtin>.getattr
    - os.fspath
    - os.fdopen
    - os.open
    - binascii.unhexlify
    - <builtin>.len
    - os.path.join
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.open
    - refname.endswith
    - refname.startswith
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - <builtin>.ord
    - <builtin>.isinstance
    - line.startswith
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1059
    functionName: dulwich.reftable.ReftableRefsContainer.get_packed_refs
    functionSourceFile: dulwich.reftable
    functionUses: 28
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - struct.unpack
    - os.path.join
    - <builtin>.len
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - files.append
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - typing.NewType
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 623
    functionName: dulwich.refs.DictRefsContainer.get_packed_refs
    functionSourceFile: ''
    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:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 403
    functionName: dulwich.refs.RefsContainer.read_loose_ref
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 413
    functionName: dulwich.refs.RefsContainer.follow
    functionSourceFile: dulwich.refs
    functionUses: 16
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - line.startswith
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - io.BytesIO.tell
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.reftable.ReftableReader.__init__
    - block.refs.append
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - refname.endswith
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - <builtin>.bytes
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised:
    - SymrefLoop
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refnames.append
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - refname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 433
    functionName: dulwich.refs.RefsContainer.__contains__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.reftable.ReftableReader.all_refs
    - <builtin>.getattr
    - os.path.exists
    - dulwich.reftable.RefBlock.decode
    - dulwich.reftable.RefRecord.decode
    - value.hex
    - refs.get
    - dulwich.reftable.ReftableReader.__init__
    - data.find
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - os.fdopen
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.RefBlock._find_ref_data_end
    - os.open
    - dulwich.reftable.ReftableReader._read_blocks
    - binascii.unhexlify
    - int.from_bytes
    - table_data.append
    - <builtin>.len
    - line.decode
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - all_refs.pop
    - dulwich.file._GitFile.__init__
    - dulwich.refs.RefsContainer.read_ref
    - dulwich.refs.is_per_worktree_ref
    - struct.unpack
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.max
    - dulwich.reftable._decode_reftable_suffix_and_type
    - io.BytesIO
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - refname.endswith
    - refname.startswith
    - files.append
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - f.read
    - <builtin>.ord
    - dulwich.reftable.ReftableReader._process_ref_block
    - refs.items
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - line.startswith
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.read_packed_refs
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - typing.NewType
    - io.BytesIO.tell
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 439
    functionName: dulwich.refs.RefsContainer.__getitem__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - line.startswith
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.reftable.ReftableReader.__init__
    - block.refs.append
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - refname.endswith
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - <builtin>.bytes
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 990
    functionName: dulwich.reftable.ReftableRefsContainer.follow
    functionSourceFile: dulwich.reftable
    functionUses: 17
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - struct.unpack
    - os.path.join
    - <builtin>.len
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - files.append
    - <builtin>.range
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - refnames.append
    - typing.NewType
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised:
    - ValueError
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febadea4700>
    - <ast.Constant object at 0x7febadea4b20>
    - <ast.Constant object at 0x7febadea4250>
    - <ast.Constant object at 0x7febadea4040>
    argNames:
    - self
    - name
    - old_ref
    - new_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 449
    functionName: dulwich.refs.RefsContainer.set_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    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 0x7febaf390fd0>
    - <ast.Constant object at 0x7febaf390c70>
    - <ast.Constant object at 0x7febaf3901c0>
    - <ast.Constant object at 0x7febaf390940>
    argNames:
    - self
    - name
    - ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 478
    functionName: dulwich.refs.RefsContainer.add_if_new
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 499
    functionName: dulwich.refs.RefsContainer.__setitem__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - ref.encode
    - dulwich.contrib.swift.SwiftInfoRefsContainer.set_if_equals
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.readlines
    - time.time
    - data.find
    - packed_refs.get
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - ref.endswith
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.refs.DictRefsContainer.set_if_equals
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - k.endswith
    - io.BytesIO.writelines
    - os.makedirs
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - name.endswith
    - dulwich.contrib.swift.SwiftConnector.get_object
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - dulwich.reftable.ReftableWriter.__init__
    - value.hex
    - <builtin>.enumerate
    - ref_files.sort
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - table_data.sort
    - name.startswith
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - ref_offsets.append
    - <builtin>.len
    - all_refs.pop
    - _TYPE_MAP.get
    - dulwich.reftable.ReftableWriter.delete_ref
    - ref.startswith
    - <builtin>.open
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - watcher._notify
    - refs.items
    - line.startswith
    - os.listdir
    - <builtin>.int
    - dulwich.refs.DictRefsContainer._notify
    - dulwich.contrib.swift.SwiftInfoRefsContainer._write_refs
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - io.BytesIO.tell
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - <builtin>.str
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - refnames.append
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - block.refs.append
    - f.abort
    - os.fdopen
    - dulwich.refs.read_info_refs
    - ref_files.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - <builtin>.max
    - dulwich.file._GitFile.seek
    - io.BytesIO
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - dulwich.objects.object_class
    - files.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - ret.read
    - dulwich.refs.read_packed_refs
    - dulwich.contrib.swift.SwiftConnector.put_object
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftInfoRefsContainer._load_check_ref
    - random.randint
    - f.write
    - io.BytesIO.getvalue
    - typing.cast
    - dulwich.object_store.peel_sha
    - typing.NewType
    - dulwich.refs.check_ref_format
    - dulwich.protocol.split_peeled_refs
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - dulwich.protocol.write_info_refs
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaefb80d0>
    - <ast.Constant object at 0x7febaefb8640>
    - <ast.Constant object at 0x7febaefb8250>
    - <ast.Constant object at 0x7febaefb80a0>
    argNames:
    - self
    - name
    - old_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 517
    functionName: dulwich.refs.RefsContainer.remove_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 0
    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
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 544
    functionName: dulwich.refs.RefsContainer.__delitem__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - ref.encode
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.readlines
    - time.time
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - os.fsync
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.reftable.ReftableRefsContainer.remove_if_equals
    - ref.endswith
    - dulwich.refs._split_ref_line
    - os.close
    - dulwich.refs.RefsContainer._check_refname
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - io.BytesIO.writelines
    - os.makedirs
    - k.endswith
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - name.endswith
    - dulwich.contrib.swift.SwiftConnector.get_object
    - dulwich.file._GitFile.write
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - os.replace
    - dulwich.reftable.ReftableWriter.__init__
    - value.hex
    - os.remove
    - dulwich.refs.write_packed_refs
    - ref_files.sort
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.file._GitFile.close
    - table_data.sort
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - name.startswith
    - ref_offsets.append
    - <builtin>.len
    - all_refs.pop
    - _TYPE_MAP.get
    - os.rmdir
    - dulwich.reftable.ReftableWriter.delete_ref
    - <builtin>.open
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - watcher._notify
    - refs.items
    - contextlib.suppress
    - line.startswith
    - os.listdir
    - <builtin>.int
    - dulwich.refs.DictRefsContainer._notify
    - dulwich.contrib.swift.SwiftInfoRefsContainer._write_refs
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.reftable.ReftableReader.__init__
    - block.refs.append
    - dulwich.file._GitFile.abort
    - os.path.lexists
    - os.fdopen
    - dulwich.refs.read_info_refs
    - dulwich.refs.DiskRefsContainer._remove_packed_ref
    - ref_files.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - table_data.append
    - packed_refs.keys
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - os.rename
    - dulwich.contrib.swift.SwiftInfoRefsContainer.remove_if_equals
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - files.append
    - dulwich.objects.object_class
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - ret.read
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - dulwich.contrib.swift.SwiftConnector.put_object
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftInfoRefsContainer._load_check_ref
    - dulwich.file._fancy_rename
    - random.randint
    - f.write
    - io.BytesIO.getvalue
    - typing.cast
    - dulwich.object_store.peel_sha
    - typing.NewType
    - dulwich.refs.check_ref_format
    - dulwich.protocol.split_peeled_refs
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.refs.DictRefsContainer.remove_if_equals
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - dulwich.objects.git_line
    - struct.unpack
    - line.decode
    - line.rstrip
    - parent.rsplit
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - dulwich.refs.DiskRefsContainer.remove_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - dulwich.protocol.write_info_refs
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 559
    functionName: dulwich.refs.RefsContainer.get_symrefs
    functionSourceFile: dulwich.refs
    functionUses: 12
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - os.fdopen
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    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 0x7febaf946ca0>
    argNames:
    - self
    - all
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 576
    functionName: dulwich.refs.RefsContainer.pack_refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2ee3a0>
    argNames:
    - self
    - refs
    - logger
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 592
    functionName: dulwich.refs.DictRefsContainer.__init__
    functionSourceFile: dulwich.refs
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - ref
    - newsha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 627
    functionName: dulwich.refs.DictRefsContainer._notify
    functionSourceFile: dulwich.refs
    functionUses: 8
    functionsReached:
    - watcher._notify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: watcher._notify
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febadfc4c10>
    - <ast.Constant object at 0x7febadfc4820>
    - <ast.Constant object at 0x7febadfc4e50>
    - <ast.Constant object at 0x7febadfc4370>
    argNames:
    - self
    - name
    - other
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 631
    functionName: dulwich.refs.DictRefsContainer.set_symbolic_ref
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refname.startswith
    - watcher._notify
    - <builtin>.ord
    - refs.items
    - line.startswith
    - dulwich.refs.DictRefsContainer._notify
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.reftable.ReftableReader.__init__
    - block.refs.append
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - refname.endswith
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - <builtin>.bytes
    - <builtin>.enumerate
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaef5e850>
    - <ast.Constant object at 0x7febaef5e6a0>
    - <ast.Constant object at 0x7febaef5ee20>
    - <ast.Constant object at 0x7febaef5e160>
    argNames:
    - self
    - name
    - ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 710
    functionName: dulwich.refs.DictRefsContainer.add_if_new
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.RefsContainer._log
    - watcher._notify
    - dulwich.refs.DictRefsContainer._notify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 792
    functionName: dulwich.refs.DictRefsContainer.get_peeled
    functionSourceFile: dulwich.refs
    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
    - refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 796
    functionName: dulwich.refs.DictRefsContainer._update
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.RefsContainer._check_refname
    - refname.endswith
    - dulwich.refs.DictRefsContainer._notify
    - refname.startswith
    - <builtin>.ord
    - watcher._notify
    - refs.items
    - typing.NewType
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - dulwich.refs.RefsContainer._log
    - dulwich.refs.DictRefsContainer.set_if_equals
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - peeled
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 803
    functionName: dulwich.refs.DictRefsContainer._update_peeled
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1649a0>
    - <ast.Constant object at 0x7febaf1648b0>
    argNames:
    - self
    - path
    - worktree_path
    - logger
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 811
    functionName: dulwich.refs.DiskRefsContainer.__init__
    functionSourceFile: dulwich.refs
    functionUses: 286
    functionsReached:
    - <builtin>.super
    - os.fsencode
    - os.fspath
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 831
    functionName: dulwich.refs.DiskRefsContainer.__repr__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febae391e20>
    argNames:
    - self
    - path
    - base
    - dir_filter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 835
    functionName: dulwich.refs.DiskRefsContainer._iter_dir
    functionSourceFile: dulwich.refs
    functionUses: 32
    functionsReached:
    - os.fsencode
    - refname.endswith
    - directory.replace
    - refname.startswith
    - <builtin>.len
    - <builtin>.ord
    - os.path.join
    - typing.NewType
    - dulwich.refs.check_ref_format
    - base.rstrip
    - <builtin>.enumerate
    - os.walk
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.walk
    functionSourceFile: os
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: directory.replace
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1b2d30>
    argNames:
    - self
    - base
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 858
    functionName: dulwich.refs.DiskRefsContainer._iter_loose_refs
    functionSourceFile: dulwich.refs
    functionUses: 31
    functionsReached:
    - os.fsencode
    - refname.endswith
    - directory.replace
    - refname.startswith
    - dulwich.refs.DiskRefsContainer._iter_dir
    - <builtin>.len
    - <builtin>.ord
    - search_paths.append
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - typing.NewType
    - dulwich.refs.check_ref_format
    - base.rstrip
    - <builtin>.enumerate
    - os.walk
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ref
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1993
    functionName: dulwich.refs.is_per_worktree_ref
    functionSourceFile: ''
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: search_paths.append
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.refs.DiskRefsContainer._iter_loose_refs.<lambda1>
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.is_per_worktree_ref
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.startswith
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 899
    functionName: dulwich.refs.DiskRefsContainer.refpath
    functionSourceFile: dulwich.refs
    functionUses: 48
    functionsReached:
    - os.fsencode
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: first_line.startswith
    functionSourceFile: <builtin>
    functionUses: 52
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1372
    functionName: dulwich.refs.read_packed_refs_with_peeled
    functionSourceFile: dulwich.refs
    functionUses: 52
    functionsReached:
    - line.startswith
    - refname.endswith
    - refname.startswith
    - <builtin>.len
    - <builtin>.ord
    - typing.NewType
    - line.rstrip
    - dulwich.refs.check_ref_format
    - dulwich.refs._split_ref_line
    - <builtin>.enumerate
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised:
    - PackedRefsException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1356
    functionName: dulwich.refs.read_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 52
    functionsReached:
    - line.startswith
    - refname.endswith
    - refname.startswith
    - <builtin>.len
    - <builtin>.ord
    - typing.NewType
    - line.rstrip
    - dulwich.refs.check_ref_format
    - dulwich.refs._split_ref_line
    - <builtin>.enumerate
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised:
    - PackedRefsException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 940
    functionName: dulwich.refs.DiskRefsContainer.add_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 1
    functionsReached:
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - dulwich.file._GitFile.write
    - <builtin>.getattr
    - os.remove
    - dulwich.refs.write_packed_refs
    - os.fspath
    - os.fdopen
    - os.open
    - binascii.unhexlify
    - dulwich.objects.git_line
    - <builtin>.len
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - packed_refs.keys
    - dulwich.file._GitFile.__init__
    - packed_refs.pop
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.open
    - refname.endswith
    - new_refs.items
    - refname.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - <builtin>.ord
    - <builtin>.sorted
    - <builtin>.isinstance
    - contextlib.suppress
    - line.startswith
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    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: new_refs.items
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packed_refs.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1a4fd0>
    argNames:
    - f
    - packed_refs
    - peeled_refs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1406
    functionName: dulwich.refs.write_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 10
    functionsReached:
    - dulwich.objects.git_line
    - packed_refs.keys
    - <builtin>.sorted
    - dulwich.file._GitFile.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 976
    functionName: dulwich.refs.DiskRefsContainer.get_peeled
    functionSourceFile: dulwich.refs
    functionUses: 13
    functionsReached:
    - <builtin>.iter
    - <builtin>.next
    - <builtin>.getattr
    - os.fspath
    - os.fdopen
    - os.open
    - binascii.unhexlify
    - <builtin>.len
    - os.path.join
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.open
    - refname.endswith
    - refname.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - <builtin>.ord
    - <builtin>.isinstance
    - line.startswith
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1029
    functionName: dulwich.refs.DiskRefsContainer._remove_packed_ref
    functionSourceFile: dulwich.refs
    functionUses: 7
    functionsReached:
    - <builtin>.iter
    - <builtin>.next
    - dulwich.file._GitFile.write
    - <builtin>.getattr
    - os.path.exists
    - os.replace
    - os.remove
    - dulwich.refs.write_packed_refs
    - os.fspath
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fdopen
    - os.fsync
    - os.open
    - binascii.unhexlify
    - dulwich.objects.git_line
    - <builtin>.len
    - os.path.join
    - packed_refs.keys
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - os.close
    - os.rename
    - <builtin>.open
    - refname.endswith
    - refname.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - <builtin>.ord
    - <builtin>.sorted
    - contextlib.suppress
    - <builtin>.isinstance
    - line.startswith
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - typing.NewType
    - <builtin>.str
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2d3670>
    - <ast.Constant object at 0x7febaf2d3fd0>
    - <ast.Constant object at 0x7febaf2d39d0>
    - <ast.Constant object at 0x7febaf2d3cd0>
    argNames:
    - self
    - name
    - other
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 1053
    functionName: dulwich.refs.DiskRefsContainer.set_symbolic_ref
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - os.fsync
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.refs._split_ref_line
    - os.close
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.file._GitFile.write
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - os.replace
    - value.hex
    - os.remove
    - <builtin>.enumerate
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.file._GitFile.close
    - table_data.sort
    - name.startswith
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - line.startswith
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - <builtin>.str
    - refnames.append
    - io.BytesIO.tell
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - block.refs.append
    - dulwich.file._GitFile.abort
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - os.rename
    - refname.endswith
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packed_refs.get
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.abort
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febadf3bdf0>
    - <ast.Constant object at 0x7febadf3b6a0>
    - <ast.Constant object at 0x7febadf3bd90>
    - <ast.Constant object at 0x7febadf3b370>
    argNames:
    - self
    - name
    - ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 1178
    functionName: dulwich.refs.DiskRefsContainer.add_if_new
    functionSourceFile: dulwich.refs
    functionUses: 3
    functionsReached:
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - os.makedirs
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - table_data.sort
    - name.startswith
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - refs.items
    - line.startswith
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - io.BytesIO.tell
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - block.refs.append
    - f.abort
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - refname.endswith
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - f.write
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.lexists
    functionSourceFile: os
    functionUses: 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: parent.rsplit
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.rmdir
    functionSourceFile: os
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadc0e5b0>
    argNames:
    - self
    - all
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1319
    functionName: dulwich.refs.DiskRefsContainer.pack_refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - dulwich.file._GitFile.write
    - <builtin>.getattr
    - os.path.exists
    - search_paths.append
    - os.remove
    - dulwich.refs.write_packed_refs
    - os.fspath
    - os.fdopen
    - os.open
    - binascii.unhexlify
    - dulwich.objects.git_line
    - dulwich.refs.DiskRefsContainer._iter_dir
    - <builtin>.len
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - packed_refs.keys
    - dulwich.file._GitFile.__init__
    - dulwich.refs.DiskRefsContainer.add_packed_refs
    - packed_refs.pop
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.set
    - <builtin>.open
    - refname.endswith
    - new_refs.items
    - directory.replace
    - refname.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.file.GitFile
    - <builtin>.ord
    - dulwich.refs.DiskRefsContainer.allkeys
    - <builtin>.sorted
    - contextlib.suppress
    - <builtin>.isinstance
    - os.walk
    - line.startswith
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - base.rstrip
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1343
    functionName: dulwich.refs._split_ref_line
    functionSourceFile: dulwich.refs
    functionUses: 54
    functionsReached:
    - refname.endswith
    - refname.startswith
    - <builtin>.len
    - <builtin>.ord
    - typing.NewType
    - line.rstrip
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised:
    - PackedRefsException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packed_refs.keys
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - items
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 374
    functionName: dulwich.objects.git_line
    functionSourceFile: ''
    functionUses: 83
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1428
    functionName: dulwich.refs.read_info_refs
    functionSourceFile: dulwich.refs
    functionUses: 20
    functionsReached:
    - typing.cast.readlines
    - typing.NewType
    - io.BytesIO.readlines
    - line.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.readlines
    functionSourceFile: typing
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1444
    functionName: dulwich.refs.is_local_branch
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - x.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: x.startswith
    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:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1449
    functionName: dulwich.refs.local_branch_name
    functionSourceFile: dulwich.refs
    functionUses: 103
    functionsReached:
    - typing.cast.id.startswith
    - typing.cast.startswith
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.startswith
    functionSourceFile: typing
    functionUses: 109
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.startswith
    functionSourceFile: typing
    functionUses: 109
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1469
    functionName: dulwich.refs.local_tag_name
    functionSourceFile: dulwich.refs
    functionUses: 90
    functionsReached:
    - typing.cast.id.startswith
    - typing.cast.startswith
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1489
    functionName: dulwich.refs.local_replace_name
    functionSourceFile: dulwich.refs
    functionUses: 5
    functionsReached:
    - typing.NewType
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - ref
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1509
    functionName: dulwich.refs.extract_branch_name
    functionSourceFile: dulwich.refs
    functionUses: 13
    functionsReached:
    - <builtin>.len
    - ref.startswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - ref
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1532
    functionName: dulwich.refs.extract_tag_name
    functionSourceFile: dulwich.refs
    functionUses: 9
    functionsReached:
    - <builtin>.len
    - ref.startswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - ref
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1553
    functionName: dulwich.refs.shorten_ref_name
    functionSourceFile: dulwich.refs
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - ref.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - refs
    - origin
    - origin_head
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1581
    functionName: dulwich.refs._set_origin_head
    functionSourceFile: dulwich.refs
    functionUses: 2
    functionsReached:
    - dulwich.refs.extract_branch_name
    - <builtin>.len
    - typing.NewType
    - refs.set_symbolic_ref
    - ref.startswith
    - origin_head.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: origin_head.startswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 5
    argDefaultValues: []
    argNames:
    - refs
    - origin
    - origin_head
    - branch
    - ref_message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1593
    functionName: dulwich.refs._set_default_branch
    functionSourceFile: dulwich.refs
    functionUses: 2
    functionsReached:
    - typing.cast.id.startswith
    - refs.add_if_new
    - dulwich.refs.extract_branch_name
    - typing.cast.startswith
    - <builtin>.len
    - dulwich.refs.local_branch_name
    - dulwich.refs.local_tag_name
    - typing.NewType
    - ref.startswith
    - origin_head.startswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refs.add_if_new
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - refs
    - head_ref
    - ref_message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1627
    functionName: dulwich.refs._set_head
    functionSourceFile: dulwich.refs
    functionUses: 2
    functionsReached:
    - head_ref.startswith
    - refs.set_if_equals
    - typing.NewType
    - obj.get_object
    - <builtin>.isinstance
    - refs.set_symbolic_ref
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: head_ref.startswith
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.get_object
    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: refs.set_if_equals
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    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 0x7febadeb8e20>
    - <ast.Constant object at 0x7febadeb8b20>
    - <ast.Constant object at 0x7febadeb8220>
    argNames:
    - refs_container
    - remote_name
    - refs
    - message
    - prune
    - prune_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1649
    functionName: dulwich.refs._import_remote_refs
    functionSourceFile: dulwich.refs
    functionUses: 8
    functionsReached:
    - remote_name.encode
    - dulwich.refs.extract_branch_name
    - <builtin>.len
    - dulwich.protocol.strip_peeled_refs
    - stripped_refs.items
    - refs.items
    - typing.NewType
    - n.endswith
    - ref.endswith
    - refs_container.import_refs
    - dulwich.refs.extract_tag_name
    - n.startswith
    - ref.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: stripped_refs.items
    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: n.startswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote_name.encode
    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: refs_container.import_refs
    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: n.endswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - refs_container
    - refname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1687
    functionName: dulwich.refs.locked_ref.__init__
    functionSourceFile: dulwich.refs
    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: 3
    functionLinenumber: 1700
    functionName: dulwich.refs.locked_ref.__enter__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.open
    - dulwich.file.ensure_dir_exists
    - <builtin>.getattr
    - os.makedirs
    - os.path.dirname
    - dulwich.file.GitFile
    - dulwich.file._GitFile.__init__
    - os.fspath
    - <builtin>.isinstance
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1722
    functionName: dulwich.refs.locked_ref.__exit__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - tempfile.mkstemp
    - <builtin>.getattr
    - dulwich.file._fancy_rename
    - os.path.exists
    - os.replace
    - os.fsync
    - os.remove
    - <builtin>.str
    - os.close
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.rename
    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: 1741
    functionName: dulwich.refs.locked_ref.get
    functionSourceFile: dulwich.refs
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - expected_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1754
    functionName: dulwich.refs.locked_ref.ensure_equals
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.locked_ref.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1765
    functionName: dulwich.refs.locked_ref.set
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.file._GitFile.truncate
    - dulwich.file._GitFile.write
    - <builtin>.len
    - new_ref.startswith
    - dulwich.file._GitFile.seek
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised:
    - ValueError
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_ref.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - target
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1782
    functionName: dulwich.refs.locked_ref.set_symbolic_ref
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.file._GitFile.truncate
    - dulwich.file._GitFile.seek
    - dulwich.file._GitFile.write
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1797
    functionName: dulwich.refs.locked_ref.delete
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - os.remove
    - os.path.lexists
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - refs
    - namespace
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1827
    functionName: dulwich.refs.NamespacedRefsContainer.__init__
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - namespace.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: namespace.split
    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
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1843
    functionName: dulwich.refs.NamespacedRefsContainer._apply_namespace
    functionSourceFile: dulwich.refs
    functionUses: 7
    functionsReached:
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1850
    functionName: dulwich.refs.NamespacedRefsContainer._strip_namespace
    functionSourceFile: dulwich.refs
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1862
    functionName: dulwich.refs.NamespacedRefsContainer.allkeys
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - keys.add
    - dulwich.refs.NamespacedRefsContainer._strip_namespace
    - typing.NewType
    - <builtin>.set
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: keys.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1871
    functionName: dulwich.refs.NamespacedRefsContainer.read_loose_ref
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._apply_namespace
    - typing.NewType
    - name.startswith
    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: 1875
    functionName: dulwich.refs.NamespacedRefsContainer.get_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._strip_namespace
    - <builtin>.len
    - typing.NewType
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1884
    functionName: dulwich.refs.NamespacedRefsContainer.add_packed_refs
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._apply_namespace
    - typing.NewType
    - new_refs.items
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1891
    functionName: dulwich.refs.NamespacedRefsContainer.get_peeled
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._apply_namespace
    - typing.NewType
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf3c77c0>
    - <ast.Constant object at 0x7febaf2a8d30>
    - <ast.Constant object at 0x7febaf2a8850>
    - <ast.Constant object at 0x7febaf2a8910>
    argNames:
    - self
    - name
    - other
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1895
    functionName: dulwich.refs.NamespacedRefsContainer.set_symbolic_ref
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._apply_namespace
    - typing.NewType
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a8c40>
    - <ast.Constant object at 0x7febaf2a8820>
    - <ast.Constant object at 0x7febaf2a8cd0>
    - <ast.Constant object at 0x7febaf2a82e0>
    argNames:
    - self
    - name
    - old_ref
    - new_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1914
    functionName: dulwich.refs.NamespacedRefsContainer.set_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._apply_namespace
    - typing.NewType
    - name.startswith
    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 0x7febaf74ea90>
    - <ast.Constant object at 0x7febaf74e3a0>
    - <ast.Constant object at 0x7febaf74ed00>
    - <ast.Constant object at 0x7febaf74e340>
    argNames:
    - self
    - name
    - ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1935
    functionName: dulwich.refs.NamespacedRefsContainer.add_if_new
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._apply_namespace
    - typing.NewType
    - name.startswith
    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 0x7febaf2a6280>
    - <ast.Constant object at 0x7febaf2a6880>
    - <ast.Constant object at 0x7febaf2a6250>
    - <ast.Constant object at 0x7febaf2a6d30>
    argNames:
    - self
    - name
    - old_ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1954
    functionName: dulwich.refs.NamespacedRefsContainer.remove_if_equals
    functionSourceFile: dulwich.refs
    functionUses: 0
    functionsReached:
    - dulwich.refs.NamespacedRefsContainer._apply_namespace
    - typing.NewType
    - name.startswith
    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 0x7febaf2a6160>
    argNames:
    - self
    - all
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1973
    functionName: dulwich.refs.NamespacedRefsContainer.pack_refs
    functionSourceFile: dulwich.refs
    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:
    - refs
    - prefixes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1982
    functionName: dulwich.refs.filter_ref_prefix
    functionSourceFile: dulwich.refs
    functionUses: 11
    functionsReached:
    - k.startswith
    - refs.items
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: k.startswith
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.repo
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - identity
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 180
    functionName: dulwich.repo.InvalidUserIdentity.__init__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 190
    functionName: dulwich.repo._get_default_identity
    functionSourceFile: dulwich.repo
    functionUses: 20
    functionsReached:
    - socket.gethostname
    - <builtin>.getattr
    - entry.pw_gecos.split
    - os.environ.get
    - os.getuid
    - pwd.getpwuid
    linkageType: pythonLinkage
    raised:
    - DefaultIdentityNotFound
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getuid
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pwd.getpwuid
    functionSourceFile: pwd
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.pw_gecos.split
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.gethostname
    functionSourceFile: socket
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaec17160>
    argNames:
    - config
    - kind
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 228
    functionName: dulwich.repo.get_user_identity
    functionSourceFile: dulwich.repo
    functionUses: 19
    functionsReached:
    - email.endswith
    - backend.get
    - dulwich.repo._get_default_identity
    - default_user.encode
    - <builtin>.getattr
    - socket.gethostname
    - entry.pw_gecos.split
    - os.environ.get
    - pwd.getpwuid
    - os.getuid
    - <builtin>.isinstance
    - default_email.encode
    - user_uc.encode
    - dulwich.config.StackedConfig.get
    - email_uc.encode
    - email.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: user_uc.encode
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email_uc.encode
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: default_user.encode
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: default_email.encode
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.startswith
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.endswith
    functionSourceFile: <builtin>
    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:
    - identity
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 279
    functionName: dulwich.repo.check_user_identity
    functionSourceFile: dulwich.repo
    functionUses: 4
    functionsReached:
    - identity.split
    linkageType: pythonLinkage
    raised:
    - InvalidUserIdentity
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: identity.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - graftpoints
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 297
    functionName: dulwich.repo.parse_graftpoints
    functionSourceFile: dulwich.repo
    functionUses: 286
    functionsReached:
    - <builtin>.len
    - typing.NewType
    - dulwich.objects.check_hexsha
    - line.split
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - hex
    - error_msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 314
    functionName: dulwich.objects.check_hexsha
    functionSourceFile: dulwich.objects
    functionUses: 291
    functionsReached:
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - graftpoints
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 330
    functionName: dulwich.repo.serialize_graftpoints
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - graftpoints.items
    - graft_lines.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: graftpoints.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: graft_lines.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 351
    functionName: dulwich.repo._set_filesystem_hidden
    functionSourceFile: dulwich.repo
    functionUses: 5
    functionsReached:
    - ctypes.WINFUNCTYPE
    - <builtin>.isinstance
    - os.fsdecode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.WINFUNCTYPE
    functionSourceFile: ctypes
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 1
    IfCount: 11
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 374
    functionName: dulwich.repo.parse_shared_repository
    functionSourceFile: dulwich.repo
    functionUses: 297
    functionsReached:
    - <builtin>.int
    - value.lower
    - value.startswith
    - value.decode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Dict object at 0x7febaed98190>
    - <ast.List object at 0x7febaed98ee0>
    argNames:
    - self
    - store
    - grafts
    - shallows
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 442
    functionName: dulwich.repo.ParentsProvider.__init__
    functionSourceFile: dulwich.repo
    functionUses: 11
    functionsReached:
    - store.get_commit_graph
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - object_store
    - refs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 501
    functionName: dulwich.repo.BaseRepo.__init__
    functionSourceFile: dulwich.repo
    functionUses: 292
    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: 519
    functionName: dulwich.repo.BaseRepo._determine_file_mode
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 526
    functionName: dulwich.repo.BaseRepo._determine_symlinks
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 13
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadd44400>
    - <ast.Constant object at 0x7febadd449d0>
    - <ast.Constant object at 0x7febadd449a0>
    argNames:
    - self
    - bare
    - symlinks
    - format
    - shared_repository
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 534
    functionName: dulwich.repo.BaseRepo._init_files
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.repo.Repo._put_named_file
    - io.BytesIO.readlines
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftRepo._determine_file_mode
    - os.path.join
    - ret._handle_include_directive
    - os.unlink
    - value.strip
    - dulwich.repo.Repo.get_config
    - <builtin>.range
    - value.decode
    - dulwich.config._escape_value
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.Repo._determine_file_mode
    - io.BytesIO.write
    - dulwich.repo.Repo._determine_symlinks
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.contrib.swift.SwiftRepo._put_named_file
    - setting.strip
    - dulwich.config._is_line_continuation
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - subsection.encode
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - path.lstrip
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - line.startswith
    - <builtin>.int
    - dulwich.repo.MemoryRepo._determine_symlinks
    - <builtin>.str
    - dulwich.repo.parse_shared_repository
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.config.ConfigDict.set
    - os.fdopen
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - io.BytesIO
    - <builtin>.set
    - ret.append
    - dulwich.repo.MemoryRepo._determine_file_mode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - section_dict.set
    - line.endswith
    - dulwich.contrib.swift.SwiftConnector.put_object
    - included_paths.copy
    - io.BytesIO.getvalue
    - f.write
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.repo.MemoryRepo._put_named_file
    - <builtin>.getattr
    - values.items
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - value.replace
    - value.encode
    - value.lower
    - dulwich.file.GitFile
    - <builtin>.hasattr
    - dulwich.repo.Repo._get_shared_repository_permissions
    - os.chmod
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.config._format_string
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - contents
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1644
    functionName: dulwich.repo.Repo._put_named_file
    functionSourceFile: dulwich.repo
    functionUses: 3
    functionsReached:
    - dulwich.repo.parse_shared_repository
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - <builtin>.getattr
    - value.startswith
    - name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - os.fdopen
    - whitespace.append
    - subsection.encode
    - dulwich.config._parse_string
    - os.open
    - dulwich.config._check_variable_name
    - <builtin>.len
    - os.path.join
    - <builtin>.tuple
    - ret._handle_include_directive
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - path.lstrip
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.Repo.get_config
    - value.lower
    - dulwich.file.GitFile
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - value.decode
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.config.ConfigDict._check_section_and_name
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - f.write
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - dulwich.config.ConfigDict.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - contents
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2509
    functionName: dulwich.repo.MemoryRepo._put_named_file
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - filename
    - contents
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1142
    functionName: dulwich.contrib.swift.SwiftRepo._put_named_file
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - io.BytesIO.seek
    - <builtin>.len
    - dulwich.contrib.swift.SwiftConnector.put_object
    - f.write
    - <builtin>.str
    - io.BytesIO
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1135
    functionName: dulwich.contrib.swift.SwiftRepo._determine_file_mode
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2495
    functionName: dulwich.repo.MemoryRepo._determine_file_mode
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1598
    functionName: dulwich.repo.Repo._determine_file_mode
    functionSourceFile: dulwich.repo
    functionUses: 1
    functionsReached:
    - <builtin>.open
    - f.write
    - os.path.join
    - os.unlink
    - os.chmod
    - os.lstat
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2502
    functionName: dulwich.repo.MemoryRepo._determine_symlinks
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1621
    functionName: dulwich.repo.Repo._determine_symlinks
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 577
    functionName: dulwich.repo.BaseRepo.get_named_file
    functionSourceFile: dulwich.repo
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - contents
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 590
    functionName: dulwich.repo.BaseRepo._put_named_file
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 599
    functionName: dulwich.repo.BaseRepo._del_named_file
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 603
    functionName: dulwich.repo.BaseRepo.open_index
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae44deb0>
    - <ast.Constant object at 0x7febae44dd30>
    - <ast.Constant object at 0x7febae44de80>
    argNames:
    - self
    - target
    - determine_wants
    - progress
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 612
    functionName: dulwich.repo.BaseRepo.fetch
    functionSourceFile: dulwich.repo
    functionUses: 1
    functionsReached:
    - typing.Protocol.as_dict
    - new_packs.append
    - queue.pop
    - dulwich.protocol.symref_capabilities
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - remaining.remove
    - dulwich.reftable.ReftableReader.all_refs
    - difflib.SequenceMatcher
    - data.find
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.server.UploadPackHandler.capabilities
    - symrefs.items
    - dulwich.protocol.capability_symref
    - dulwich.commit_graph.read_commit_graph
    - wants.extend
    - dulwich.reftable.RefRecord.__init__
    - binascii.hexlify
    - io.BytesIO.read
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.object_store.<lambda2>
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - int.from_bytes
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs.is_per_worktree_ref
    - cap.startswith
    - pack_bitmap.get_bitmap
    - parents.get
    - commits.add
    - dulwich.refs._split_ref_line
    - pack_bitmap.has_commit
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.objects.hex_to_sha
    - json.loads
    - magic.append
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.objects.Blob.from_path
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.pack.generate_unpacked_objects
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - <builtin>.setattr
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server.PackHandler.set_client_capabilities
    - dulwich.object_store.MissingObjectFinder.get_remote_has
    - dulwich.reftable.ReftableReader._process_ref_block
    - want_others.difference
    - o.as_raw_chunks
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.range
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.object_store.find_shallow.get_parents
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - kset.add
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - logger.info
    - dulwich.protocol.ack_type
    - name.endswith
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - todo.extend
    - value.hex
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.object_store.MissingObjectFinder.__init__
    - queue.extend
    - graph._read_from_file
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - refs.keys
    - table_data.sort
    - name.startswith
    - logging.warning
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - stat.S_IFMT
    - all_refs.pop
    - dulwich.server.PackHandler.innocuous_capabilities
    - dulwich._pack.create_delta
    - _TYPE_MAP.get
    - shallow.add
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - <builtin>.sum
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - dulwich.objects.Tree.from_path
    - store.get_commit_graph
    - <builtin>.open
    - heads.values
    - dulwich.server._split_proto_line
    - dulwich.refs.RefsContainer.allkeys
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.frozenset
    - refname.startswith
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - <builtin>.memoryview
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - refs.items
    - typing.Protocol.get_peeled
    - target.object_store.add_pack_data
    - dulwich.repo.BaseRepo.find_missing_objects
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - line.startswith
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - <builtin>.int
    - dulwich.objects.Commit.from_path
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.contrib.swift.SwiftPack.__init__
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - alt.close
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - io.BytesIO.tell
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - <builtin>.str
    - dulwich.protocol.format_capability_line
    - filetree.iteritems
    - container.iter_unpacked_subset
    - <builtin>.iter
    - os.fsencode
    - pack_index.iterentries
    - collections.deque
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - <builtin>.next
    - ref.decode
    - search_paths.append
    - dulwich.pack.find_reusable_deltas
    - dulwich.reftable.ReftableReader.__init__
    - stat.S_ISDIR
    - dulwich.protocol.extract_want_line_capabilities
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - os.fdopen
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - target.get_graph_walker
    - dulwich.objects.Tag.from_path
    - commit_graph.get_parents
    - todo.append
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - text.rstrip
    - <builtin>.super
    - want_tags.difference
    - dulwich.file._GitFile.__init__
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - not_shallow.add
    - dulwich.protocol.format_unshallow_line
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - todo.remove
    - obj.raw_length
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - refname.endswith
    - result.add
    - files.append
    - dulwich.objects.object_class
    - bases.add
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - ret.append
    - typing.cast.decode
    - dulwich.repo.BaseRepo.get_peeled
    - dulwich.pack._delta_encode_size
    - f.read
    - want_revs.append
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - pack.index.iterentries
    - ret.read
    - all_refs.items
    - dulwich.object_store._split_commits_and_tags
    - magic.sort
    - dulwich.pack._create_delta_py
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.refs.read_packed_refs
    - others.add
    - dulwich.server.UploadPackHandler.handle.wants_wrapper
    - typing.cast
    - typing.NewType
    - dulwich.object_store.peel_sha
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.protocol.agent_string
    - typing.cast.encode
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - todo.pop
    - dulwich.refs.RefsContainer.get_symrefs
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - key.startswith
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - scratch.append
    - heads.items
    - <builtin>.dict
    - sha.decode
    - io.BytesIO.seek
    - e.decode
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - pack_files.add
    - dulwich.server.PackHandler.has_capability
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - <builtin>.hasattr
    - dulwich.object_store._collect_filetree_revs
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.protocol.capability_agent
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - <builtin>.bytes
    - <builtin>.bytearray
    - possible_bases.appendleft
    - dulwich.repo.BaseRepo.fetch_pack_data
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - graph_walker.shallow.update
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - repo.get_peeled
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.bitmap.find_commit_bitmaps
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - p.iterobjects_subset
    - dulwich.object_store.BitmapReachability.__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: target.get_graph_walker
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - determine_wants
    - graph_walker
    - progress
    - get_tagged
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 641
    functionName: dulwich.repo.BaseRepo.fetch_pack_data
    functionSourceFile: dulwich.repo
    functionUses: 2
    functionsReached:
    - typing.Protocol.as_dict
    - new_packs.append
    - queue.pop
    - dulwich.protocol.symref_capabilities
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - remaining.remove
    - dulwich.reftable.ReftableReader.all_refs
    - difflib.SequenceMatcher
    - data.find
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.server.UploadPackHandler.capabilities
    - symrefs.items
    - dulwich.protocol.capability_symref
    - dulwich.commit_graph.read_commit_graph
    - wants.extend
    - dulwich.reftable.RefRecord.__init__
    - binascii.hexlify
    - io.BytesIO.read
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.object_store.<lambda2>
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - int.from_bytes
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs.is_per_worktree_ref
    - cap.startswith
    - pack_bitmap.get_bitmap
    - parents.get
    - commits.add
    - dulwich.refs._split_ref_line
    - pack_bitmap.has_commit
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.objects.hex_to_sha
    - json.loads
    - magic.append
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.objects.Blob.from_path
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.pack.generate_unpacked_objects
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - <builtin>.setattr
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server.PackHandler.set_client_capabilities
    - dulwich.object_store.MissingObjectFinder.get_remote_has
    - dulwich.reftable.ReftableReader._process_ref_block
    - want_others.difference
    - o.as_raw_chunks
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.range
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.object_store.find_shallow.get_parents
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.pack._encode_copy_operation
    - possible_bases.pop
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - kset.add
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - logger.info
    - dulwich.protocol.ack_type
    - name.endswith
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - todo.extend
    - value.hex
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.object_store.MissingObjectFinder.__init__
    - queue.extend
    - graph._read_from_file
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - refs.keys
    - table_data.sort
    - name.startswith
    - logging.warning
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - stat.S_IFMT
    - all_refs.pop
    - dulwich.server.PackHandler.innocuous_capabilities
    - dulwich._pack.create_delta
    - _TYPE_MAP.get
    - shallow.add
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - <builtin>.sum
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - dulwich.objects.Tree.from_path
    - store.get_commit_graph
    - <builtin>.open
    - heads.values
    - dulwich.server._split_proto_line
    - dulwich.refs.RefsContainer.allkeys
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.frozenset
    - refname.startswith
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - <builtin>.memoryview
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - refs.items
    - typing.Protocol.get_peeled
    - dulwich.repo.BaseRepo.find_missing_objects
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - line.startswith
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - <builtin>.int
    - dulwich.objects.Commit.from_path
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.contrib.swift.SwiftPack.__init__
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - alt.close
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - io.BytesIO.tell
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - <builtin>.str
    - dulwich.protocol.format_capability_line
    - filetree.iteritems
    - container.iter_unpacked_subset
    - <builtin>.iter
    - os.fsencode
    - pack_index.iterentries
    - collections.deque
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - <builtin>.next
    - ref.decode
    - search_paths.append
    - dulwich.pack.find_reusable_deltas
    - dulwich.reftable.ReftableReader.__init__
    - stat.S_ISDIR
    - dulwich.protocol.extract_want_line_capabilities
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - os.fdopen
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - todo.append
    - commit_graph.get_parents
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - text.rstrip
    - <builtin>.super
    - want_tags.difference
    - dulwich.file._GitFile.__init__
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - not_shallow.add
    - dulwich.protocol.format_unshallow_line
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - todo.remove
    - obj.raw_length
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - refname.endswith
    - result.add
    - files.append
    - dulwich.objects.object_class
    - bases.add
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - ret.append
    - typing.cast.decode
    - dulwich.repo.BaseRepo.get_peeled
    - dulwich.pack._delta_encode_size
    - f.read
    - want_revs.append
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - pack.index.iterentries
    - ret.read
    - all_refs.items
    - dulwich.object_store._split_commits_and_tags
    - magic.sort
    - dulwich.pack._create_delta_py
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.refs.read_packed_refs
    - others.add
    - dulwich.server.UploadPackHandler.handle.wants_wrapper
    - typing.cast
    - typing.NewType
    - dulwich.object_store.peel_sha
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.protocol.agent_string
    - typing.cast.encode
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - todo.pop
    - dulwich.refs.RefsContainer.get_symrefs
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - key.startswith
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - scratch.append
    - heads.items
    - <builtin>.dict
    - sha.decode
    - io.BytesIO.seek
    - e.decode
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - pack_files.add
    - dulwich.server.PackHandler.has_capability
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - <builtin>.hasattr
    - dulwich.object_store._collect_filetree_revs
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.protocol.capability_agent
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - <builtin>.bytes
    - <builtin>.bytearray
    - possible_bases.appendleft
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - graph_walker.shallow.update
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - repo.get_peeled
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.bitmap.find_commit_bitmaps
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - p.iterobjects_subset
    - dulwich.object_store.BitmapReachability.__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: target.object_store.add_pack_data
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 841
    functionName: dulwich.repo.BaseRepo.get_refs
    functionSourceFile: dulwich.repo
    functionUses: 15
    functionsReached:
    - typing.Protocol.as_dict
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs._split_ref_line
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - os.fsencode
    - <builtin>.iter
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 5
    IfCount: 8
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - determine_wants
    - graph_walker
    - progress
    - get_tagged
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 676
    functionName: dulwich.repo.BaseRepo.find_missing_objects
    functionSourceFile: dulwich.repo
    functionUses: 6
    functionsReached:
    - typing.Protocol.as_dict
    - queue.pop
    - dulwich.protocol.symref_capabilities
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - remaining.remove
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.server.UploadPackHandler.capabilities
    - symrefs.items
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - wants.extend
    - io.BytesIO.read
    - dulwich.commit_graph.read_commit_graph
    - binascii.hexlify
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - dulwich.object_store.<lambda2>
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - pack_bitmap.get_bitmap
    - dulwich.refs.RefsContainer.keys
    - cap.startswith
    - dulwich.refs._split_ref_line
    - commits.add
    - parents.get
    - pack_bitmap.has_commit
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.repo.ParentsProvider.get_parents
    - dulwich.objects.hex_to_sha
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - directory.replace
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.protocol.agent_string
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - <builtin>.setattr
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server.PackHandler.set_client_capabilities
    - dulwich.reftable.ReftableReader._process_ref_block
    - want_others.difference
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - <builtin>.sorted
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.object_store.find_shallow.get_parents
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - kset.add
    - base.rstrip
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - logger.info
    - dulwich.protocol.ack_type
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - todo.extend
    - value.hex
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.object_store.MissingObjectFinder.__init__
    - queue.extend
    - refs.keys
    - graph._read_from_file
    - table_data.sort
    - logging.warning
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - stat.S_IFMT
    - all_refs.pop
    - dulwich.server.PackHandler.innocuous_capabilities
    - _TYPE_MAP.get
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - shallow.add
    - <builtin>.list
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - store.get_commit_graph
    - heads.values
    - dulwich.server._split_proto_line
    - dulwich.refs.RefsContainer.allkeys
    - <builtin>.open
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - <builtin>.frozenset
    - refname.startswith
    - <builtin>.ord
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - refs.items
    - typing.Protocol.get_peeled
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - line.startswith
    - <builtin>.int
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - <builtin>.str
    - io.BytesIO.tell
    - dulwich.protocol.format_capability_line
    - filetree.iteritems
    - <builtin>.iter
    - os.fsencode
    - pack_index.iterentries
    - <builtin>.next
    - ref.decode
    - search_paths.append
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.protocol.extract_want_line_capabilities
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - os.fdopen
    - todo.append
    - commit_graph.get_parents
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - text.rstrip
    - want_tags.difference
    - dulwich.file._GitFile.__init__
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - not_shallow.add
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.protocol.format_unshallow_line
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - dulwich.objects.object_class
    - bases.add
    - f.read
    - dulwich.repo.BaseRepo.get_peeled
    - want_revs.append
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - pack.index.iterentries
    - <builtin>.isinstance
    - all_refs.items
    - dulwich.object_store._split_commits_and_tags
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.refs.read_packed_refs
    - others.add
    - dulwich.server.UploadPackHandler.handle.wants_wrapper
    - typing.NewType
    - dulwich.object_store.peel_sha
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.refs.RefsContainer.get_symrefs
    - todo.pop
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - key.startswith
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - heads.items
    - sha.decode
    - io.BytesIO.seek
    - os.open
    - e.decode
    - struct.unpack
    - line.decode
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.server.PackHandler.has_capability
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - <builtin>.hasattr
    - dulwich.object_store._collect_filetree_revs
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.protocol.capability_agent
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - <builtin>.bytes
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - graph_walker.shallow.update
    - tags.add
    - dulwich.bitmap.find_commit_bitmaps
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - repo.get_peeled
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.object_store.BitmapReachability.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_refs.items
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1b2550>
    argNames:
    - refs
    - depth
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 548
    functionName: dulwich.server.UploadPackHandler.handle.wants_wrapper
    functionSourceFile: dulwich.server
    functionUses: 7
    functionsReached:
    - dulwich.protocol.symref_capabilities
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.protocol.capability_symref
    - symrefs.items
    - dulwich.reftable.RefRecord.__init__
    - wants.extend
    - io.BytesIO.read
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - cap.startswith
    - dulwich.refs._split_ref_line
    - parents.get
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - directory.replace
    - dulwich.protocol.agent_string
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - dulwich.server.PackHandler.set_client_capabilities
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - <builtin>.sorted
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.object_store.find_shallow.get_parents
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - base.rstrip
    - <builtin>.map
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - logger.info
    - dulwich.protocol.ack_type
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - todo.extend
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - dulwich.server.PackHandler.innocuous_capabilities
    - _TYPE_MAP.get
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - shallow.add
    - <builtin>.list
    - dulwich.protocol.format_shallow_line
    - heads.values
    - <builtin>.open
    - dulwich.object_store.find_shallow
    - dulwich.server._split_proto_line
    - dulwich.refs.RefsContainer.allkeys
    - store.get_commit_graph
    - refname.startswith
    - <builtin>.ord
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - refs.items
    - typing.Protocol.get_peeled
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - line.startswith
    - <builtin>.int
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.protocol.format_capability_line
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.protocol.extract_want_line_capabilities
    - block.refs.append
    - os.fdopen
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - todo.append
    - commit_graph.get_parents
    - dulwich.reftable._decode_reftable_suffix_and_type
    - text.rstrip
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.protocol.format_unshallow_line
    - not_shallow.add
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - dulwich.objects.object_class
    - dulwich.repo.BaseRepo.get_peeled
    - f.read
    - want_revs.append
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.object_store.peel_sha
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.refs.RefsContainer.get_symrefs
    - todo.pop
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - heads.items
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: graph_walker.shallow.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: <builtin>.setattr
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - new_shallow
    - unshallow
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 946
    functionName: dulwich.server._ProtocolGraphWalker.update_shallow
    functionSourceFile: dulwich.server
    functionUses: 10
    functionsReached:
    - dulwich.protocol.format_unshallow_line
    - dulwich.protocol.format_shallow_line
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - have
    - want
    - shallow
    - progress
    - ofs_delta
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 787
    functionName: dulwich.repo.BaseRepo.generate_pack_data
    functionSourceFile: dulwich.repo
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - line.strip
    - io.BytesIO
    - dulwich.repo.Repo.get_named_file
    - dulwich.repo.BaseRepo.generate_pack_data
    - os.path.join
    - dulwich.repo.Repo.controldir
    - typing.NewType
    - dulwich.repo.BaseRepo.get_named_file
    - path.lstrip
    - <builtin>.isinstance
    - dulwich.repo.BaseRepo.get_shallow
    - path.decode
    - <builtin>.set
    - dulwich.repo.MemoryRepo.get_named_file
    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: 979
    functionName: dulwich.repo.BaseRepo.get_shallow
    functionSourceFile: dulwich.repo
    functionUses: 9
    functionsReached:
    - <builtin>.open
    - line.strip
    - io.BytesIO
    - dulwich.repo.Repo.get_named_file
    - os.path.join
    - dulwich.repo.Repo.controldir
    - typing.NewType
    - dulwich.repo.BaseRepo.get_named_file
    - path.lstrip
    - <builtin>.isinstance
    - path.decode
    - <builtin>.set
    - dulwich.repo.MemoryRepo.get_named_file
    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 0x7febaf905f70>
    argNames:
    - self
    - heads
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 815
    functionName: dulwich.repo.BaseRepo.get_graph_walker
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - typing.Protocol.as_dict
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs._split_ref_line
    - dulwich.repo.BaseRepo.get_shallow
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - os.fspath
    - path.decode
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - path.lstrip
    - dulwich.repo.Repo.get_named_file
    - store.get_commit_graph
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - line.startswith
    - io.BytesIO.tell
    - <builtin>.iter
    - os.fsencode
    - line.strip
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - dulwich.repo.MemoryRepo.get_named_file
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._iter_dir
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.object_store.ObjectStoreGraphWalker.__init__
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.Protocol.as_dict
    functionSourceFile: typing
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 848
    functionName: dulwich.repo.BaseRepo.head
    functionSourceFile: dulwich.repo
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sha
    - cls
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 853
    functionName: dulwich.repo.BaseRepo._get_object
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - typing.NewType
    - dulwich.repo.BaseRepo.get_object
    linkageType: pythonLinkage
    raised:
    - NotTagError
    - NotTreeError
    - NotBlobError
    - NotCommitError
    - Exception
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 870
    functionName: dulwich.repo.BaseRepo.get_object
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 881
    functionName: dulwich.repo.BaseRepo.parents_provider
    functionSourceFile: dulwich.repo
    functionUses: 2
    functionsReached:
    - store.get_commit_graph
    - <builtin>.open
    - path.decode
    - line.strip
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.repo.Repo.get_named_file
    - os.path.join
    - dulwich.repo.Repo.controldir
    - typing.NewType
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - path.lstrip
    - dulwich.repo.BaseRepo.get_shallow
    - io.BytesIO
    - <builtin>.set
    - dulwich.repo.MemoryRepo.get_named_file
    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 0x7febaec28250>
    argNames:
    - self
    - sha
    - commit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 893
    functionName: dulwich.repo.BaseRepo.get_parents
    functionSourceFile: dulwich.repo
    functionUses: 1
    functionsReached:
    - store.get_commit_graph
    - <builtin>.open
    - line.strip
    - io.BytesIO
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.repo.BaseRepo.parents_provider
    - dulwich.repo.Repo.get_named_file
    - os.path.join
    - dulwich.repo.Repo.controldir
    - typing.NewType
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - path.lstrip
    - dulwich.repo.BaseRepo.get_shallow
    - path.decode
    - <builtin>.set
    - dulwich.repo.MemoryRepo.get_named_file
    - dulwich.repo.ParentsProvider.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 908
    functionName: dulwich.repo.BaseRepo.get_config
    functionSourceFile: dulwich.repo
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 915
    functionName: dulwich.repo.BaseRepo.get_worktree_config
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 919
    functionName: dulwich.repo.BaseRepo.get_description
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - description
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 927
    functionName: dulwich.repo.BaseRepo.set_description
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 935
    functionName: dulwich.repo.BaseRepo.get_rebase_state_manager
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 942
    functionName: dulwich.repo.BaseRepo.get_blob_normalizer
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaec93700>
    argNames:
    - self
    - tree
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 949
    functionName: dulwich.repo.BaseRepo.get_gitattributes
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 960
    functionName: dulwich.repo.BaseRepo.get_config_stack
    functionSourceFile: dulwich.repo
    functionUses: 13
    functionsReached:
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - backends.append
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - logger.debug
    - paths.append
    - os.environ.get
    - os.path.exists
    - winreg.QueryValueEx
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - os.path.join
    - dulwich.config.get_win_system_paths
    - ret._handle_include_directive
    - <builtin>.super
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - os.path.split
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - ret.extend
    - dulwich.config.get_xdg_config_home_path
    - dulwich.config.StackedConfig.get
    - ret._values.setdefault
    - line.lstrip
    - value.strip
    - dulwich.repo.Repo.get_config
    - value.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.repo.BaseRepo.get_config
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - contextlib.suppress
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - paths.extend
    - <builtin>.isinstance
    - dulwich.config.StackedConfig.default_backends
    - dulwich.repo.Repo.get_worktree_config
    - line.startswith
    - <builtin>.bytes
    - backend.get
    - dulwich.config._find_git_in_win_path
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - platform.machine
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - dulwich.repo.Repo.commondir
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2554
    functionName: dulwich.repo.MemoryRepo.get_config
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1993
    functionName: dulwich.repo.Repo.get_config
    functionSourceFile: dulwich.repo
    functionUses: 307
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - os.path.join
    - ret._handle_include_directive
    - <builtin>.super
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.config.ConfigFile.from_path
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1975
    functionName: dulwich.repo.Repo.get_worktree_config
    functionSourceFile: dulwich.repo
    functionUses: 14
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - dulwich.config._check_section_name
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - os.path.join
    - ret._handle_include_directive
    - <builtin>.super
    - <builtin>.set
    - ret.extend
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.config.ConfigFile.from_path
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - dulwich.repo.Repo.commondir
    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 0x7febaf60ffa0>
    argNames:
    - self
    - path
    - basedir
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2524
    functionName: dulwich.repo.MemoryRepo.get_named_file
    functionSourceFile: dulwich.repo
    functionUses: 13
    functionsReached:
    - <builtin>.isinstance
    - path.decode
    - io.BytesIO
    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 0x7febaf54b580>
    argNames:
    - self
    - path
    - basedir
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1672
    functionName: dulwich.repo.Repo.get_named_file
    functionSourceFile: dulwich.repo
    functionUses: 297
    functionsReached:
    - <builtin>.open
    - os.path.join
    - dulwich.repo.Repo.controldir
    - path.lstrip
    - <builtin>.isinstance
    - path.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: line.strip
    functionSourceFile: <builtin>
    functionUses: 84
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - new_shallow
    - new_unshallow
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 990
    functionName: dulwich.repo.BaseRepo.update_shallow
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.repo.Repo._put_named_file
    - io.BytesIO.readlines
    - io.BytesIO.read
    - os.path.join
    - ret._handle_include_directive
    - os.unlink
    - dulwich.repo.BaseRepo.get_shallow
    - value.strip
    - dulwich.repo.Repo.get_config
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.contrib.swift.SwiftRepo._put_named_file
    - setting.strip
    - dulwich.config._is_line_continuation
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - subsection.encode
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - path.lstrip
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - line.startswith
    - <builtin>.int
    - <builtin>.str
    - dulwich.repo.parse_shared_repository
    - line.strip
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.repo.MemoryRepo.get_named_file
    - os.fdopen
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - io.BytesIO
    - <builtin>.set
    - dulwich.repo.MemoryRepo._del_named_file
    - ret.append
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - dulwich.contrib.swift.SwiftConnector.put_object
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.repo.Repo._del_named_file
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - shallow.difference_update
    - dulwich.repo.MemoryRepo._put_named_file
    - <builtin>.getattr
    - shallow.update
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - ret.extend
    - ret._values.setdefault
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.Repo._get_shared_repository_permissions
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shallow.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shallow.difference_update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1666
    functionName: dulwich.repo.Repo._del_named_file
    functionSourceFile: dulwich.repo
    functionUses: 3
    functionsReached:
    - dulwich.repo.Repo.controldir
    - os.unlink
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2518
    functionName: dulwich.repo.MemoryRepo._del_named_file
    functionSourceFile: ''
    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
    - ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1009
    functionName: dulwich.repo.BaseRepo.get_peeled
    functionSourceFile: dulwich.repo
    functionUses: 9
    functionsReached:
    - <builtin>.iter
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - <builtin>.next
    - dulwich.reftable.ReftableReader.all_refs
    - <builtin>.getattr
    - os.path.exists
    - dulwich.reftable.RefBlock.decode
    - dulwich.reftable.RefRecord.decode
    - value.hex
    - refs.get
    - dulwich.reftable.ReftableReader.__init__
    - data.find
    - os.fspath
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - os.fdopen
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.RefBlock._find_ref_data_end
    - os.open
    - dulwich.reftable.ReftableReader._read_blocks
    - binascii.unhexlify
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - <builtin>.len
    - os.path.join
    - struct.unpack
    - dulwich.file._GitFile.__init__
    - dulwich.reftable._decode_reftable_suffix_and_type
    - _TYPE_MAP.get
    - dulwich.file._GitFile.seek
    - line.rstrip
    - dulwich.refs._split_ref_line
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - refname.endswith
    - refname.startswith
    - dulwich.objects.object_class
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - files.append
    - dulwich.file.GitFile
    - <builtin>.ord
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - typing.Protocol.get_peeled
    - <builtin>.isinstance
    - dulwich.refs.DiskRefsContainer.get_peeled
    - line.startswith
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.read_packed_refs
    - io.BytesIO.tell
    - dulwich.object_store.peel_sha
    - typing.NewType
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    - first_line.startswith
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.Protocol.get_peeled
    functionSourceFile: typing
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1070
    functionName: dulwich.reftable.ReftableRefsContainer.get_peeled
    functionSourceFile: dulwich.reftable
    functionUses: 13
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - struct.unpack
    - os.path.join
    - <builtin>.len
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - files.append
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - typing.NewType
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1024
    functionName: dulwich.repo.BaseRepo.notes
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.notes.Notes.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - object_store
    - refs_container
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 611
    functionName: dulwich.notes.Notes.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febaef6ef10>
    - <ast.Constant object at 0x7febaef6e9a0>
    - <ast.Constant object at 0x7febaef6e070>
    - <ast.Constant object at 0x7febaef6ee20>
    - <ast.Constant object at 0x7febaef6eac0>
    - <ast.Constant object at 0x7febaef6ea00>
    - <ast.Constant object at 0x7febaf8e0d60>
    - <ast.Constant object at 0x7febaf8e0b80>
    - <ast.Constant object at 0x7febaf8e0190>
    - <ast.Constant object at 0x7febaf8e0d90>
    - <ast.Constant object at 0x7febaf8e07f0>
    argNames:
    - self
    - include
    - exclude
    - order
    - reverse
    - max_entries
    - paths
    - rename_detector
    - follow
    - since
    - until
    - queue_cls
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1034
    functionName: dulwich.repo.BaseRepo.get_walker
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - collections.deque
    - dulwich.walk._CommitTimeQueue.__init__
    - dulwich.repo.BaseRepo.head
    - dulwich.walk.Walker.__init__
    - heapq.heappush
    - itertools.chain
    - dulwich.walk._CommitTimeQueue._push
    - dulwich.diff_tree.RenameDetector.__init__
    - <builtin>.isinstance
    - <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: 5
    functionLinenumber: -1
    functionName: dulwich.repo.BaseRepo.get_walker.<lambda1>
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - line.strip
    - path.decode
    - dulwich.repo.MemoryRepo.get_named_file
    - dulwich.repo.BaseRepo.parents_provider
    - os.path.join
    - path.lstrip
    - dulwich.repo.BaseRepo.get_shallow
    - io.BytesIO
    - dulwich.repo.Repo.get_named_file
    - <builtin>.set
    - dulwich.repo.ParentsProvider.get_parents
    - store.get_commit_graph
    - <builtin>.open
    - dulwich.repo.BaseRepo.get_parents
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.repo.Repo.controldir
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7febaf395f10>
    - <ast.Constant object at 0x7febaf395160>
    - <ast.Constant object at 0x7febaf395d60>
    - <ast.Constant object at 0x7febaf395fd0>
    - <ast.Constant object at 0x7febaf395880>
    - <ast.Constant object at 0x7febaf3954f0>
    - <ast.Constant object at 0x7febaf395c40>
    - <ast.Constant object at 0x7febaf395700>
    - <ast.Constant object at 0x7febaf3959d0>
    - <ast.Lambda object at 0x7febaf395f70>
    - <ast.Name object at 0x7febaf3955b0>
    argNames:
    - self
    - store
    - include
    - exclude
    - order
    - reverse
    - max_entries
    - paths
    - rename_detector
    - follow
    - since
    - until
    - get_parents
    - queue_cls
    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: 3
    functionLinenumber: 282
    functionName: dulwich.walk.Walker.__init__
    functionSourceFile: dulwich.walk
    functionUses: 5
    functionsReached:
    - collections.deque
    - dulwich.walk._CommitTimeQueue.__init__
    - heapq.heappush
    - itertools.chain
    - dulwich.walk._CommitTimeQueue._push
    - <builtin>.isinstance
    - dulwich.diff_tree.RenameDetector.__init__
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1095
    functionName: dulwich.repo.BaseRepo.__getitem__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - typing.NewType
    linkageType: pythonLinkage
    raised:
    - TypeError
    - KeyError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1119
    functionName: dulwich.repo.BaseRepo.__contains__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - binascii.unhexlify
    - <builtin>.len
    - typing.NewType
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1132
    functionName: dulwich.repo.BaseRepo.__setitem__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NewType
    - name.startswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1150
    functionName: dulwich.repo.BaseRepo.__delitem__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - typing.NewType
    - name.startswith
    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 0x7febaedcf610>
    argNames:
    - self
    - config
    - kind
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1161
    functionName: dulwich.repo.BaseRepo._get_user_identity
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - email.endswith
    - backend.get
    - dulwich.repo._get_default_identity
    - default_user.encode
    - <builtin>.getattr
    - socket.gethostname
    - entry.pw_gecos.split
    - os.environ.get
    - pwd.getpwuid
    - os.getuid
    - <builtin>.isinstance
    - default_email.encode
    - warnings.warn
    - user_uc.encode
    - dulwich.repo.get_user_identity
    - dulwich.config.StackedConfig.get
    - email_uc.encode
    - email.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - updated_graftpoints
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1171
    functionName: dulwich.repo.BaseRepo._add_graftpoints
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.objects.check_hexsha
    - updated_graftpoints.items
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: updated_graftpoints.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7febadc32280>
    argNames:
    - self
    - to_remove
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1186
    functionName: dulwich.repo.BaseRepo._remove_graftpoints
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1195
    functionName: dulwich.repo.BaseRepo._read_heads
    functionSourceFile: dulwich.repo
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - line.strip
    - io.BytesIO
    - io.BytesIO.readlines
    - os.path.join
    - dulwich.repo.Repo.controldir
    - typing.NewType
    - dulwich.repo.BaseRepo.get_named_file
    - path.lstrip
    - <builtin>.isinstance
    - path.decode
    - dulwich.repo.Repo.get_named_file
    - dulwich.repo.MemoryRepo.get_named_file
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1202
    functionName: dulwich.repo.BaseRepo.get_worktree
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.repo.BaseRepo
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - replace_me
    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 0x7febadd3bb80>
    - <ast.Constant object at 0x7febadd3b730>
    - <ast.Constant object at 0x7febadd3ba60>
    - <ast.Constant object at 0x7febadd3b2e0>
    - <ast.Constant object at 0x7febadd3bcd0>
    - <ast.Constant object at 0x7febadd3bbb0>
    - <ast.Constant object at 0x7febadd3ba90>
    - <ast.Constant object at 0x7febadd3b670>
    - <ast.Constant object at 0x7febadd3beb0>
    - <ast.Name object at 0x7febadd3b3d0>
    - <ast.Constant object at 0x7febadd3bbe0>
    - <ast.Constant object at 0x7febadd3b190>
    - <ast.Constant object at 0x7febadd3b160>
    argNames:
    - self
    - message
    - committer
    - author
    - commit_timestamp
    - commit_timezone
    - author_timestamp
    - author_timezone
    - tree
    - encoding
    - ref
    - merge_heads
    - no_verify
    - sign
    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: 11
    functionLinenumber: 1216
    functionName: dulwich.repo.BaseRepo.do_commit
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - hashlib.sha1.update
    - data.find
    - packed_refs.get
    - dulwich.objects.format_time_entry
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - os.getuid
    - dulwich.reftable._decode_ref_value
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - default_user.encode
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.pack.SHA1Reader.check_sha
    - platform.machine
    - dulwich.reftable.RefBlock._find_ref_data_end
    - gc.maybe_auto_gc
    - logger.debug
    - dulwich.reftable.ReftableWriter.__init__
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - c.sign
    - path.lstrip
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - os.listdir
    - dulwich.trailers.add_trailer_to_message
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.add_if_new
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - block.refs.append
    - dulwich.refs.DiskRefsContainer.add_if_new
    - dulwich.repo.MemoryRepo.get_named_file
    - dulwich.trailers.Trailer.__init__
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - dulwich.file._GitFile.seek
    - email.endswith
    - ret.append
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - included_paths.copy
    - line.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - dulwich.pack.SHA1Reader.seek
    - dulwich.config.ConfigDict.get
    - dulwich.repo.get_user_identity
    - keyid_bytes.decode
    - dulwich.worktree.WorkTree.commit
    - ctx.sign
    - io.BytesIO.seek
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - dulwich.pack.SHA1Reader.read
    - hashlib.sha1.digest
    - dulwich.repo.BaseRepo.get_config_stack
    - value.lower
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.objects.Tag._serialize
    - entries.items
    - dulwich.trailers.format_trailers
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - backends.append
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - ret._handle_include_directive
    - dulwich.refs._split_ref_line
    - os.close
    - dulwich.objects.hex_to_sha
    - dulwich.refs.RefsContainer._check_refname
    - dulwich.index.SerializedIndexEntry.stage
    - value.decode
    - os.path.abspath
    - dulwich.repo.Repo.open_index
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.StackedConfig.default_backends
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.index.Index.clear
    - stripped.split
    - dulwich.objects.valid_hexsha
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.index.commit_tree.add_tree
    - os.environ.get
    - dulwich.index.Index.update
    - os.replace
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.objects.ShaFile.as_raw_string
    - refname.startswith
    - dulwich.index.commit_tree
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - <builtin>.str
    - dulwich.index.read_cache_entry
    - dulwich.index.Index.__iter__
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - os.fsencode
    - line.strip
    - c.get_key
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.repo._get_default_identity
    - path.rsplit
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - object_store.add_object
    - dulwich.pack.SHA1Reader.__init__
    - os.path.split
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - dulwich.index.UntrackedExtension.from_bytes
    - dulwich.trailers._parse_trailer_lines
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - stat.S_ISLNK
    - dulwich.repo.check_user_identity
    - f.write
    - typing.NewType
    - dulwich.repo.Repo._del_named_file
    - dulwich.config._strip_comments
    - message_lines.pop
    - <builtin>.getattr
    - refs.get
    - dulwich.index.Index.commit
    - whitespace.append
    - dulwich.objects.Tree._serialize
    - stripped.lstrip
    - dulwich.objects.Commit.sign
    - user_uc.encode
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.index.commit_tree.build_tree
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer.follow
    - result_message.endswith
    - ref.encode
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - ret.setdefault
    - int.from_bytes
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.refs.is_per_worktree_ref
    - dulwich.worktree.WorkTree.__init__
    - dulwich.objects.Commit.__init__
    - warnings.warn
    - contents.startswith
    - extensions.append
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.Repo.get_worktree_config
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - mergetag.as_raw_string
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - hashlib.sha1
    - gpg.Context
    - value.startswith
    - os.remove
    - dulwich.config.StackedConfig.__init__
    - dulwich.config._check_section_name
    - path.decode
    - <builtin>.callable
    - dulwich.objects.Tree.__init__
    - ref_offsets.append
    - all_refs.pop
    - entry.pw_gecos.split
    - message.encode
    - dulwich.reftable.ReftableWriter.delete_ref
    - line.lstrip
    - os.path.dirname
    - dulwich.repo.BaseRepo._read_heads
    - dulwich.repo.BaseRepo.get_config
    - dulwich.objects.serialize_tree
    - refs.items
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.Index.iterobjects
    - refnames.append
    - dulwich.config._parse_section_header_line
    - dulwich.reftable.ReftableReader.__init__
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - f.abort
    - ref_files.append
    - default_email.encode
    - io.BytesIO
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - identity.split
    - refname.endswith
    - message_without_trailers.endswith
    - files.append
    - f.read
    - text.splitlines
    - updated_trailers.append
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - random.randint
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - headers.extend
    - dulwich.config._parse_string
    - headers.append
    - dulwich.objects.Tree.add
    - ret.extend
    - dulwich.reftable.decode_varint_from_stream
    - pwd.getpwuid
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - dulwich.objects.Commit._serialize
    - email_uc.encode
    - dulwich.objects.Blob._serialize
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.file._GitFile.read
    - dulwich.refs.RefsContainer.follow
    - dulwich.index.IndexEntry.from_serialized
    - time.time
    - c.isspace
    - dulwich.reftable.RefRecord.__init__
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - socket.gethostname
    - os.path.join
    - os.unlink
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.file.ensure_dir_exists
    - dulwich.config.ConfigFile.from_path
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - dulwich.objects.ShaFile._serialize
    - dulwich.config._find_git_in_win_path
    - dulwich.reftable.RefBlock.add_ref
    - result.append
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - message.decode
    - os.path.expanduser
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - paths.append
    - ref_files.sort
    - dulwich.index.ResolveUndoExtension.__init__
    - table_data.sort
    - dulwich.file._GitFile.close
    - name.startswith
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.index.pathsplit
    - value.endswith
    - <builtin>.ord
    - dulwich.trailers._is_trailer_block
    - <builtin>.int
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - io.BytesIO.tell
    - <builtin>.all
    - <builtin>.next
    - dulwich.repo.Repo.index_path
    - dulwich.repo.Repo.has_index
    - <builtin>.super
    - <builtin>.max
    - <builtin>.set
    - dulwich.reftable.ReftableWriter._write_final_padding
    - dulwich.reftable.ReftableWriter._write_header
    - message_without_trailers.encode
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - line.endswith
    - io.BytesIO.getvalue
    - dulwich.refs.check_ref_format
    - value.split
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.reftable.RefRecord.decode
    - dulwich.index.Index.read
    - os.open
    - dulwich.objects.git_line
    - line.decode
    - dulwich.index.read_cache_time
    - dulwich.refs.RefsContainer.read_ref
    - winreg.OpenKey
    - line.rstrip
    - ret._values.setdefault
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.repo.Repo.get_worktree
    - zlib.crc32
    - dulwich.trailers.parse_trailers
    - dulwich.index.IndexExtension.from_raw
    - signoff_identity.decode
    - <builtin>.bytearray
    - result.insert
    - <builtin>.enumerate
    - dulwich.index.pathjoin
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1474
    functionName: dulwich.repo.Repo.get_worktree
    functionSourceFile: dulwich.repo
    functionUses: 10
    functionsReached:
    - dulwich.worktree.WorkTree.__init__
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 40
    ICount: 14
    IfCount: 28
    argCount: 15
    argDefaultValues:
    - <ast.Constant object at 0x7febafdc40d0>
    - <ast.Constant object at 0x7febafdc47f0>
    - <ast.Constant object at 0x7febafdc46d0>
    - <ast.Constant object at 0x7febafdc42b0>
    - <ast.Constant object at 0x7febafdc4d30>
    - <ast.Constant object at 0x7febafdc43a0>
    - <ast.Constant object at 0x7febafdc44f0>
    - <ast.Constant object at 0x7febafdc4b50>
    - <ast.Constant object at 0x7febafdc48b0>
    - <ast.Call object at 0x7febafdc4130>
    - <ast.Constant object at 0x7febafdc4820>
    - <ast.Constant object at 0x7febafdc4400>
    - <ast.Constant object at 0x7febafdc4460>
    - <ast.Constant object at 0x7febafdc45b0>
    argNames:
    - self
    - message
    - committer
    - author
    - commit_timestamp
    - commit_timezone
    - author_timestamp
    - author_timezone
    - tree
    - encoding
    - ref
    - merge_heads
    - no_verify
    - sign
    - signoff
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 433
    functionName: dulwich.worktree.WorkTree.commit
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - hashlib.sha1.update
    - data.find
    - packed_refs.get
    - dulwich.objects.format_time_entry
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - os.getuid
    - dulwich.reftable._decode_ref_value
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - default_user.encode
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.pack.SHA1Reader.check_sha
    - platform.machine
    - dulwich.reftable.RefBlock._find_ref_data_end
    - gc.maybe_auto_gc
    - logger.debug
    - dulwich.reftable.ReftableWriter.__init__
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - c.sign
    - path.lstrip
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - os.listdir
    - dulwich.trailers.add_trailer_to_message
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.add_if_new
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - block.refs.append
    - dulwich.refs.DiskRefsContainer.add_if_new
    - dulwich.repo.MemoryRepo.get_named_file
    - dulwich.trailers.Trailer.__init__
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - dulwich.file._GitFile.seek
    - email.endswith
    - ret.append
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - included_paths.copy
    - line.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - dulwich.pack.SHA1Reader.seek
    - dulwich.config.ConfigDict.get
    - dulwich.repo.get_user_identity
    - keyid_bytes.decode
    - ctx.sign
    - io.BytesIO.seek
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - dulwich.pack.SHA1Reader.read
    - hashlib.sha1.digest
    - dulwich.repo.BaseRepo.get_config_stack
    - value.lower
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.objects.Tag._serialize
    - entries.items
    - dulwich.trailers.format_trailers
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - backends.append
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - ret._handle_include_directive
    - dulwich.refs._split_ref_line
    - os.close
    - dulwich.objects.hex_to_sha
    - dulwich.refs.RefsContainer._check_refname
    - dulwich.index.SerializedIndexEntry.stage
    - value.decode
    - dulwich.repo.Repo.open_index
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.StackedConfig.default_backends
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.index.Index.clear
    - stripped.split
    - dulwich.objects.valid_hexsha
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.index.commit_tree.add_tree
    - os.environ.get
    - dulwich.index.Index.update
    - os.replace
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.objects.ShaFile.as_raw_string
    - refname.startswith
    - dulwich.index.commit_tree
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - <builtin>.str
    - dulwich.index.read_cache_entry
    - dulwich.index.Index.__iter__
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - os.fsencode
    - line.strip
    - c.get_key
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.repo._get_default_identity
    - path.rsplit
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - object_store.add_object
    - dulwich.pack.SHA1Reader.__init__
    - os.path.split
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - dulwich.index.UntrackedExtension.from_bytes
    - dulwich.trailers._parse_trailer_lines
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - stat.S_ISLNK
    - dulwich.repo.check_user_identity
    - f.write
    - typing.NewType
    - dulwich.repo.Repo._del_named_file
    - dulwich.config._strip_comments
    - message_lines.pop
    - <builtin>.getattr
    - refs.get
    - dulwich.index.Index.commit
    - whitespace.append
    - dulwich.objects.Tree._serialize
    - stripped.lstrip
    - dulwich.objects.Commit.sign
    - user_uc.encode
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.index.commit_tree.build_tree
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer.follow
    - result_message.endswith
    - ref.encode
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - ret.setdefault
    - int.from_bytes
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.refs.is_per_worktree_ref
    - dulwich.objects.Commit.__init__
    - warnings.warn
    - contents.startswith
    - extensions.append
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.Repo.get_worktree_config
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - mergetag.as_raw_string
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - hashlib.sha1
    - gpg.Context
    - value.startswith
    - os.remove
    - dulwich.config.StackedConfig.__init__
    - dulwich.config._check_section_name
    - path.decode
    - <builtin>.callable
    - dulwich.objects.Tree.__init__
    - ref_offsets.append
    - all_refs.pop
    - entry.pw_gecos.split
    - message.encode
    - dulwich.reftable.ReftableWriter.delete_ref
    - line.lstrip
    - os.path.dirname
    - dulwich.repo.BaseRepo._read_heads
    - dulwich.repo.BaseRepo.get_config
    - dulwich.objects.serialize_tree
    - refs.items
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.Index.iterobjects
    - refnames.append
    - dulwich.config._parse_section_header_line
    - dulwich.reftable.ReftableReader.__init__
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - f.abort
    - ref_files.append
    - default_email.encode
    - io.BytesIO
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - identity.split
    - refname.endswith
    - message_without_trailers.endswith
    - files.append
    - f.read
    - text.splitlines
    - updated_trailers.append
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - random.randint
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - headers.extend
    - dulwich.config._parse_string
    - headers.append
    - dulwich.objects.Tree.add
    - ret.extend
    - dulwich.reftable.decode_varint_from_stream
    - pwd.getpwuid
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - dulwich.objects.Commit._serialize
    - email_uc.encode
    - dulwich.objects.Blob._serialize
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.file._GitFile.read
    - dulwich.refs.RefsContainer.follow
    - dulwich.index.IndexEntry.from_serialized
    - time.time
    - c.isspace
    - dulwich.reftable.RefRecord.__init__
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - socket.gethostname
    - os.path.join
    - os.unlink
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.file.ensure_dir_exists
    - dulwich.config.ConfigFile.from_path
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - dulwich.objects.ShaFile._serialize
    - dulwich.config._find_git_in_win_path
    - dulwich.reftable.RefBlock.add_ref
    - result.append
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - message.decode
    - os.path.expanduser
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - paths.append
    - ref_files.sort
    - dulwich.index.ResolveUndoExtension.__init__
    - table_data.sort
    - dulwich.file._GitFile.close
    - name.startswith
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.index.pathsplit
    - value.endswith
    - <builtin>.ord
    - dulwich.trailers._is_trailer_block
    - <builtin>.int
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - io.BytesIO.tell
    - <builtin>.all
    - <builtin>.next
    - dulwich.repo.Repo.index_path
    - dulwich.repo.Repo.has_index
    - <builtin>.super
    - <builtin>.max
    - <builtin>.set
    - dulwich.reftable.ReftableWriter._write_final_padding
    - dulwich.reftable.ReftableWriter._write_header
    - message_without_trailers.encode
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - line.endswith
    - io.BytesIO.getvalue
    - dulwich.refs.check_ref_format
    - value.split
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.reftable.RefRecord.decode
    - dulwich.index.Index.read
    - os.open
    - dulwich.objects.git_line
    - line.decode
    - dulwich.index.read_cache_time
    - dulwich.refs.RefsContainer.read_ref
    - winreg.OpenKey
    - line.rstrip
    - ret._values.setdefault
    - dulwich.reftable.ReftableWriter.add_ref
    - zlib.crc32
    - dulwich.trailers.parse_trailers
    - dulwich.index.IndexExtension.from_raw
    - signoff_identity.decode
    - <builtin>.bytearray
    - result.insert
    - <builtin>.enumerate
    - dulwich.index.pathjoin
    linkageType: pythonLinkage
    raised:
    - ValueError
    - CommitError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1280
    functionName: dulwich.repo.read_gitfile
    functionSourceFile: dulwich.repo
    functionUses: 286
    functionsReached:
    - cs.startswith
    - <builtin>.len
    - f.read
    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: cs.startswith
    functionSourceFile: <builtin>
    functionUses: 287
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1298
    functionName: dulwich.repo.UnsupportedVersion.__init__
    functionSourceFile: dulwich.repo
    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
    - extension
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1310
    functionName: dulwich.repo.UnsupportedExtension.__init__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 4
    IfCount: 15
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2518b0>
    - <ast.Constant object at 0x7febaf251700>
    argNames:
    - self
    - root
    - object_store
    - bare
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1342
    functionName: dulwich.repo.Repo.__init__
    functionSourceFile: dulwich.repo
    functionUses: 285
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - UnsupportedExtension
    - NotGitRepository
    - UnsupportedVersion
    returnType: N/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: 291
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 339
    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: 1584
    functionName: dulwich.repo.Repo.controldir
    functionSourceFile: ''
    functionUses: 338
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commondir.read
    functionSourceFile: <builtin>
    functionUses: 286
    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: 1588
    functionName: dulwich.repo.Repo.commondir
    functionSourceFile: ''
    functionUses: 301
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 155
    functionName: dulwich.worktree.WorkTreeContainer.__init__
    functionSourceFile: ''
    functionUses: 286
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extension.lower
    functionSourceFile: <builtin>
    functionUses: 286
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2af5b0>
    argNames:
    - self
    - path
    - logger
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 826
    functionName: dulwich.reftable.ReftableRefsContainer.__init__
    functionSourceFile: dulwich.reftable
    functionUses: 286
    functionsReached:
    - <builtin>.open
    - os.makedirs
    - os.path.exists
    - os.path.join
    - os.path.isdir
    - <builtin>.super
    - f.write
    - shutil.rmtree
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.fsdecode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - cwd
    - controldir
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: dulwich.hooks.PreCommitShellHook.__init__
    functionSourceFile: dulwich.hooks
    functionUses: 286
    functionsReached:
    - dulwich.hooks.ShellHook.__init__
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - controldir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: dulwich.hooks.CommitMsgShellHook.__init__
    functionSourceFile: dulwich.hooks
    functionUses: 286
    functionsReached:
    - dulwich.hooks.ShellHook.__init__
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - controldir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 142
    functionName: dulwich.hooks.PostCommitShellHook.__init__
    functionSourceFile: dulwich.hooks
    functionUses: 286
    functionsReached:
    - dulwich.hooks.ShellHook.__init__
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - controldir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 191
    functionName: dulwich.hooks.PostReceiveShellHook.__init__
    functionSourceFile: dulwich.hooks
    functionUses: 286
    functionsReached:
    - dulwich.hooks.ShellHook.__init__
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - repo
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 284
    functionName: dulwich.worktree.WorkTree.__init__
    functionSourceFile: dulwich.worktree
    functionUses: 12
    functionsReached:
    - <builtin>.isinstance
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - ref
    - old_sha
    - new_sha
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1484
    functionName: dulwich.repo.Repo._write_reflog
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - backends.append
    - io.BytesIO.readlines
    - time.time
    - winreg.QueryValueEx
    - dulwich.reflog.format_reflog_line
    - socket.gethostname
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - ret._handle_include_directive
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - value.strip
    - dulwich.config.StackedConfig.get
    - os.getuid
    - dulwich.repo.Repo.get_config
    - default_user.encode
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.repo.Repo.get_worktree_config
    - parts.append
    - dulwich.config._find_git_in_win_path
    - platform.machine
    - os.path.expanduser
    - setting.strip
    - dulwich.repo.Repo._reflog_path
    - dulwich.config._is_line_continuation
    - logger.debug
    - os.path.exists
    - paths.append
    - value.startswith
    - os.environ.get
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.config.StackedConfig.__init__
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - entry.pw_gecos.split
    - parts.reverse
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - email.startswith
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.repo._get_default_identity
    - <builtin>.super
    - default_email.encode
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - email.endswith
    - identity.split
    - ret.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - dulwich.repo.check_user_identity
    - included_paths.copy
    - f.write
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.repo.get_user_identity
    - <builtin>.getattr
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - user_uc.encode
    - ret.extend
    - ret._values.setdefault
    - pwd.getpwuid
    - dulwich.repo.BaseRepo.get_config_stack
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.repo.Repo._get_shared_repository_permissions
    - os.chmod
    - paths.extend
    - email_uc.encode
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1535
    functionName: dulwich.repo.Repo._reflog_path
    functionSourceFile: dulwich.repo
    functionUses: 2
    functionsReached:
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.repo.Repo.controldir
    - os.fsdecode
    - dulwich.repo.Repo.commondir
    - ref.startswith
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1629
    functionName: dulwich.repo.Repo._get_shared_repository_permissions
    functionSourceFile: dulwich.repo
    functionUses: 17
    functionsReached:
    - dulwich.repo.parse_shared_repository
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - value.startswith
    - name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - whitespace.append
    - subsection.encode
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - os.path.join
    - <builtin>.tuple
    - ret._handle_include_directive
    - <builtin>.super
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - dulwich.repo.Repo.get_config
    - value.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.config.ConfigDict._check_section_and_name
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - dulwich.config.ConfigDict.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: parts.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parts.reverse
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues: []
    argNames:
    - old_sha
    - new_sha
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: dulwich.reflog.format_reflog_line
    functionSourceFile: dulwich.reflog
    functionUses: 10
    functionsReached:
    - dulwich.objects.format_timezone
    - <builtin>.int
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1542
    functionName: dulwich.repo.Repo.read_reflog
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - <builtin>.int
    - dulwich.repo.Repo._reflog_path
    - dulwich.reflog.parse_reflog_line
    - rest.rsplit
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.repo.Repo.controldir
    - dulwich.reflog.read_reflog
    - line.rstrip
    - os.fsdecode
    - line.split
    - begin.split
    - <builtin>.abs
    - dulwich.objects.parse_timezone
    - dulwich.repo.Repo.commondir
    - ref.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 142
    functionName: dulwich.reflog.read_reflog
    functionSourceFile: dulwich.reflog
    functionUses: 7
    functionsReached:
    - <builtin>.int
    - dulwich.reflog.parse_reflog_line
    - rest.rsplit
    - line.rstrip
    - <builtin>.abs
    - line.split
    - begin.split
    - dulwich.objects.parse_timezone
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4f27c0>
    argNames:
    - cls
    - start
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1561
    functionName: dulwich.repo.Repo.discover
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - start_str.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - os.path.split
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - NotGitRepository
    returnType: N/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: 99
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: start_str.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: os.lstat
    functionSourceFile: os
    functionUses: 74
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.unlink
    functionSourceFile: os
    functionUses: 70
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.lstrip
    functionSourceFile: <builtin>
    functionUses: 301
    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: 1701
    functionName: dulwich.repo.Repo.index_path
    functionSourceFile: dulwich.repo
    functionUses: 9
    functionsReached:
    - dulwich.repo.Repo.controldir
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1705
    functionName: dulwich.repo.Repo.open_index
    functionSourceFile: dulwich.repo
    functionUses: 6
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - backends.append
    - dulwich.index.IndexEntry.from_serialized
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - hashlib.sha1.update
    - ret.setdefault
    - binascii.hexlify
    - os.fsync
    - dulwich.file._GitFile.tell
    - os.path.join
    - ret._handle_include_directive
    - os.close
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.index.UntrackedExtension.__init__
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index.SerializedIndexEntry.stage
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.repo.Repo.get_worktree_config
    - dulwich.config._find_git_in_win_path
    - dulwich.pack.SHA1Reader.check_sha
    - platform.machine
    - dulwich.index.Index.clear
    - hashlib.sha1
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.index.Index.update
    - os.path.exists
    - value.startswith
    - os.replace
    - os.remove
    - paths.append
    - os.environ.get
    - os.fspath
    - dulwich.config.StackedConfig.__init__
    - dulwich.config._check_section_name
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - dulwich.index.Index.__init__
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.index.ResolveUndoExtension.from_bytes
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.repo.Repo.commondir
    - dulwich.index.read_cache_entry
    - dulwich.repo.parse_shared_repository
    - <builtin>.all
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.objects.sha_to_hex
    - dulwich.repo.Repo.index_path
    - dulwich.repo.Repo.has_index
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - dulwich.index.UntrackedExtension.from_bytes
    - ret.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - line.endswith
    - tempfile.mkstemp
    - included_paths.copy
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - dulwich.index.SparseDirExtension.__init__
    - <builtin>.getattr
    - dulwich.index.Index.read
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.config.get_win_system_paths
    - dulwich.index.read_cache_time
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - dulwich.pack.SHA1Reader.read
    - hashlib.sha1.digest
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.index.IndexExtension.from_raw
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1750
    functionName: dulwich.repo.Repo.has_index
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadf3b790>
    - <ast.Constant object at 0x7febadf3b700>
    - <ast.Constant object at 0x7febadf3bc70>
    argNames:
    - self
    - filename
    - read
    - skip_hash
    - version
    - file_mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1119
    functionName: dulwich.index.Index.__init__
    functionSourceFile: dulwich.index
    functionUses: 21
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - <builtin>.all
    - hashlib.sha1
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.IndexEntry.from_serialized
    - os.path.exists
    - dulwich.index.Index.update
    - <builtin>.getattr
    - os.replace
    - os.remove
    - hashlib.sha1.update
    - dulwich.index.Index.read
    - dulwich.objects.sha_to_hex
    - os.fspath
    - dulwich.index.ResolveUndoExtension.__init__
    - ret.setdefault
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fdopen
    - binascii.hexlify
    - os.fsync
    - dulwich.index.ConflictedIndexEntry.__init__
    - os.open
    - dulwich.index.read_index_dict_with_version
    - dulwich.file._GitFile.tell
    - dulwich.index.read_index_header
    - dulwich.index.SparseDirExtension.__init__
    - <builtin>.len
    - struct.unpack
    - dulwich.index.read_cache_time
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.file._GitFile.seek
    - dulwich.pack.SHA1Reader.read
    - os.close
    - enum.Enum.__init__
    - dulwich.pack.SHA1Reader.__init__
    - dulwich.index.TreeExtension.__init__
    - hashlib.sha1.digest
    - dulwich.index.UntrackedExtension.__init__
    - os.rename
    - <builtin>.open
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.UntrackedExtension.from_bytes
    - dulwich.file.GitFile
    - <builtin>.range
    - dulwich.index.IndexExtension.from_raw
    - <builtin>.isinstance
    - dulwich.index.TreeExtension.from_bytes
    - <builtin>.bytes
    - tempfile.mkstemp
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - entries.items
    - typing.NewType
    - <builtin>.str
    - dulwich.index.Index.clear
    - dulwich.pack.SHA1Reader.seek
    - dulwich.index.read_cache_entry
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.repo.Repo
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - replace_me
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fs_paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1757
    functionName: dulwich.repo.Repo.stage
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - attr.startswith
    - dulwich.index.SparseDirExtension.from_bytes
    - backends.append
    - dulwich.index.IndexEntry.from_serialized
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - hashlib.sha1.update
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.filters.FilterBlobNormalizer.__init__
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - os.fsync
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - os.path.isabs
    - os.path.join
    - dulwich.filters.ProcessFilterDriver.reuse
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.worktree.WorkTree.__init__
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - os.close
    - dulwich.index.write_index
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - value.decode
    - value.this.serialize
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.repo.Repo.open_index
    - dulwich.config._find_git_in_win_reg
    - dulwich.index._fs_to_tree_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.index.cleanup_mode
    - stuff.startswith
    - <builtin>.sorted
    - dulwich.config.StackedConfig.default_backends
    - attributes.get
    - dulwich.repo.Repo.get_worktree_config
    - pattern.startswith
    - ext.to_bytes
    - dulwich.pack.SHA1Writer.tell
    - dulwich.repo.parse_graftpoints
    - dulwich.config._find_git_in_win_path
    - io.BytesIO.write
    - re.escape
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.worktree.WorkTreeContainer.__init__
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - platform.machine
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.filters.FilterContext.refresh_config
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.attrs.parse_git_attributes
    - hashlib.sha1
    - os.path.expanduser
    - logger.debug
    - dulwich.file._GitFile.write
    - dulwich.pack.SHA1Writer.write
    - filter_name.decode
    - paths.append
    - dulwich.index.Index.update
    - value.startswith
    - os.path.exists
    - os.replace
    - os.remove
    - os.environ.get
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - meaningful_extensions.append
    - commondir.read
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - path.decode
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.file._GitFile.close
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - dulwich.index.read_index_dict_with_version
    - dulwich.filters.FilterContext.get_driver
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index.Index.__init__
    - threading.Lock
    - <builtin>.len
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - path.lstrip
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.write_cache_entry
    - fs_path_str.encode
    - <builtin>.open
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - value.endswith
    - <builtin>.ord
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - dulwich.filters.CompositeFilterDriver.clean
    - dulwich.filters.FilterRegistry.register_factory
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.all
    - dulwich.attrs._parse_attr
    - <builtin>.iter
    - line.strip
    - entries_list.append
    - dulwich.filters.FilterRegistry.__init__
    - dulwich.filters.FilterRegistry.get_driver
    - dulwich.config._parse_section_header_line
    - smudge_cmd_raw.decode
    - name.encode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.attrs.Pattern._compile
    - dulwich.repo.Repo.has_index
    - dulwich.repo.Repo.index_path
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.attrs._translate_pattern
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.filters.FilterBlobNormalizer.checkin_normalize
    - cs.startswith
    - dulwich.filters.get_filter_for_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - fs_path_bytes.replace
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.worktree.WorkTree.stage
    - dulwich.filters.FilterContext.__init__
    - dulwich.index.write_index_extension
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - io.BytesIO
    - <builtin>.set
    - subprocess.run
    - dulwich.config.get_xdg_config_home_path
    - setting.strip
    - os.rename
    - value.other.serialize
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - ret.append
    - f.read
    - struct.pack
    - dulwich.repo.BaseRepo.get_object
    - dulwich.repo.Repo.get_blob_normalizer
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.config._is_line_continuation
    - dulwich.pack.SHA1Writer.__init__
    - stat.S_ISLNK
    - dulwich.index.TreeExtension.from_bytes
    - dulwich.index.index_entry_from_directory
    - clean_cmd_raw.decode
    - line.endswith
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - included_paths.copy
    - dulwich.repo.Repo.get_gitattributes
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - f.write
    - typing.NewType
    - line.split
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - os.readlink
    - binascii.unhexlify
    - attr.partition
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.pack.SHA1Reader.seek
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.divmod
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - os.kill
    - dulwich.index.Index.read
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - dulwich.index.read_cache_time
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.Repo.get_worktree
    - re.compile
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.BaseRepo.__init__
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.index.IndexExtension.from_raw
    - dulwich.index.read_submodule_head
    - paths.extend
    - autocrlf_raw.lower
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.any
    - <builtin>.bytearray
    - process_cmd_raw.decode
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fs_paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 299
    functionName: dulwich.worktree.WorkTree.stage
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - attr.startswith
    - dulwich.index.SparseDirExtension.from_bytes
    - backends.append
    - dulwich.index.IndexEntry.from_serialized
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - hashlib.sha1.update
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.filters.FilterBlobNormalizer.__init__
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - os.fsync
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - os.path.isabs
    - os.path.join
    - dulwich.filters.ProcessFilterDriver.reuse
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - os.close
    - dulwich.index.write_index
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - value.decode
    - value.this.serialize
    - dulwich.config.ConfigFile.from_path
    - dulwich.repo.Repo.open_index
    - <builtin>.sorted
    - dulwich.index._fs_to_tree_path
    - dulwich.config.ConfigFile.__init__
    - <builtin>.any
    - stuff.startswith
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.StackedConfig.default_backends
    - attributes.get
    - dulwich.repo.Repo.get_worktree_config
    - ext.to_bytes
    - dulwich.pack.SHA1Writer.tell
    - pattern.startswith
    - io.BytesIO.write
    - dulwich.config._find_git_in_win_path
    - re.escape
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.worktree.WorkTreeContainer.__init__
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - platform.machine
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.filters.FilterContext.refresh_config
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.attrs.parse_git_attributes
    - hashlib.sha1
    - os.path.expanduser
    - logger.debug
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - filter_name.decode
    - os.path.exists
    - dulwich.index.Index.update
    - os.replace
    - paths.append
    - os.remove
    - commondir.read
    - value.startswith
    - os.environ.get
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - meaningful_extensions.append
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - path.decode
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.file._GitFile.close
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - dulwich.index.read_index_dict_with_version
    - dulwich.filters.FilterContext.get_driver
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index.Index.__init__
    - threading.Lock
    - <builtin>.len
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - path.lstrip
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.write_cache_entry
    - dulwich.index.TreeExtension.__init__
    - fs_path_str.encode
    - <builtin>.open
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - value.endswith
    - <builtin>.ord
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.filters.CompositeFilterDriver.clean
    - dulwich.filters.FilterRegistry.register_factory
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.all
    - <builtin>.iter
    - dulwich.attrs._parse_attr
    - line.strip
    - entries_list.append
    - dulwich.filters.FilterRegistry.__init__
    - dulwich.filters.FilterRegistry.get_driver
    - dulwich.config._parse_section_header_line
    - smudge_cmd_raw.decode
    - name.encode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.attrs.Pattern._compile
    - dulwich.repo.Repo.has_index
    - dulwich.repo.Repo.index_path
    - dulwich.file._GitFile.abort
    - dulwich.attrs._translate_pattern
    - os.fdopen
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.filters.FilterBlobNormalizer.checkin_normalize
    - cs.startswith
    - dulwich.filters.get_filter_for_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - fs_path_bytes.replace
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - dulwich.filters.FilterContext.__init__
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - io.BytesIO
    - <builtin>.set
    - subprocess.run
    - dulwich.config.get_xdg_config_home_path
    - setting.strip
    - os.rename
    - value.other.serialize
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - ret.append
    - f.read
    - struct.pack
    - dulwich.repo.BaseRepo.get_object
    - dulwich.repo.Repo.get_blob_normalizer
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.config._is_line_continuation
    - dulwich.pack.SHA1Writer.__init__
    - stat.S_ISLNK
    - dulwich.index.index_entry_from_directory
    - clean_cmd_raw.decode
    - dulwich.index.TreeExtension.from_bytes
    - dulwich.index.cleanup_mode
    - dulwich.file._GitFile.read
    - line.endswith
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - included_paths.copy
    - dulwich.repo.Repo.get_gitattributes
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - f.write
    - typing.NewType
    - line.split
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - os.readlink
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - attr.partition
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.divmod
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - os.kill
    - dulwich.index.Index.read
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.index.read_cache_time
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.BaseRepo.__init__
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.index.IndexExtension.from_raw
    - dulwich.index.read_submodule_head
    - paths.extend
    - autocrlf_raw.lower
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - process_cmd_raw.decode
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fs_paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1772
    functionName: dulwich.repo.Repo.unstage
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - backends.append
    - dulwich.index.IndexEntry.from_serialized
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - hashlib.sha1.update
    - ret.setdefault
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - os.path.join
    - ret._handle_include_directive
    - dulwich.worktree.WorkTree.__init__
    - os.fsdecode
    - dulwich.index.write_index
    - os.close
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - dulwich.worktree.WorkTree.unstage
    - <builtin>.range
    - extension.to_bytes
    - value.decode
    - value.this.serialize
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.repo.Repo.open_index
    - <builtin>.sorted
    - dulwich.index._fs_to_tree_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.config._find_git_in_win_reg
    - <builtin>.any
    - dulwich.config.StackedConfig.default_backends
    - ext.to_bytes
    - dulwich.repo.Repo.get_worktree_config
    - dulwich.pack.SHA1Writer.tell
    - io.BytesIO.write
    - dulwich.config._find_git_in_win_path
    - dulwich.pack.SHA1Reader.check_sha
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - platform.machine
    - dulwich.index.Index.clear
    - hashlib.sha1
    - os.path.expanduser
    - logger.debug
    - dulwich.file._GitFile.write
    - dulwich.pack.SHA1Writer.write
    - setting.strip
    - paths.append
    - dulwich.index.Index.update
    - value.startswith
    - os.environ.get
    - os.path.exists
    - os.replace
    - os.remove
    - meaningful_extensions.append
    - os.fspath
    - dulwich.config.StackedConfig.__init__
    - dulwich.config._check_section_name
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.file._GitFile.close
    - subsection.encode
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - dulwich.index.Index.__init__
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.index.ResolveUndoExtension.from_bytes
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.index.write_cache_entry
    - fs_path_str.encode
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - tree.lookup_path
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - line.startswith
    - backend.get
    - <builtin>.int
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.all
    - entries_list.append
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.objects.sha_to_hex
    - dulwich.repo.Repo.index_path
    - dulwich.repo.Repo.has_index
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - fs_path_bytes.replace
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - ret.append
    - struct.pack
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.index.TreeExtension.from_bytes
    - dulwich.file._GitFile.read
    - line.endswith
    - tempfile.mkstemp
    - included_paths.copy
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - dulwich.index.SparseDirExtension.__init__
    - <builtin>.divmod
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.index.Index.read
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - struct.unpack
    - dulwich.index.read_cache_time
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - dulwich.repo.Repo.get_worktree
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.index.IndexExtension.from_raw
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.config._is_line_continuation
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fs_paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 366
    functionName: dulwich.worktree.WorkTree.unstage
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - backends.append
    - dulwich.index.IndexEntry.from_serialized
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - hashlib.sha1.update
    - ret.setdefault
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - os.path.join
    - ret._handle_include_directive
    - os.fsdecode
    - os.close
    - dulwich.index.write_index
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - <builtin>.range
    - extension.to_bytes
    - value.decode
    - dulwich.pack.SHA1Writer.write
    - value.this.serialize
    - dulwich.config.ConfigFile.from_path
    - dulwich.repo.Repo.open_index
    - dulwich.config._find_git_in_win_reg
    - dulwich.index._fs_to_tree_path
    - dulwich.config.ConfigFile.__init__
    - <builtin>.sorted
    - <builtin>.any
    - dulwich.config.StackedConfig.default_backends
    - ext.to_bytes
    - dulwich.repo.Repo.get_worktree_config
    - dulwich.pack.SHA1Writer.tell
    - io.BytesIO.write
    - dulwich.config._find_git_in_win_path
    - dulwich.pack.SHA1Reader.check_sha
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - platform.machine
    - dulwich.index.Index.clear
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - os.replace
    - value.startswith
    - paths.append
    - os.remove
    - os.environ.get
    - dulwich.index.Index.update
    - meaningful_extensions.append
    - os.fspath
    - dulwich.config.StackedConfig.__init__
    - dulwich.config._check_section_name
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - dulwich.index.Index.__init__
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.index.ResolveUndoExtension.from_bytes
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.index.write_cache_entry
    - fs_path_str.encode
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - tree.lookup_path
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - line.startswith
    - backend.get
    - <builtin>.int
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.all
    - entries_list.append
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.objects.sha_to_hex
    - dulwich.repo.Repo.index_path
    - dulwich.repo.Repo.has_index
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - fs_path_bytes.replace
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - ret.append
    - struct.pack
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.index.TreeExtension.from_bytes
    - line.endswith
    - tempfile.mkstemp
    - included_paths.copy
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - dulwich.index.SparseDirExtension.__init__
    - <builtin>.divmod
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.index.Index.read
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - struct.unpack
    - dulwich.index.read_cache_time
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.index.IndexExtension.from_raw
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 12
    IfCount: 8
    argCount: 10
    argDefaultValues: []
    argNames:
    - self
    - target_path
    - mkdir
    - bare
    - origin
    - checkout
    - branch
    - progress
    - depth
    - symlinks
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 1781
    functionName: dulwich.repo.Repo.clone
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - typing.Protocol.as_dict
    - queue.pop
    - dulwich.protocol.symref_capabilities
    - data.find
    - difflib.SequenceMatcher
    - symrefs.items
    - dulwich.refs.RefsContainer.keys
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - parents.get
    - pack_bitmap.has_commit
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - dulwich.pack.generate_unpacked_objects
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - <builtin>.setattr
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - dulwich.object_store.MissingObjectFinder.get_remote_has
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - obj.get_object
    - dulwich.refs.DiskRefsContainer.subkeys
    - possible_bases.pop
    - platform.machine
    - dulwich.objects.check_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - logger.debug
    - dulwich.repo.BaseRepo.get_refs
    - todo.extend
    - dulwich.pack.sort_objects_for_delta
    - os.fspath
    - queue.extend
    - refs.keys
    - refs.set_symbolic_ref
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.server.PackHandler.innocuous_capabilities
    - path.lstrip
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - shallow.add
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - dulwich.repo.Repo.get_named_file
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - <builtin>.open
    - dulwich.objects.Tree.from_path
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.frozenset
    - <builtin>.memoryview
    - typing.Protocol.get_peeled
    - contextlib.suppress
    - dulwich.repo.BaseRepo.find_missing_objects
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.config.StackedConfig.default
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.repo.Repo.commondir
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - pack_index.iterentries
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - todo.append
    - text.rstrip
    - dulwich.file._GitFile.seek
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - not_shallow.add
    - dulwich.repo.Repo.init_bare
    - ret.append
    - cdifflib.CSequenceMatcher
    - content.endswith
    - c.isalnum
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - included_paths.copy
    - dulwich.object_store.peel_sha
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - key.startswith
    - io.BytesIO.seek
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - pack_files.add
    - dulwich.server.PackHandler.has_capability
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.repo.Repo._init_maybe_bare
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - value.lower
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - graph_walker.shallow.update
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - new_packs.append
    - dulwich.reftable.ReftableReader.all_refs
    - backends.append
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.parse_symref_value
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - ret._handle_include_directive
    - dulwich.refs._split_ref_line
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - directory.replace
    - dulwich.protocol.agent_string
    - dulwich.refs.local_branch_name
    - want_others.difference
    - value.decode
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.StackedConfig.default_backends
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - refs.add_if_new
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.pack._encode_copy_operation
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.protocol.ack_type
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.environ.get
    - todo.keys
    - os.mkdir
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - graph._read_from_file
    - logging.warning
    - os.path.isfile
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - _TYPE_MAP.get
    - <builtin>.sum
    - origin_head.startswith
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - <builtin>.str
    - target.refs.import_refs
    - os.fsencode
    - collections.deque
    - ref.decode
    - dulwich.pack.find_reusable_deltas
    - name.encode
    - os.fdopen
    - target.get_graph_walker
    - table_data.append
    - cs.startswith
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.repo.Repo.init
    - want_tags.difference
    - os.path.split
    - dulwich.objects.hex_to_filename
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - bases.add
    - os.path.splitext
    - dulwich.repo.BaseRepo.get_peeled
    - dulwich.midx.MultiPackIndex.close
    - <builtin>.isinstance
    - ret.read
    - magic.sort
    - others.add
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - allowable_caps.update
    - target.get_worktree
    - dulwich.refs.RefsContainer.get_symrefs
    - ret._init_files
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - refs.get
    - scratch.append
    - heads.items
    - target.get_config
    - whitespace.append
    - e.decode
    - dulwich.protocol.format_ref_line
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - typing.cast.startswith
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.object_store._collect_filetree_revs
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - possible_bases.appendleft
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.reftable.ReftableRefsContainer.follow
    - remaining.remove
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.commit_graph.read_commit_graph
    - wants.extend
    - int.from_bytes
    - dulwich.object_store.<lambda2>
    - pack_bitmap.get_bitmap
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.refs.is_per_worktree_ref
    - contents.startswith
    - magic.append
    - dulwich.repo.Repo.get_config
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.objects.Blob.from_path
    - dulwich.server.PackHandler.set_client_capabilities
    - os.makedirs
    - o.as_raw_chunks
    - dulwich.config.ConfigFile.__init__
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - logger.info
    - commondir.read
    - target.close
    - value.startswith
    - dulwich.config.StackedConfig.__init__
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.object_store.MissingObjectFinder.__init__
    - all_refs.pop
    - dulwich.refs.local_tag_name
    - dulwich.reftable.ReftableRefsContainer.__init__
    - line.lstrip
    - store.get_commit_graph
    - dulwich.server._split_proto_line
    - dulwich.refs._set_origin_head
    - os.path.dirname
    - refs.items
    - os.walk
    - line.startswith
    - backend.get
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - refnames.append
    - config.get
    - dulwich.protocol.format_capability_line
    - ret.refs.set_symbolic_ref
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.objects.Tag.from_path
    - dulwich.protocol.format_unshallow_line
    - io.BytesIO
    - dulwich.config.get_xdg_config_home_path
    - refname.endswith
    - result.add
    - files.append
    - f.read
    - want_revs.append
    - pack.index.iterentries
    - dulwich.object_store._split_commits_and_tags
    - dulwich.refs.read_packed_refs
    - dulwich.server.UploadPackHandler.handle.wants_wrapper
    - first_line.startswith
    - typing.cast.encode
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.dict
    - dulwich.config._parse_string
    - ret.extend
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.refs._set_default_branch
    - os.chmod
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.protocol.capability_agent
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.repo.BaseRepo.fetch_pack_data
    - dulwich.bitmap.find_commit_bitmaps
    - repo.get_peeled
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.object_store.BitmapReachability.__init__
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - dulwich.refs.RefsContainer.follow
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - shutil.rmtree
    - delta.append
    - cap.startswith
    - commits.add
    - dulwich.config.StackedConfig.get
    - dulwich.repo.ParentsProvider.get_parents
    - value.strip
    - json.loads
    - target_config.set
    - dulwich.config.ConfigFile.from_path
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.config._find_git_in_win_path
    - dulwich.object_store.find_shallow.get_parents
    - kset.add
    - path.encode
    - os.path.expanduser
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - paths.append
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - <builtin>.enumerate
    - table_data.sort
    - name.startswith
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich._pack.create_delta
    - <builtin>.list
    - dulwich.refs._set_head
    - ref.startswith
    - heads.values
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - <builtin>.ord
    - value.endswith
    - dulwich.pack.Pack.__init__
    - target.object_store.add_pack_data
    - dulwich.refs.DiskRefsContainer.get_peeled
    - <builtin>.int
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - filetree.iteritems
    - container.iter_unpacked_subset
    - <builtin>.next
    - refs.set_if_equals
    - search_paths.append
    - dulwich.protocol.extract_want_line_capabilities
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - target_config.write_to_path
    - dulwich.refs.DiskRefsContainer._iter_dir
    - commit_graph.get_parents
    - <builtin>.super
    - <builtin>.max
    - obj.raw_length
    - <builtin>.set
    - todo.remove
    - dulwich.objects.object_class
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - all_refs.items
    - dulwich.pack._create_delta_py
    - line.endswith
    - ctypes.WINFUNCTYPE
    - dulwich.refs.check_ref_format
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.server.ReceivePackHandler.capabilities
    - dulwich.reftable.RefRecord.decode
    - dulwich.object_store.DiskObjectStore.close
    - dulwich.repo.BaseRepo.fetch
    - sha.decode
    - dulwich.object_store.DiskObjectStore.init
    - os.open
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - winreg.OpenKey
    - line.rstrip
    - ret._values.setdefault
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.object_store.GraphTraversalReachability.__init__
    - <builtin>.bytearray
    - dulwich.repo._set_filesystem_hidden
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - dulwich.reftable.ReftableReader.__init__
    - p.iterobjects_subset
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 8
    argDefaultValues: []
    argNames:
    - cls
    - path
    - mkdir
    - config
    - default_branch
    - symlinks
    - format
    - shared_repository
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2105
    functionName: dulwich.repo.Repo.init
    functionSourceFile: dulwich.repo
    functionUses: 4
    functionsReached:
    - backends.append
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.config._find_git_in_win_path
    - dulwich.worktree.WorkTreeContainer.__init__
    - platform.machine
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - paths.append
    - os.mkdir
    - os.environ.get
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - path.decode
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.config.StackedConfig.default
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - ret.refs.set_symbolic_ref
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - ctypes.WINFUNCTYPE
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - ret._init_files
    - os.path.isdir
    - dulwich.object_store.DiskObjectStore.init
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.Repo._init_maybe_bare
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - os.chmod
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo._set_filesystem_hidden
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 8
    argDefaultValues: []
    argNames:
    - cls
    - path
    - mkdir
    - object_store
    - config
    - default_branch
    - format
    - shared_repository
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2206
    functionName: dulwich.repo.Repo.init_bare
    functionSourceFile: dulwich.repo
    functionUses: 4
    functionsReached:
    - backends.append
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.config._find_git_in_win_path
    - dulwich.worktree.WorkTreeContainer.__init__
    - platform.machine
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - paths.append
    - os.mkdir
    - os.environ.get
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - path.decode
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.config.StackedConfig.default
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - ret.refs.set_symbolic_ref
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - ret._init_files
    - os.path.isdir
    - dulwich.object_store.DiskObjectStore.init
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.Repo._init_maybe_bare
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - os.chmod
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.get_config
    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: target_config.set
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target_config.write_to_path
    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: target.refs.import_refs
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.get_worktree
    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: target.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shutil.rmtree
    functionSourceFile: shutil
    functionUses: 301
    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 0x7febaf286e80>
    argNames:
    - self
    - tree
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1879
    functionName: dulwich.repo.Repo.reset_index
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - filter_driver.smudge
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - attr.startswith
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.SparseDirExtension.from_bytes
    - backends.append
    - io.BytesIO.readlines
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_default
    - winreg.QueryValueEx
    - dulwich.index.validate_path_element_ntfs
    - hashlib.sha1.update
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.filters.FilterBlobNormalizer.__init__
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.objects.format_time_entry
    - os.fsync
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - binascii.hexlify
    - dulwich.worktree.WorkTree.reset_index
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.worktree.WorkTree.__init__
    - dulwich.file._GitFile.write
    - os.fsdecode
    - os.close
    - os.unlink
    - dulwich.index.write_index
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - dulwich.pack.SHA1Writer.write
    - value.this.serialize
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.index.cleanup_mode
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - <builtin>.sorted
    - <builtin>.any
    - dulwich.config.StackedConfig.default_backends
    - attributes.get
    - dulwich.repo.Repo.get_worktree_config
    - pattern.startswith
    - dulwich.objects.ShaFile._serialize
    - ext.to_bytes
    - io.BytesIO.write
    - dulwich.config._find_git_in_win_path
    - dulwich.pack.SHA1Writer.tell
    - re.escape
    - dulwich.pack.SHA1Reader.check_sha
    - mergetag.as_raw_string
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - platform.machine
    - dulwich.filters.FilterContext.refresh_config
    - dulwich.index.Index.clear
    - dulwich.attrs.parse_git_attributes
    - hashlib.sha1
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - logger.debug
    - filter_name.decode
    - os.path.exists
    - todo.extend
    - paths.append
    - os.environ.get
    - os.mkdir
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - dulwich.index.Index.update
    - os.replace
    - os.remove
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.config.StackedConfig.__init__
    - dulwich.index.ResolveUndoExtension.__init__
    - meaningful_extensions.append
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index.Index.__init__
    - threading.Lock
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - dulwich.index.ResolveUndoExtension.from_bytes
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.index.write_cache_entry
    - <builtin>.open
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - normalized.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.objects.Blob.__init__
    - dulwich.index.validate_path_element_hfs
    - dulwich.repo.BaseRepo.get_config
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - dulwich.filters.FilterRegistry.register_factory
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - dulwich.pack.SHA1Writer.write_sha
    - element.decode
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - os.fsencode
    - <builtin>.all
    - dulwich.attrs._parse_attr
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.filters.FilterRegistry.__init__
    - dulwich.filters.FilterRegistry.get_driver
    - entries_list.append
    - smudge_cmd_raw.decode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.attrs.Pattern._compile
    - dulwich.repo.Repo.index_path
    - dulwich.attrs._translate_pattern
    - tree.iteritems
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.index._normalize_path_element_default
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - dulwich.filters.FilterContext.__init__
    - os.path.split
    - io.BytesIO
    - extra.append
    - <builtin>.set
    - dulwich.pack.SHA1Reader.__init__
    - dulwich.config.get_xdg_config_home_path
    - subprocess.run
    - os.rename
    - subentry.in_path
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - contents.decode
    - ret.append
    - target_path.decode
    - f.read
    - struct.pack
    - dulwich.repo.BaseRepo.get_object
    - dulwich.repo.Repo.get_blob_normalizer
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - dulwich.pack.SHA1Writer.__init__
    - stat.S_ISLNK
    - clean_cmd_raw.decode
    - dulwich.index._normalize_path_element_hfs
    - dulwich.index.TreeExtension.from_bytes
    - dulwich.file._GitFile.read
    - line.endswith
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - included_paths.copy
    - path.split
    - dulwich.repo.Repo.get_gitattributes
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.filters.ProcessFilterDriver.cleanup
    - value.split
    - binascii.unhexlify
    - dulwich.pack.SHA1Reader.seek
    - dulwich._objects.sorted_tree_items
    - attr.partition
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - todo.pop
    - headers.extend
    - <builtin>.divmod
    - unicodedata.normalize
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - st.__class__
    - os.kill
    - dulwich.index.Index.read
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.index.read_index_header
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - struct.unpack
    - value.serialize
    - dulwich.config.get_win_system_paths
    - dulwich.index.read_cache_time
    - headers.append
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - dulwich.pack.SHA1Reader.read
    - dulwich.filters.CompositeFilterDriver.smudge
    - dulwich.index._compress_path
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - hashlib.sha1.digest
    - dulwich.repo.BaseRepo.get_config_stack
    - dulwich.repo.Repo.get_worktree
    - re.compile
    - value.lower
    - dulwich.file.GitFile
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index.IndexExtension.from_raw
    - dulwich.objects.Commit._serialize
    - os.chmod
    - paths.extend
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.objects.Blob._serialize
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - typing.NamedTuple.__init__
    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 0x7febadfe9fd0>
    argNames:
    - self
    - tree
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 689
    functionName: dulwich.worktree.WorkTree.reset_index
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - filter_driver.smudge
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - attr.startswith
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.SparseDirExtension.from_bytes
    - backends.append
    - io.BytesIO.readlines
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_default
    - winreg.QueryValueEx
    - dulwich.index.validate_path_element_ntfs
    - hashlib.sha1.update
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.filters.FilterBlobNormalizer.__init__
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.objects.format_time_entry
    - os.fsync
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.file._GitFile.write
    - dulwich.index.write_index
    - os.close
    - os.unlink
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - dulwich.pack.SHA1Writer.write
    - value.this.serialize
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.index.cleanup_mode
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - <builtin>.sorted
    - <builtin>.any
    - dulwich.config.StackedConfig.default_backends
    - attributes.get
    - dulwich.repo.Repo.get_worktree_config
    - pattern.startswith
    - dulwich.objects.ShaFile._serialize
    - ext.to_bytes
    - io.BytesIO.write
    - dulwich.config._find_git_in_win_path
    - dulwich.pack.SHA1Writer.tell
    - re.escape
    - dulwich.pack.SHA1Reader.check_sha
    - mergetag.as_raw_string
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - platform.machine
    - dulwich.filters.FilterContext.refresh_config
    - dulwich.index.Index.clear
    - dulwich.attrs.parse_git_attributes
    - hashlib.sha1
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - logger.debug
    - filter_name.decode
    - os.path.exists
    - todo.extend
    - paths.append
    - os.environ.get
    - os.mkdir
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - dulwich.index.Index.update
    - os.replace
    - os.remove
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.config.StackedConfig.__init__
    - dulwich.index.ResolveUndoExtension.__init__
    - meaningful_extensions.append
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index.Index.__init__
    - threading.Lock
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - dulwich.index.ResolveUndoExtension.from_bytes
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.index.write_cache_entry
    - <builtin>.open
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - normalized.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.objects.Blob.__init__
    - dulwich.index.validate_path_element_hfs
    - dulwich.repo.BaseRepo.get_config
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - dulwich.filters.FilterRegistry.register_factory
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - dulwich.pack.SHA1Writer.write_sha
    - element.decode
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - os.fsencode
    - <builtin>.all
    - dulwich.attrs._parse_attr
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.filters.FilterRegistry.__init__
    - dulwich.filters.FilterRegistry.get_driver
    - entries_list.append
    - smudge_cmd_raw.decode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.attrs.Pattern._compile
    - dulwich.repo.Repo.index_path
    - dulwich.attrs._translate_pattern
    - tree.iteritems
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.index._normalize_path_element_default
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - dulwich.filters.FilterContext.__init__
    - os.path.split
    - io.BytesIO
    - extra.append
    - <builtin>.set
    - dulwich.pack.SHA1Reader.__init__
    - dulwich.config.get_xdg_config_home_path
    - subprocess.run
    - os.rename
    - subentry.in_path
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - contents.decode
    - ret.append
    - target_path.decode
    - f.read
    - struct.pack
    - dulwich.repo.BaseRepo.get_object
    - dulwich.repo.Repo.get_blob_normalizer
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - dulwich.pack.SHA1Writer.__init__
    - stat.S_ISLNK
    - clean_cmd_raw.decode
    - dulwich.index._normalize_path_element_hfs
    - dulwich.index.TreeExtension.from_bytes
    - dulwich.file._GitFile.read
    - line.endswith
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - included_paths.copy
    - path.split
    - dulwich.repo.Repo.get_gitattributes
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.filters.ProcessFilterDriver.cleanup
    - value.split
    - binascii.unhexlify
    - dulwich.pack.SHA1Reader.seek
    - dulwich._objects.sorted_tree_items
    - attr.partition
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - todo.pop
    - headers.extend
    - <builtin>.divmod
    - unicodedata.normalize
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - st.__class__
    - os.kill
    - dulwich.index.Index.read
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.index.read_index_header
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - struct.unpack
    - value.serialize
    - dulwich.config.get_win_system_paths
    - dulwich.index.read_cache_time
    - headers.append
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - dulwich.pack.SHA1Reader.read
    - dulwich.filters.CompositeFilterDriver.smudge
    - dulwich.index._compress_path
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - hashlib.sha1.digest
    - dulwich.repo.BaseRepo.get_config_stack
    - re.compile
    - value.lower
    - dulwich.file.GitFile
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index.IndexExtension.from_raw
    - dulwich.objects.Commit._serialize
    - os.chmod
    - paths.extend
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.objects.Blob._serialize
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1887
    functionName: dulwich.repo.Repo._get_config_condition_matchers
    functionSourceFile: dulwich.repo
    functionUses: 309
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae617fd0>
    argNames:
    - pattern
    - case_sensitive
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1897
    functionName: dulwich.repo.Repo._get_config_condition_matchers.match_gitdir
    functionSourceFile: dulwich.repo
    functionUses: 2
    functionsReached:
    - os.path.expanduser
    - path_str.startswith
    - path.decode
    - pathlib.Path
    - pattern.endswith
    - <builtin>.len
    - pattern_str.endswith
    - pattern_str.replace
    - path_str.lower
    - pattern_str.split
    - pattern.encode
    - path_str.replace
    - fnmatch.fnmatch
    - pattern_str.startswith
    - pathlib.Path.resolve
    - pattern.startswith
    - pattern.replace
    - pattern_str.lower
    - <builtin>.str
    - repo_path.encode
    - pattern.decode
    - dulwich.config._match_gitdir_pattern
    - path_str.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern.startswith
    functionSourceFile: <builtin>
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern.replace
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern.endswith
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern.encode
    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: repo_path.encode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - pattern
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 1943
    functionName: dulwich.repo.Repo._get_config_condition_matchers.match_onbranch
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - re.match
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs._split_ref_line
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - re.escape
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - <builtin>.enumerate
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - ref.startswith
    - <builtin>.open
    - refname.startswith
    - <builtin>.ord
    - pattern_escaped.replace
    - refs.items
    - line.startswith
    - dulwich.config.match_glob_pattern
    - <builtin>.bool
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - head_ref.startswith
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - block.refs.append
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - refname.endswith
    - dulwich.refs.extract_branch_name
    - files.append
    - f.read
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.repo.Repo._get_config_condition_matchers.<dict1>.<lambda1>
    functionSourceFile: dulwich.repo
    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: 3
    functionLinenumber: -1
    functionName: dulwich.repo.Repo._get_config_condition_matchers.<lambda1>
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    - path_str.startswith
    - path.decode
    - pathlib.Path
    - pattern.endswith
    - <builtin>.len
    - pattern_str.endswith
    - pattern_str.replace
    - dulwich.repo.Repo._get_config_condition_matchers.match_gitdir
    - path_str.lower
    - pattern_str.split
    - pattern.encode
    - path_str.replace
    - fnmatch.fnmatch
    - pattern_str.startswith
    - pathlib.Path.resolve
    - pattern.startswith
    - pattern.replace
    - pattern_str.lower
    - <builtin>.str
    - repo_path.encode
    - pattern.decode
    - dulwich.config._match_gitdir_pattern
    - path_str.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.repo.Repo._get_config_condition_matchers.<dict1>.<lambda2>
    functionSourceFile: dulwich.repo
    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: 3
    functionLinenumber: -1
    functionName: dulwich.repo.Repo._get_config_condition_matchers.<lambda2>
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    - path_str.startswith
    - path.decode
    - pathlib.Path
    - pattern.endswith
    - <builtin>.len
    - pattern_str.endswith
    - pattern_str.replace
    - dulwich.repo.Repo._get_config_condition_matchers.match_gitdir
    - path_str.lower
    - pattern_str.split
    - pattern.encode
    - path_str.replace
    - fnmatch.fnmatch
    - pattern_str.startswith
    - pathlib.Path.resolve
    - pattern.startswith
    - pattern.replace
    - pattern_str.lower
    - <builtin>.str
    - repo_path.encode
    - pattern.decode
    - dulwich.config._match_gitdir_pattern
    - path_str.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2010
    functionName: dulwich.repo.Repo.get_rebase_state_manager
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.repo.Repo.controldir
    - dulwich.rebase.DiskRebaseStateManager.__init__
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 435
    functionName: dulwich.rebase.DiskRebaseStateManager.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2022
    functionName: dulwich.repo.Repo.get_description
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.open
    - <builtin>.getattr
    - dulwich.file.GitFile
    - os.path.join
    - f.read
    - dulwich.file._GitFile.__init__
    - os.fspath
    - <builtin>.isinstance
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2034
    functionName: dulwich.repo.Repo.__repr__
    functionSourceFile: dulwich.repo
    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
    - description
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2038
    functionName: dulwich.repo.Repo.set_description
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.repo.Repo._put_named_file
    - dulwich.repo.parse_shared_repository
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - <builtin>.getattr
    - value.startswith
    - name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - os.fdopen
    - whitespace.append
    - subsection.encode
    - dulwich.config._parse_string
    - os.open
    - dulwich.config._check_variable_name
    - <builtin>.len
    - os.path.join
    - <builtin>.tuple
    - ret._handle_include_directive
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - path.lstrip
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.Repo.get_config
    - value.lower
    - dulwich.file.GitFile
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - value.decode
    - dulwich.repo.Repo._get_shared_repository_permissions
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.config.ConfigDict._check_section_and_name
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - f.write
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - dulwich.config.ConfigDict.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaeb6e400>
    - <ast.Constant object at 0x7febaeb6e370>
    - <ast.Constant object at 0x7febaeb6e9d0>
    - <ast.Constant object at 0x7febaeb6ea00>
    - <ast.Constant object at 0x7febaeb6e850>
    - <ast.Constant object at 0x7febaeb6e3a0>
    argNames:
    - cls
    - path
    - controldir
    - bare
    - object_store
    - config
    - default_branch
    - symlinks
    - format
    - shared_repository
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2047
    functionName: dulwich.repo.Repo._init_maybe_bare
    functionSourceFile: dulwich.repo
    functionUses: 6
    functionsReached:
    - backends.append
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.config._find_git_in_win_path
    - dulwich.worktree.WorkTreeContainer.__init__
    - platform.machine
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - paths.append
    - os.mkdir
    - os.environ.get
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - path.decode
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.config.StackedConfig.default
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - ret.refs.set_symbolic_ref
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - ret._init_files
    - os.path.isdir
    - dulwich.object_store.DiskObjectStore.init
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - os.chmod
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.refs.set_symbolic_ref
    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: ret._init_files
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 11
    IfCount: 5
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaef031f0>
    - <ast.Constant object at 0x7febaef03220>
    argNames:
    - cls
    - path
    - main_repo
    - identifier
    - mkdir
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2148
    functionName: dulwich.repo.Repo._init_new_working_directory
    functionSourceFile: dulwich.repo
    functionUses: 4
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - os.path.normpath
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - r.get_worktree
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - os.path.basename
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.repo.Repo._get_shared_repository_permissions
    - os.chmod
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.normpath
    functionSourceFile: os
    functionUses: 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: r.get_worktree
    functionSourceFile: <builtin>
    functionUses: 20
    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: 2249
    functionName: dulwich.repo.Repo.close
    functionSourceFile: dulwich.repo
    functionUses: 1
    functionsReached:
    - dulwich.filters.FilterRegistry.close
    - dulwich.repo.MemoryRepo.close
    - dulwich.filters.FilterContext.close
    - driver.cleanup
    - dulwich.repo.Repo.close
    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: 2599
    functionName: dulwich.repo.MemoryRepo.close
    functionSourceFile: dulwich.repo
    functionUses: 2
    functionsReached:
    - dulwich.filters.FilterContext.close
    - dulwich.filters.FilterRegistry.close
    - driver.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2257
    functionName: dulwich.repo.Repo.__enter__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2261
    functionName: dulwich.repo.Repo.__exit__
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.filters.FilterRegistry.close
    - dulwich.repo.MemoryRepo.close
    - dulwich.filters.FilterContext.close
    - driver.cleanup
    - dulwich.repo.Repo.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2270
    functionName: dulwich.repo.Repo._read_gitattributes
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - line.startswith
    - line.strip
    - attr.startswith
    - <builtin>.len
    - os.path.exists
    - os.path.join
    - line.split
    - attr.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr.startswith
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2309
    functionName: dulwich.repo.Repo.get_blob_normalizer
    functionSourceFile: dulwich.repo
    functionUses: 4
    functionsReached:
    - dulwich.filters.FilterRegistry._create_from_config
    - attr.startswith
    - backends.append
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.filters.FilterBlobNormalizer.__init__
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - os.path.join
    - ret._handle_include_directive
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - <builtin>.range
    - stuff.startswith
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.repo.Repo.get_worktree_config
    - pattern.startswith
    - dulwich.config._find_git_in_win_path
    - re.escape
    - platform.machine
    - dulwich.filters.FilterContext.refresh_config
    - dulwich.attrs.parse_git_attributes
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - logger.debug
    - os.path.exists
    - paths.append
    - os.environ.get
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.config._check_variable_name
    - <builtin>.len
    - threading.Lock
    - <builtin>.open
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - line.startswith
    - backend.get
    - dulwich.filters.FilterRegistry.register_factory
    - <builtin>.str
    - dulwich.repo.Repo.commondir
    - dulwich.attrs._parse_attr
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.filters.FilterRegistry.__init__
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - <builtin>.super
    - dulwich.filters.FilterContext.__init__
    - os.path.split
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - ret.append
    - dulwich.repo.BaseRepo.get_object
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - clean_cmd_raw.decode
    - line.endswith
    - included_paths.copy
    - dulwich.repo.Repo.get_gitattributes
    - line.split
    - dulwich.config._strip_comments
    - attr.partition
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - re.compile
    - value.lower
    - paths.extend
    - autocrlf_raw.lower
    - <builtin>.bytes
    - <builtin>.bytearray
    - process_cmd_raw.decode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadd4ca60>
    argNames:
    - self
    - tree
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2330
    functionName: dulwich.repo.Repo.get_gitattributes
    functionSourceFile: dulwich.repo
    functionUses: 5
    functionsReached:
    - dulwich.attrs.parse_git_attributes
    - dulwich.attrs._parse_attr
    - line.strip
    - attr.startswith
    - os.path.exists
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - <builtin>.len
    - os.path.join
    - io.BytesIO
    - <builtin>.open
    - dulwich.attrs.GitAttributes.__init__
    - re.compile
    - dulwich.repo.BaseRepo.get_object
    - stuff.startswith
    - <builtin>.isinstance
    - line.startswith
    - pattern.startswith
    - re.escape
    - dulwich.repo.Repo.controldir
    - line.split
    - attr.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 65
    functionName: dulwich.attrs.parse_git_attributes
    functionSourceFile: dulwich.attrs
    functionUses: 14
    functionsReached:
    - line.startswith
    - dulwich.attrs._parse_attr
    - line.strip
    - attr.startswith
    - line.split
    - attr.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 172
    functionName: dulwich.attrs.Pattern.__init__
    functionSourceFile: dulwich.attrs
    functionUses: 16
    functionsReached:
    - pattern.startswith
    - re.compile
    - re.escape
    - <builtin>.len
    - stuff.startswith
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: patterns.append
    functionSourceFile: <builtin>
    functionUses: 16
    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 0x7febaf2a81f0>
    argNames:
    - self
    - patterns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 283
    functionName: dulwich.attrs.GitAttributes.__init__
    functionSourceFile: ''
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2398
    functionName: dulwich.repo.Repo._sparse_checkout_file_path
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.repo.Repo.get_worktree
    - os.path.join
    - dulwich.worktree.WorkTree._sparse_checkout_file_path
    - dulwich.worktree.WorkTree.__init__
    - dulwich.repo.Repo.controldir
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 746
    functionName: dulwich.worktree.WorkTree._sparse_checkout_file_path
    functionSourceFile: dulwich.worktree
    functionUses: 7
    functionsReached:
    - dulwich.repo.Repo.controldir
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2403
    functionName: dulwich.repo.Repo.configure_for_cone_mode
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - <builtin>.getattr
    - value.startswith
    - name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - values.items
    - dulwich.config.ConfigDict.set
    - dulwich.repo.Repo._get_config_condition_matchers
    - os.fdopen
    - whitespace.append
    - subsection.encode
    - dulwich.config._parse_string
    - os.open
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - os.path.join
    - ret._handle_include_directive
    - dulwich.file._GitFile.__init__
    - dulwich.worktree.WorkTree.__init__
    - <builtin>.super
    - os.fsdecode
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - <builtin>.open
    - value.replace
    - dulwich.repo.Repo.get_worktree
    - dulwich.repo.Repo.get_config
    - value.encode
    - <builtin>.hasattr
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.file.GitFile
    - dulwich.config._escape_value
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - dulwich.config.ConfigFile.write_to_path
    - section_dict.set
    - dulwich.worktree.WorkTree.configure_for_cone_mode
    - line.startswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - io.BytesIO.write
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.config._format_string
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    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: 6
    functionLinenumber: 750
    functionName: dulwich.worktree.WorkTree.configure_for_cone_mode
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - <builtin>.getattr
    - io.BytesIO.readlines
    - value.startswith
    - name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - values.items
    - dulwich.config.ConfigDict.set
    - dulwich.repo.Repo._get_config_condition_matchers
    - os.fdopen
    - whitespace.append
    - subsection.encode
    - os.open
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - os.path.join
    - dulwich.file._GitFile.__init__
    - ret._handle_include_directive
    - <builtin>.super
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - <builtin>.open
    - value.replace
    - line.lstrip
    - dulwich.repo.Repo.get_config
    - value.encode
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - value.endswith
    - os.path.dirname
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.config._escape_value
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - dulwich.config.ConfigFile.write_to_path
    - section_dict.set
    - line.startswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - io.BytesIO.write
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.config._format_string
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2408
    functionName: dulwich.repo.Repo.infer_cone_mode
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - whitespace.append
    - subsection.encode
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - os.path.join
    - ret._handle_include_directive
    - <builtin>.super
    - dulwich.worktree.WorkTree.__init__
    - os.fsdecode
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - dulwich.repo.Repo.get_worktree
    - dulwich.repo.Repo.get_config
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.worktree.WorkTree.infer_cone_mode
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - dulwich.config.ConfigDict.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 757
    functionName: dulwich.worktree.WorkTree.infer_cone_mode
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - whitespace.append
    - subsection.encode
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - os.path.join
    - ret._handle_include_directive
    - <builtin>.super
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - dulwich.repo.Repo.get_config
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - line.startswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - dulwich.config.ConfigFile.from_file
    - dulwich.config._strip_comments
    - line.split
    - <builtin>.enumerate
    - dulwich.config.ConfigDict.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2413
    functionName: dulwich.repo.Repo.get_sparse_checkout_patterns
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - dulwich.repo.Repo.get_worktree
    - dulwich.worktree.WorkTree.get_sparse_checkout_patterns
    - line.strip
    - os.path.join
    - dulwich.worktree.WorkTree._sparse_checkout_file_path
    - dulwich.worktree.WorkTree.__init__
    - dulwich.repo.Repo.controldir
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 767
    functionName: dulwich.worktree.WorkTree.get_sparse_checkout_patterns
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - <builtin>.open
    - line.strip
    - os.path.join
    - dulwich.worktree.WorkTree._sparse_checkout_file_path
    - dulwich.repo.Repo.controldir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - patterns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2422
    functionName: dulwich.repo.Repo.set_sparse_checkout_patterns
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - dulwich.repo.Repo.get_worktree
    - os.makedirs
    - os.path.join
    - f.write
    - dulwich.worktree.WorkTree._sparse_checkout_file_path
    - dulwich.repo.Repo.controldir
    - dulwich.worktree.WorkTree.__init__
    - dulwich.worktree.WorkTree.set_sparse_checkout_patterns
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - patterns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 780
    functionName: dulwich.worktree.WorkTree.set_sparse_checkout_patterns
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - os.makedirs
    - os.path.join
    - f.write
    - dulwich.worktree.WorkTree._sparse_checkout_file_path
    - dulwich.repo.Repo.controldir
    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 0x7febadde1eb0>
    argNames:
    - self
    - dirs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2433
    functionName: dulwich.repo.Repo.set_cone_mode_patterns
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - dulwich.repo.Repo.get_worktree
    - d.strip
    - os.makedirs
    - os.path.join
    - f.write
    - dulwich.worktree.WorkTree._sparse_checkout_file_path
    - patterns.append
    - dulwich.repo.Repo.controldir
    - dulwich.worktree.WorkTree.__init__
    - dulwich.worktree.WorkTree.set_sparse_checkout_patterns
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    - dulwich.worktree.WorkTree.set_cone_mode_patterns
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaffb10d0>
    argNames:
    - self
    - dirs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 796
    functionName: dulwich.worktree.WorkTree.set_cone_mode_patterns
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - <builtin>.open
    - os.makedirs
    - os.path.join
    - f.write
    - dulwich.worktree.WorkTree._sparse_checkout_file_path
    - patterns.append
    - dulwich.repo.Repo.controldir
    - dulwich.worktree.WorkTree.set_sparse_checkout_patterns
    - d.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2452
    functionName: dulwich.repo.MemoryRepo.__init__
    functionSourceFile: dulwich.repo
    functionUses: 1
    functionsReached:
    - dulwich.object_store.MemoryObjectStore.__init__
    - dulwich.refs.DictRefsContainer.__init__
    - <builtin>.super
    - dulwich.repo.BaseRepo.__init__
    - dulwich.config.ConfigFile.__init__
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - ref
    - old_sha
    - new_sha
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2465
    functionName: dulwich.repo.MemoryRepo._append_reflog
    functionSourceFile: dulwich.repo
    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
    - description
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2479
    functionName: dulwich.repo.MemoryRepo.set_description
    functionSourceFile: dulwich.repo
    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: 2487
    functionName: dulwich.repo.MemoryRepo.get_description
    functionSourceFile: dulwich.repo
    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: 2546
    functionName: dulwich.repo.MemoryRepo.open_index
    functionSourceFile: dulwich.repo
    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: 2561
    functionName: dulwich.repo.MemoryRepo.get_rebase_state_manager
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.rebase.MemoryRebaseStateManager.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 566
    functionName: dulwich.rebase.MemoryRebaseStateManager.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2570
    functionName: dulwich.repo.MemoryRepo.get_blob_normalizer
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.filters.FilterRegistry._create_from_config
    - backends.append
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.filters.FilterBlobNormalizer.__init__
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - os.path.join
    - ret._handle_include_directive
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - <builtin>.range
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.repo.MemoryRepo.get_gitattributes
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.repo.Repo.get_worktree_config
    - dulwich.config._find_git_in_win_path
    - platform.machine
    - dulwich.filters.FilterContext.refresh_config
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - logger.debug
    - paths.append
    - os.path.exists
    - os.environ.get
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.config._check_variable_name
    - threading.Lock
    - <builtin>.len
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - line.startswith
    - backend.get
    - dulwich.filters.FilterRegistry.register_factory
    - <builtin>.str
    - dulwich.repo.Repo.commondir
    - dulwich.config._parse_section_header_line
    - dulwich.filters.FilterRegistry.__init__
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - <builtin>.super
    - dulwich.filters.FilterContext.__init__
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - ret.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - clean_cmd_raw.decode
    - line.endswith
    - included_paths.copy
    - dulwich.config._strip_comments
    - line.split
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config.get_win_system_paths
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - value.lower
    - paths.extend
    - autocrlf_raw.lower
    - <builtin>.bytes
    - <builtin>.bytearray
    - process_cmd_raw.decode
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    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 0x7febaf8cebe0>
    argNames:
    - self
    - tree
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2591
    functionName: dulwich.repo.MemoryRepo.get_gitattributes
    functionSourceFile: dulwich.repo
    functionUses: 1
    functionsReached:
    - dulwich.attrs.GitAttributes.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 23
    ICount: 6
    IfCount: 16
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5e7190>
    - <ast.Constant object at 0x7febaf5e7970>
    - <ast.Constant object at 0x7febaf5e7460>
    - <ast.Constant object at 0x7febaf5e7e50>
    - <ast.Constant object at 0x7febaf5e7b50>
    - <ast.Constant object at 0x7febaf5e7c70>
    - <ast.Constant object at 0x7febaf5e7b80>
    - <ast.Constant object at 0x7febaf5e7c40>
    - <ast.Constant object at 0x7febaf5e7be0>
    - <ast.Name object at 0x7febaf5e7df0>
    - <ast.Constant object at 0x7febaf5e7d00>
    - <ast.Constant object at 0x7febaf5e7550>
    - <ast.Constant object at 0x7febaf6837f0>
    argNames:
    - self
    - message
    - committer
    - author
    - commit_timestamp
    - commit_timezone
    - author_timestamp
    - author_timezone
    - tree
    - encoding
    - ref
    - merge_heads
    - no_verify
    - sign
    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: 10
    functionLinenumber: 2606
    functionName: dulwich.repo.MemoryRepo.do_commit
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - ref.encode
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - backends.append
    - io.BytesIO.readlines
    - time.time
    - winreg.QueryValueEx
    - data.find
    - packed_refs.get
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - socket.gethostname
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - ret._handle_include_directive
    - dulwich.refs._split_ref_line
    - dulwich.objects.Commit.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.config.StackedConfig.get
    - os.getuid
    - value.strip
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - default_user.encode
    - os.makedirs
    - <builtin>.range
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.config.ConfigFile.from_path
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.repo.Repo.get_worktree_config
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.config._find_git_in_win_path
    - io.BytesIO.write
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.add_ref
    - platform.machine
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.objects.valid_hexsha
    - typing.Protocol.add_if_new
    - dulwich.reftable.RefBlock._find_ref_data_end
    - typing.Protocol.set_if_equals
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - name.endswith
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.reftable.RefBlock.decode
    - dulwich.config._is_line_continuation
    - os.path.exists
    - dulwich.reftable.ReftableWriter.__init__
    - paths.append
    - os.environ.get
    - value.hex
    - <builtin>.enumerate
    - ref_files.sort
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.config.StackedConfig.__init__
    - dulwich.config._check_section_name
    - table_data.sort
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - <builtin>.callable
    - dulwich.config._check_variable_name
    - ref_offsets.append
    - <builtin>.len
    - all_refs.pop
    - entry.pw_gecos.split
    - dulwich.reftable.ReftableWriter.delete_ref
    - <builtin>.open
    - line.lstrip
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - value.endswith
    - refs.items
    - dulwich.repo.BaseRepo.get_config
    - contextlib.suppress
    - email.startswith
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - refnames.append
    - dulwich.reftable.ReftableRefsContainer.add_if_new
    - dulwich.repo.Repo.commondir
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - dulwich.config._parse_section_header_line
    - block.refs.append
    - dulwich.refs.DiskRefsContainer.add_if_new
    - f.abort
    - os.fdopen
    - ref_files.append
    - dulwich.repo._get_default_identity
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - default_email.encode
    - io.BytesIO
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - email.endswith
    - identity.split
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - files.append
    - ret.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - dulwich.refs.read_packed_refs
    - dulwich.repo.check_user_identity
    - random.randint
    - included_paths.copy
    - f.write
    - io.BytesIO.getvalue
    - typing.NewType
    - dulwich.refs.check_ref_format
    - dulwich.config._strip_comments
    - line.split
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.repo.get_user_identity
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.config.get_win_system_paths
    - dulwich.refs.RefsContainer.read_ref
    - dulwich.repo.MemoryRepo.get_config
    - winreg.OpenKey
    - line.rstrip
    - user_uc.encode
    - ret.extend
    - dulwich.reftable.decode_varint_from_stream
    - pwd.getpwuid
    - ret._values.setdefault
    - dulwich.repo.BaseRepo.get_config_stack
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - value.lower
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - <builtin>.hasattr
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - paths.extend
    - email_uc.encode
    - <builtin>.bytes
    - <builtin>.bytearray
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.config.ConfigFile.from_file
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised:
    - ValueError
    - CommitError
    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: 1759
    functionName: dulwich.objects.Commit.__init__
    functionSourceFile: dulwich.objects
    functionUses: 30
    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: typing.Protocol.set_if_equals
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.Protocol.add_if_new
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febafdbce80>
    - <ast.Constant object at 0x7febafdbcdf0>
    - <ast.Constant object at 0x7febafdbc1f0>
    - <ast.Constant object at 0x7febafdbcac0>
    argNames:
    - self
    - name
    - ref
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1167
    functionName: dulwich.reftable.ReftableRefsContainer.add_if_new
    functionSourceFile: dulwich.reftable
    functionUses: 3
    functionsReached:
    - name.endswith
    - ref.encode
    - dulwich.reftable.ReftableReader.all_refs
    - <builtin>.getattr
    - dulwich.reftable.ReftableWriter.__init__
    - os.path.exists
    - dulwich.reftable.RefBlock.decode
    - dulwich.reftable.RefRecord.decode
    - time.time
    - refs.get
    - value.hex
    - data.find
    - ref_files.sort
    - <builtin>.enumerate
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - <builtin>.len
    - os.path.join
    - struct.unpack
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - <builtin>.max
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableWriter._write_header
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - struct.pack
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.reftable.ReftableReader._read_header
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - typing.NewType
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaed26d00>
    argNames:
    - cls
    - objects
    - refs
    - format
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2737
    functionName: dulwich.repo.MemoryRepo.init_bare
    functionSourceFile: dulwich.repo
    functionUses: 0
    functionsReached:
    - dulwich.repo.MemoryRepo.__init__
    - dulwich.object_store.MemoryObjectStore.__init__
    - ret._init_files
    - dulwich.refs.DictRefsContainer.__init__
    - <builtin>.super
    - refs.items
    - ret.refs.add_if_new
    - dulwich.repo.BaseRepo.__init__
    - ret.object_store.add_object
    - dulwich.config.ConfigFile.__init__
    - <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: ret.object_store.add_object
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.refs.add_if_new
    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: dulwich.notes
    functionSourceFile: dulwich.notes
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - tree
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 50
    functionName: dulwich.notes.get_note_fanout_level
    functionSourceFile: dulwich.notes
    functionUses: 2
    functionsReached:
    - dulwich.objects.Tree.items
    - <builtin>.list
    - dulwich.notes.get_note_fanout_level.count_notes
    - stat.S_ISDIR
    - stat.S_ISREG
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaec449d0>
    argNames:
    - tree
    - level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 66
    functionName: dulwich.notes.get_note_fanout_level.count_notes
    functionSourceFile: dulwich.notes
    functionUses: 3
    functionsReached:
    - dulwich.objects.Tree.items
    - dulwich._objects.sorted_tree_items
    - dulwich.notes.get_note_fanout_level.count_notes
    - stat.S_ISDIR
    - stat.S_ISREG
    - <builtin>.list
    - <builtin>.isinstance
    - dulwich.objects.Tree.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1463
    functionName: dulwich.objects.Tree.items
    functionSourceFile: dulwich.objects
    functionUses: 16
    functionsReached:
    - dulwich._objects.sorted_tree_items
    - dulwich.objects.Tree.iteritems
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - hexsha
    - fanout_level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: dulwich.notes.split_path_for_fanout
    functionSourceFile: dulwich.notes
    functionUses: 9
    functionsReached:
    - components.append
    - <builtin>.tuple
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: components.append
    functionSourceFile: <builtin>
    functionUses: 10
    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 0x7febaf779fd0>
    argNames:
    - object_sha
    - fanout_level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 123
    functionName: dulwich.notes.get_note_path
    functionSourceFile: dulwich.notes
    functionUses: 8
    functionsReached:
    - components.append
    - dulwich.notes.split_path_for_fanout
    - <builtin>.tuple
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tree
    - object_store
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 140
    functionName: dulwich.notes.NotesTree.__init__
    functionSourceFile: dulwich.notes
    functionUses: 4
    functionsReached:
    - dir_names.append
    - <builtin>.all
    - <builtin>.int
    - <builtin>.len
    - dulwich.objects.Tree.items
    - sample_tree.items
    - <builtin>.list
    - dulwich.notes.NotesTree._detect_fanout_level
    - stat.S_ISDIR
    - stat.S_ISREG
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 151
    functionName: dulwich.notes.NotesTree._detect_fanout_level
    functionSourceFile: dulwich.notes
    functionUses: 7
    functionsReached:
    - dir_names.append
    - <builtin>.all
    - <builtin>.int
    - <builtin>.len
    - dulwich.objects.Tree.items
    - sample_tree.items
    - <builtin>.list
    - stat.S_ISDIR
    - stat.S_ISREG
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dir_names.append
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sample_tree.items
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_fanout_level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 221
    functionName: dulwich.notes.NotesTree._reorganize_tree
    functionSourceFile: dulwich.notes
    functionUses: 2
    functionsReached:
    - notes.append
    - obj.set_raw_string
    - stat.S_ISDIR
    - dulwich.notes.NotesTree.list_notes
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.notes.split_path_for_fanout
    - dulwich.objects.ShaFile.__init__
    - <builtin>.list
    - components.append
    - dulwich.notes.NotesTree._reorganize_tree.update_tree
    - dulwich.notes.NotesTree.list_notes.walk_tree
    - <builtin>.range
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich.notes.get_note_path
    - dulwich.objects.Tree.items
    - path.split
    - typing.NewType
    - stat.S_ISREG
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 561
    functionName: dulwich.notes.NotesTree.list_notes
    functionSourceFile: dulwich.notes
    functionUses: 4
    functionsReached:
    - dulwich.objects.Tree.items
    - <builtin>.list
    - dulwich.notes.NotesTree.list_notes.walk_tree
    - typing.NewType
    - stat.S_ISDIR
    - dulwich.objects.Tree.iteritems
    - stat.S_ISREG
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: notes.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - string
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 668
    functionName: dulwich.objects.ShaFile.from_string
    functionSourceFile: dulwich.objects
    functionUses: 58
    functionsReached:
    - obj.set_raw_string
    - dulwich.objects.ShaFile.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 8
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - tree
    - components
    - blob_sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 254
    functionName: dulwich.notes.NotesTree._reorganize_tree.update_tree
    functionSourceFile: dulwich.notes
    functionUses: 3
    functionsReached:
    - dulwich.objects.Tree.__init__
    - dulwich.notes.NotesTree._reorganize_tree.update_tree
    - <builtin>.len
    - dulwich.objects.Tree.items
    - dulwich.objects.Tree.add
    - <builtin>.super
    - stat.S_ISDIR
    - dulwich.objects.Tree.iteritems
    - <builtin>.list
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - mode
    - hexsha
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1441
    functionName: dulwich.objects.Tree.add
    functionSourceFile: ''
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - tree
    - name
    - mode
    - sha
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 316
    functionName: dulwich.notes.NotesTree._update_tree_entry
    functionSourceFile: dulwich.notes
    functionUses: 0
    functionsReached:
    - dulwich.objects.Tree.__init__
    - tree.items
    - <builtin>.super
    - dulwich.objects.Tree.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tree.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 348
    functionName: dulwich.notes.NotesTree._get_note_sha
    functionSourceFile: dulwich.notes
    functionUses: 4
    functionsReached:
    - components.append
    - dulwich.notes.get_note_path
    - path.split
    - <builtin>.tuple
    - <builtin>.range
    - dulwich.notes.split_path_for_fanout
    - stat.S_ISDIR
    - stat.S_ISREG
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 380
    functionName: dulwich.notes.NotesTree.get_note
    functionSourceFile: dulwich.notes
    functionUses: 1
    functionsReached:
    - components.append
    - dulwich.notes.get_note_path
    - path.split
    - <builtin>.tuple
    - <builtin>.range
    - dulwich.notes.NotesTree._get_note_sha
    - dulwich.notes.split_path_for_fanout
    - stat.S_ISDIR
    - stat.S_ISREG
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - object_sha
    - note_content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 402
    functionName: dulwich.notes.NotesTree.set_note
    functionSourceFile: dulwich.notes
    functionUses: 1
    functionsReached:
    - <builtin>.all
    - notes.append
    - obj.set_raw_string
    - stat.S_ISDIR
    - dulwich.notes.NotesTree.list_notes
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.notes.get_note_fanout_level.count_notes
    - dulwich.notes.NotesTree._reorganize_tree
    - dulwich.notes.split_path_for_fanout
    - dulwich.objects.ShaFile.__init__
    - <builtin>.list
    - components.append
    - dulwich.notes.NotesTree._reorganize_tree.update_tree
    - sample_tree.items
    - dulwich.notes.NotesTree.list_notes.walk_tree
    - <builtin>.range
    - dulwich.notes.get_note_fanout_level
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich.notes.NotesTree.set_note.update_tree
    - dir_names.append
    - <builtin>.int
    - dulwich.notes.get_note_path
    - dulwich.objects.Tree.items
    - path.split
    - dulwich.notes.NotesTree._detect_fanout_level
    - typing.NewType
    - stat.S_ISREG
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 8
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - tree
    - components
    - blob_sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 426
    functionName: dulwich.notes.NotesTree.set_note.update_tree
    functionSourceFile: dulwich.notes
    functionUses: 2
    functionsReached:
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - dulwich.objects.Tree.items
    - dulwich.objects.Tree.add
    - <builtin>.super
    - stat.S_ISDIR
    - dulwich.objects.Tree.iteritems
    - <builtin>.list
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    - dulwich.notes.NotesTree.set_note.update_tree
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 485
    functionName: dulwich.notes.NotesTree.remove_note
    functionSourceFile: dulwich.notes
    functionUses: 1
    functionsReached:
    - <builtin>.all
    - dulwich.notes.NotesTree.remove_note.remove_from_tree
    - stat.S_ISDIR
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.objects.Tree.add
    - dulwich.notes.NotesTree._get_note_sha
    - <builtin>.super
    - dulwich.notes.split_path_for_fanout
    - <builtin>.list
    - components.append
    - sample_tree.items
    - <builtin>.range
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dir_names.append
    - <builtin>.int
    - dulwich.notes.get_note_path
    - dulwich.objects.Tree.items
    - path.split
    - dulwich.notes.NotesTree._detect_fanout_level
    - stat.S_ISREG
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - tree
    - components
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 502
    functionName: dulwich.notes.NotesTree.remove_note.remove_from_tree
    functionSourceFile: dulwich.notes
    functionUses: 2
    functionsReached:
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - dulwich.objects.Tree.items
    - dulwich.notes.NotesTree.remove_note.remove_from_tree
    - dulwich.objects.Tree.add
    - <builtin>.super
    - stat.S_ISDIR
    - dulwich.objects.Tree.iteritems
    - <builtin>.list
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadd54340>
    argNames:
    - tree
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 568
    functionName: dulwich.notes.NotesTree.list_notes.walk_tree
    functionSourceFile: dulwich.notes
    functionUses: 5
    functionsReached:
    - dulwich.objects.Tree.items
    - <builtin>.list
    - dulwich.notes.NotesTree.list_notes.walk_tree
    - typing.NewType
    - stat.S_ISDIR
    - stat.S_ISREG
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - object_store
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 594
    functionName: dulwich.notes.create_notes_tree
    functionSourceFile: dulwich.notes
    functionUses: 1
    functionsReached:
    - dulwich.objects.Tree.__init__
    - object_store.add_object
    - <builtin>.super
    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 0x7febadd4f3a0>
    - <ast.Constant object at 0x7febadd4fa00>
    argNames:
    - self
    - notes_ref
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 623
    functionName: dulwich.notes.Notes.get_notes_ref
    functionSourceFile: dulwich.notes
    functionUses: 4
    functionsReached:
    - config.get
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaef27e80>
    - <ast.Constant object at 0x7febaef27df0>
    argNames:
    - self
    - object_sha
    - notes_ref
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 644
    functionName: dulwich.notes.Notes.get_note
    functionSourceFile: dulwich.notes
    functionUses: 0
    functionsReached:
    - <builtin>.all
    - stat.S_ISDIR
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.notes.NotesTree._get_note_sha
    - dulwich.notes.split_path_for_fanout
    - <builtin>.list
    - components.append
    - sample_tree.items
    - <builtin>.range
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dir_names.append
    - dulwich.notes.NotesTree.get_note
    - <builtin>.int
    - dulwich.notes.get_note_path
    - dulwich.objects.Tree.items
    - path.split
    - config.get
    - typing.NewType
    - dulwich.notes.NotesTree._detect_fanout_level
    - dulwich.notes.NotesTree.__init__
    - stat.S_ISREG
    - dulwich.notes.Notes.get_notes_ref
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febadd3b8e0>
    - <ast.Constant object at 0x7febadd3b760>
    - <ast.Constant object at 0x7febadd3b040>
    - <ast.Constant object at 0x7febadd3b430>
    - <ast.Constant object at 0x7febadd3b580>
    argNames:
    - self
    - object_sha
    - note_content
    - notes_ref
    - author
    - committer
    - message
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 684
    functionName: dulwich.notes.Notes.set_note
    functionSourceFile: dulwich.notes
    functionUses: 0
    functionsReached:
    - <builtin>.all
    - <builtin>.getattr
    - notes.append
    - os.environ.get
    - time.time
    - obj.set_raw_string
    - stat.S_ISDIR
    - dulwich.notes.NotesTree.list_notes
    - dulwich.objects.Tree.__init__
    - dulwich.repo._get_default_identity
    - dulwich.notes.create_notes_tree
    - <builtin>.len
    - socket.gethostname
    - dulwich.objects.ShaFile.from_string
    - entry.pw_gecos.split
    - <builtin>.tuple
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.notes.get_note_fanout_level.count_notes
    - dulwich.notes.NotesTree._reorganize_tree
    - dulwich.notes.split_path_for_fanout
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - <builtin>.list
    - object_store.add_object
    - default_email.encode
    - dulwich.notes.NotesTree.set_note
    - user_uc.encode
    - dulwich.config.StackedConfig.get
    - os.getuid
    - pwd.getpwuid
    - email.endswith
    - components.append
    - dulwich.notes.NotesTree._reorganize_tree.update_tree
    - default_user.encode
    - sample_tree.items
    - dulwich.notes.NotesTree.list_notes.walk_tree
    - <builtin>.range
    - dulwich.objects.Tree.iteritems
    - dulwich.notes.get_note_fanout_level
    - <builtin>.isinstance
    - dulwich.notes.NotesTree.set_note.update_tree
    - email_uc.encode
    - email.startswith
    - dir_names.append
    - backend.get
    - <builtin>.int
    - dulwich.notes.get_note_path
    - dulwich.objects.Tree.items
    - path.split
    - config.get
    - typing.NewType
    - dulwich.notes.NotesTree._detect_fanout_level
    - dulwich.notes.NotesTree.__init__
    - stat.S_ISREG
    - dulwich.notes.Notes.get_notes_ref
    - dulwich._objects.sorted_tree_items
    - dulwich.repo.get_user_identity
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaebf8040>
    - <ast.Constant object at 0x7febaebf8a30>
    - <ast.Constant object at 0x7febaebf8310>
    - <ast.Constant object at 0x7febaebf8850>
    - <ast.Constant object at 0x7febaebf84c0>
    argNames:
    - self
    - object_sha
    - notes_ref
    - author
    - committer
    - message
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 769
    functionName: dulwich.notes.Notes.remove_note
    functionSourceFile: dulwich.notes
    functionUses: 0
    functionsReached:
    - <builtin>.all
    - <builtin>.getattr
    - dulwich.notes.NotesTree.remove_note.remove_from_tree
    - os.environ.get
    - time.time
    - stat.S_ISDIR
    - dulwich.objects.Tree.__init__
    - dulwich.repo._get_default_identity
    - <builtin>.len
    - socket.gethostname
    - <builtin>.tuple
    - entry.pw_gecos.split
    - dulwich.objects.Tree.add
    - dulwich.notes.NotesTree._get_note_sha
    - <builtin>.super
    - dulwich.notes.split_path_for_fanout
    - dulwich.objects.Commit.__init__
    - <builtin>.list
    - default_email.encode
    - user_uc.encode
    - dulwich.config.StackedConfig.get
    - pwd.getpwuid
    - os.getuid
    - email.endswith
    - components.append
    - default_user.encode
    - sample_tree.items
    - <builtin>.range
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - email_uc.encode
    - email.startswith
    - dir_names.append
    - backend.get
    - dulwich.notes.NotesTree.remove_note
    - <builtin>.int
    - dulwich.notes.get_note_path
    - dulwich.objects.Tree.items
    - path.split
    - dulwich.notes.NotesTree._detect_fanout_level
    - config.get
    - typing.NewType
    - dulwich.notes.NotesTree.__init__
    - stat.S_ISREG
    - dulwich.notes.Notes.get_notes_ref
    - dulwich._objects.sorted_tree_items
    - dulwich.repo.get_user_identity
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaff84130>
    - <ast.Constant object at 0x7febaff84760>
    argNames:
    - self
    - notes_ref
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 851
    functionName: dulwich.notes.Notes.list_notes
    functionSourceFile: dulwich.notes
    functionUses: 0
    functionsReached:
    - <builtin>.all
    - stat.S_ISDIR
    - dulwich.notes.NotesTree.list_notes
    - <builtin>.len
    - <builtin>.list
    - sample_tree.items
    - dulwich.notes.NotesTree.list_notes.walk_tree
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dir_names.append
    - <builtin>.int
    - dulwich.objects.Tree.items
    - result.append
    - config.get
    - typing.NewType
    - dulwich.notes.NotesTree._detect_fanout_level
    - dulwich.notes.NotesTree.__init__
    - stat.S_ISREG
    - dulwich.notes.Notes.get_notes_ref
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.index
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - os.sep.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: dulwich.index._encode_varint
    functionSourceFile: dulwich.index
    functionUses: 22
    functionsReached:
    - <builtin>.bytes
    - result.append
    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 0x7febaf044190>
    argNames:
    - data
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: dulwich.index._decode_varint
    functionSourceFile: dulwich.index
    functionUses: 1
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - previous_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 213
    functionName: dulwich.index._compress_path
    functionSourceFile: dulwich.index
    functionUses: 21
    functionsReached:
    - <builtin>.bytes
    - dulwich.index._encode_varint
    - <builtin>.len
    - <builtin>.min
    - result.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - data
    - offset
    - previous_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 243
    functionName: dulwich.index._decompress_path
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.index._decode_varint
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - previous_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 282
    functionName: dulwich.index._decompress_path_from_stream
    functionSourceFile: dulwich.index
    functionUses: 27
    functionsReached:
    - <builtin>.bytes
    - <builtin>.len
    - hashlib.sha1.update
    - dulwich.pack.SHA1Reader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 363
    functionName: dulwich.index.SerializedIndexEntry.stage
    functionSourceFile: dulwich.index
    functionUses: 25
    functionsReached:
    - enum.Enum.__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: enum.Enum.__init__
    functionSourceFile: ''
    functionUses: 35
    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: 371
    functionName: dulwich.index.SerializedIndexEntry.is_sparse_dir
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - stat.S_ISDIR
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - signature
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 399
    functionName: dulwich.index.IndexExtension.from_raw
    functionSourceFile: dulwich.index
    functionUses: 24
    functionsReached:
    - dulwich.index.TreeExtension.from_bytes
    - dulwich.index.UntrackedExtension.from_bytes
    - dulwich.index.SparseDirExtension.from_bytes
    - <builtin>.super
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.index.UntrackedExtension.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 438
    functionName: dulwich.index.TreeExtension.from_bytes
    functionSourceFile: dulwich.index
    functionUses: 25
    functionsReached:
    - <builtin>.super
    - dulwich.index.TreeExtension.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 473
    functionName: dulwich.index.ResolveUndoExtension.from_bytes
    functionSourceFile: dulwich.index
    functionUses: 25
    functionsReached:
    - <builtin>.super
    - dulwich.index.ResolveUndoExtension.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 507
    functionName: dulwich.index.UntrackedExtension.from_bytes
    functionSourceFile: dulwich.index
    functionUses: 25
    functionsReached:
    - <builtin>.super
    - dulwich.index.UntrackedExtension.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 534
    functionName: dulwich.index.SparseDirExtension.from_bytes
    functionSourceFile: dulwich.index
    functionUses: 25
    functionsReached:
    - <builtin>.super
    - dulwich.index.SparseDirExtension.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 420
    functionName: dulwich.index.IndexExtension.to_bytes
    functionSourceFile: dulwich.index
    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
    - entries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 428
    functionName: dulwich.index.TreeExtension.__init__
    functionSourceFile: dulwich.index
    functionUses: 26
    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: 450
    functionName: dulwich.index.TreeExtension.to_bytes
    functionSourceFile: dulwich.index
    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
    - entries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 463
    functionName: dulwich.index.ResolveUndoExtension.__init__
    functionSourceFile: dulwich.index
    functionUses: 26
    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: 485
    functionName: dulwich.index.ResolveUndoExtension.to_bytes
    functionSourceFile: dulwich.index
    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
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 498
    functionName: dulwich.index.UntrackedExtension.__init__
    functionSourceFile: dulwich.index
    functionUses: 26
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 529
    functionName: dulwich.index.SparseDirExtension.__init__
    functionSourceFile: dulwich.index
    functionUses: 27
    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: 545
    functionName: dulwich.index.SparseDirExtension.to_bytes
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - serialized
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 575
    functionName: dulwich.index.IndexEntry.from_serialized
    functionSourceFile: dulwich.index
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - stage
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 598
    functionName: dulwich.index.IndexEntry.serialize
    functionSourceFile: dulwich.index
    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: 626
    functionName: dulwich.index.IndexEntry.stage
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - enum.Enum.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 635
    functionName: dulwich.index.IndexEntry.skip_worktree
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febad9236a0>
    argNames:
    - self
    - skip
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 639
    functionName: dulwich.index.IndexEntry.set_skip_worktree
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 656
    functionName: dulwich.index.IndexEntry.is_sparse_dir
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - name.endswith
    - stat.S_ISDIR
    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 0x7febaef5e2b0>
    - <ast.Constant object at 0x7febaef5e970>
    - <ast.Constant object at 0x7febaef5e070>
    argNames:
    - self
    - ancestor
    - this
    - other
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 686
    functionName: dulwich.index.ConflictedIndexEntry.__init__
    functionSourceFile: dulwich.index
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 708
    functionName: dulwich.index.pathsplit
    functionSourceFile: dulwich.index
    functionUses: 16
    functionsReached:
    - path.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.rsplit
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 725
    functionName: dulwich.index.pathjoin
    functionSourceFile: dulwich.index
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 730
    functionName: dulwich.index.read_cache_time
    functionSourceFile: dulwich.index
    functionUses: 27
    functionsReached:
    - struct.unpack
    - hashlib.sha1.update
    - dulwich.pack.SHA1Reader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - t
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 741
    functionName: dulwich.index.write_cache_time
    functionSourceFile: dulwich.index
    functionUses: 21
    functionsReached:
    - <builtin>.int
    - <builtin>.divmod
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - struct.pack
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.divmod
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaeecad90>
    argNames:
    - f
    - version
    - previous_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 758
    functionName: dulwich.index.read_cache_entry
    functionSourceFile: dulwich.index
    functionUses: 26
    functionsReached:
    - <builtin>.bytes
    - dulwich.file._GitFile.tell
    - dulwich.pack.SHA1Reader.tell
    - struct.unpack
    - <builtin>.len
    - dulwich.index._decompress_path_from_stream
    - dulwich.index.read_cache_time
    - hashlib.sha1.update
    - typing.NewType
    - dulwich.pack.SHA1Reader.read
    - dulwich.objects.sha_to_hex
    - dulwich.file._GitFile.read
    - binascii.hexlify
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 8
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febae391460>
    argNames:
    - f
    - entry
    - version
    - previous_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 816
    functionName: dulwich.index.write_cache_entry
    functionSourceFile: dulwich.index
    functionUses: 20
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.divmod
    - dulwich.index._encode_varint
    - <builtin>.min
    - dulwich.file._GitFile.tell
    - <builtin>.len
    - dulwich.index._compress_path
    - dulwich.objects.hex_to_sha
    - dulwich.index.write_cache_time
    - <builtin>.range
    - struct.pack
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.tell
    - <builtin>.bytes
    - <builtin>.int
    - result.append
    - io.BytesIO.tell
    - typing.NewType
    - binascii.unhexlify
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 874
    functionName: dulwich.index.UnsupportedIndexFormat.__init__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 883
    functionName: dulwich.index.read_index_header
    functionSourceFile: dulwich.index
    functionUses: 26
    functionsReached:
    - struct.unpack
    - hashlib.sha1.update
    - dulwich.pack.SHA1Reader.read
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - UnsupportedIndexFormat
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - extension
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 898
    functionName: dulwich.index.write_index_extension
    functionSourceFile: dulwich.index
    functionUses: 20
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.len
    - extension.to_bytes
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extension.to_bytes
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 911
    functionName: dulwich.index.read_index
    functionSourceFile: dulwich.index
    functionUses: 1
    functionsReached:
    - <builtin>.bytes
    - dulwich.file._GitFile.tell
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.read_index_header
    - <builtin>.len
    - struct.unpack
    - dulwich.index._decompress_path_from_stream
    - dulwich.index.read_cache_time
    - <builtin>.range
    - hashlib.sha1.update
    - typing.NewType
    - dulwich.pack.SHA1Reader.read
    - dulwich.objects.sha_to_hex
    - dulwich.index.read_cache_entry
    - dulwich.file._GitFile.read
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 5
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 921
    functionName: dulwich.index.read_index_dict_with_version
    functionSourceFile: dulwich.index
    functionUses: 23
    functionsReached:
    - <builtin>.all
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.read_cache_entry
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.IndexEntry.from_serialized
    - hashlib.sha1.update
    - dulwich.objects.sha_to_hex
    - dulwich.index.ResolveUndoExtension.__init__
    - ret.setdefault
    - binascii.hexlify
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.file._GitFile.tell
    - dulwich.index.read_index_header
    - <builtin>.len
    - struct.unpack
    - dulwich.index.read_cache_time
    - <builtin>.super
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.file._GitFile.seek
    - dulwich.pack.SHA1Reader.read
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.index.UntrackedExtension.__init__
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.UntrackedExtension.from_bytes
    - <builtin>.range
    - dulwich.index.IndexExtension.from_raw
    - <builtin>.isinstance
    - dulwich.index.TreeExtension.from_bytes
    - <builtin>.bytes
    - dulwich.index._decompress_path_from_stream
    - typing.NewType
    - dulwich.pack.SHA1Reader.seek
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.setdefault
    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: extensions.append
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 990
    functionName: dulwich.index.read_index_dict
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.read_index
    - hashlib.sha1.update
    - dulwich.objects.sha_to_hex
    - ret.setdefault
    - binascii.hexlify
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.file._GitFile.tell
    - dulwich.index.read_index_header
    - <builtin>.len
    - struct.unpack
    - dulwich.index.read_cache_time
    - dulwich.pack.SHA1Reader.read
    - enum.Enum.__init__
    - dulwich.index.SerializedIndexEntry.stage
    - <builtin>.range
    - <builtin>.isinstance
    - <builtin>.bytes
    - dulwich.index._decompress_path_from_stream
    - typing.NewType
    - dulwich.index.read_cache_entry
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1f6880>
    - <ast.Constant object at 0x7febaf1f6f10>
    argNames:
    - f
    - entries
    - version
    - extensions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1018
    functionName: dulwich.index.write_index
    functionSourceFile: dulwich.index
    functionUses: 19
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.divmod
    - dulwich.index._encode_varint
    - <builtin>.min
    - dulwich.file._GitFile.tell
    - <builtin>.len
    - dulwich.index.write_index_extension
    - dulwich.index._compress_path
    - dulwich.index.write_cache_entry
    - dulwich.objects.hex_to_sha
    - dulwich.index.write_cache_time
    - <builtin>.range
    - extension.to_bytes
    - struct.pack
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.tell
    - <builtin>.bytes
    - <builtin>.int
    - result.append
    - io.BytesIO.tell
    - typing.NewType
    - binascii.unhexlify
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaeb7afd0>
    - <ast.Constant object at 0x7febaeb7ac70>
    argNames:
    - f
    - entries
    - version
    - extensions
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1059
    functionName: dulwich.index.write_index_dict
    functionSourceFile: dulwich.index
    functionUses: 18
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.divmod
    - entries_list.append
    - dulwich.index._encode_varint
    - <builtin>.min
    - dulwich.file._GitFile.tell
    - value.serialize
    - <builtin>.len
    - dulwich.index.write_index
    - dulwich.index.write_index_extension
    - dulwich.index._compress_path
    - dulwich.index.write_cache_entry
    - dulwich.objects.hex_to_sha
    - value.other.serialize
    - dulwich.index.write_cache_time
    - <builtin>.range
    - extension.to_bytes
    - struct.pack
    - value.this.serialize
    - <builtin>.sorted
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.tell
    - <builtin>.bytes
    - <builtin>.int
    - result.append
    - io.BytesIO.tell
    - typing.NewType
    - binascii.unhexlify
    - value.ancestor.serialize
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.ancestor.serialize
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entries_list.append
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.this.serialize
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.other.serialize
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.serialize
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - mode
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1091
    functionName: dulwich.index.cleanup_mode
    functionSourceFile: dulwich.index
    functionUses: 58
    functionsReached:
    - dulwich.objects.S_ISGITLINK
    - stat.S_IFMT
    - stat.S_ISDIR
    - stat.S_ISLNK
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stat.S_ISLNK
    functionSourceFile: stat
    functionUses: 80
    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: 1266
    functionName: dulwich.index.Index.clear
    functionSourceFile: ''
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1197
    functionName: dulwich.index.Index.read
    functionSourceFile: dulwich.index
    functionUses: 22
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - <builtin>.all
    - hashlib.sha1
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.IndexEntry.from_serialized
    - os.path.exists
    - dulwich.index.Index.update
    - <builtin>.getattr
    - os.replace
    - os.remove
    - hashlib.sha1.update
    - dulwich.objects.sha_to_hex
    - os.fspath
    - dulwich.index.ResolveUndoExtension.__init__
    - ret.setdefault
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fdopen
    - binascii.hexlify
    - os.fsync
    - dulwich.index.ConflictedIndexEntry.__init__
    - os.open
    - dulwich.index.read_index_dict_with_version
    - dulwich.file._GitFile.tell
    - dulwich.index.read_index_header
    - dulwich.index.SparseDirExtension.__init__
    - <builtin>.len
    - struct.unpack
    - dulwich.index.read_cache_time
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.file._GitFile.seek
    - dulwich.pack.SHA1Reader.read
    - os.close
    - enum.Enum.__init__
    - dulwich.pack.SHA1Reader.__init__
    - dulwich.index.TreeExtension.__init__
    - hashlib.sha1.digest
    - dulwich.index.UntrackedExtension.__init__
    - os.rename
    - <builtin>.open
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.UntrackedExtension.from_bytes
    - dulwich.file.GitFile
    - <builtin>.range
    - dulwich.index.IndexExtension.from_raw
    - <builtin>.isinstance
    - dulwich.index.TreeExtension.from_bytes
    - <builtin>.bytes
    - tempfile.mkstemp
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - entries.items
    - typing.NewType
    - <builtin>.str
    - dulwich.pack.SHA1Reader.seek
    - dulwich.index.read_cache_entry
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1148
    functionName: dulwich.index.Index.path
    functionSourceFile: dulwich.index
    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: 1156
    functionName: dulwich.index.Index.__repr__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1160
    functionName: dulwich.index.Index.write
    functionSourceFile: dulwich.index
    functionUses: 16
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.divmod
    - entries_list.append
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - os.path.exists
    - os.replace
    - <builtin>.min
    - hashlib.sha1
    - os.remove
    - meaningful_extensions.append
    - os.fspath
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fdopen
    - os.fsync
    - os.open
    - dulwich.file._GitFile.tell
    - binascii.unhexlify
    - value.serialize
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - dulwich.index.write_index
    - io.BytesIO.close
    - os.close
    - dulwich.index.write_index_extension
    - dulwich.index._compress_path
    - hashlib.sha1.digest
    - dulwich.index.write_cache_entry
    - os.rename
    - <builtin>.open
    - value.other.serialize
    - dulwich.objects.hex_to_sha
    - dulwich.index.write_cache_time
    - dulwich.file.GitFile
    - <builtin>.range
    - extension.to_bytes
    - struct.pack
    - value.this.serialize
    - <builtin>.sorted
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.__init__
    - ext.to_bytes
    - dulwich.pack.SHA1Writer.tell
    - <builtin>.bytes
    - <builtin>.int
    - io.BytesIO.write
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - result.append
    - dulwich.index.write_index_dict
    - io.BytesIO.tell
    - <builtin>.str
    - typing.NewType
    - dulwich.pack.SHA1Writer.close
    - dulwich.pack.SHA1Writer.write_sha
    - value.ancestor.serialize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ext.to_bytes
    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: meaningful_extensions.append
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1299
    functionName: dulwich.index.Index.update
    functionSourceFile: dulwich.index
    functionUses: 23
    functionsReached:
    - entries.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1213
    functionName: dulwich.index.Index.__len__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.len
    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: 1217
    functionName: dulwich.index.Index.__getitem__
    functionSourceFile: dulwich.index
    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: 1225
    functionName: dulwich.index.Index.__iter__
    functionSourceFile: dulwich.index
    functionUses: 10
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1229
    functionName: dulwich.index.Index.__contains__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1233
    functionName: dulwich.index.Index.get_sha1
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1240
    functionName: dulwich.index.Index.get_mode
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    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: 1247
    functionName: dulwich.index.Index.iterobjects
    functionSourceFile: dulwich.index
    functionUses: 8
    functionsReached:
    - <builtin>.iter
    - dulwich.objects.S_ISGITLINK
    - stat.S_IFMT
    - stat.S_ISDIR
    - dulwich.index.cleanup_mode
    - <builtin>.isinstance
    - dulwich.index.Index.__iter__
    - stat.S_ISLNK
    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: 1255
    functionName: dulwich.index.Index.has_conflicts
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1270
    functionName: dulwich.index.Index.__setitem__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1277
    functionName: dulwich.index.Index.__delitem__
    functionSourceFile: dulwich.index
    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: 1281
    functionName: dulwich.index.Index.iteritems
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1291
    functionName: dulwich.index.Index.items
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1308
    functionName: dulwich.index.Index.paths
    functionSourceFile: dulwich.index
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1a4eb0>
    argNames:
    - self
    - object_store
    - tree
    - want_unchanged
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1316
    functionName: dulwich.index.Index.changes_from_tree
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - dulwich.index.Index.paths
    - dulwich.index.Index.changes_from_tree
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1340
    functionName: dulwich.index.Index.changes_from_tree.lookup_entry
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - stat.S_IFMT
    - <builtin>.hasattr
    - stat.S_ISDIR
    - dulwich.index.cleanup_mode
    - dulwich.objects.S_ISGITLINK
    - stat.S_ISLNK
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1356
    functionName: dulwich.index.Index.commit
    functionSourceFile: dulwich.index
    functionUses: 7
    functionsReached:
    - <builtin>.iter
    - dulwich.index.commit_tree.add_tree
    - stat.S_ISDIR
    - dulwich.objects.Tree.__init__
    - path.rsplit
    - stat.S_IFMT
    - dulwich.objects.Tree.add
    - <builtin>.super
    - object_store.add_object
    - dulwich.index.commit_tree.build_tree
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - dulwich.index.cleanup_mode
    - <builtin>.isinstance
    - stat.S_ISLNK
    - dulwich.index.Index.iterobjects
    - dulwich.objects.S_ISGITLINK
    - dulwich.index.pathjoin
    - dulwich.index.Index.__iter__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - object_store
    - blobs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1571
    functionName: dulwich.index.commit_tree
    functionSourceFile: dulwich.index
    functionUses: 14
    functionsReached:
    - dulwich.objects.Tree.__init__
    - dulwich.index.commit_tree.build_tree
    - dulwich.index.pathsplit
    - path.rsplit
    - dulwich.index.commit_tree.add_tree
    - dulwich.objects.Tree.add
    - <builtin>.super
    - object_store.add_object
    - <builtin>.isinstance
    - dulwich.index.pathjoin
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 1366
    functionName: dulwich.index.Index.is_sparse
    functionSourceFile: dulwich.index
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1374
    functionName: dulwich.index.Index.ensure_full_index
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - dulwich.index.Index.is_sparse
    - sparse_dirs.append
    - <builtin>.list
    - tree.items
    - stat.S_ISDIR
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.index.Index._expand_tree
    - entry.is_sparse_dir
    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: entry.is_sparse_dir
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sparse_dirs.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - prefix
    - tree
    - object_store
    - template_entry
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1413
    functionName: dulwich.index.Index._expand_tree
    functionSourceFile: dulwich.index
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - tree.items
    - dulwich.index.Index._expand_tree
    - stat.S_ISDIR
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - object_store
    - tree_sha
    - sparse_dirs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1460
    functionName: dulwich.index.Index.convert_to_sparse
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - dulwich.index.Index.is_sparse
    - dulwich.index.Index._find_subtree_sha
    - path.split
    - dir_path.rstrip
    - <builtin>.super
    - path.startswith
    - typing.NewType
    - stat.S_ISDIR
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.index.SparseDirExtension.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dir_path.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - tree
    - path
    - object_store
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1529
    functionName: dulwich.index.Index._find_subtree_sha
    functionSourceFile: dulwich.index
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - path.split
    - stat.S_ISDIR
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1584
    functionName: dulwich.index.commit_tree.add_tree
    functionSourceFile: dulwich.index
    functionUses: 15
    functionsReached:
    - <builtin>.isinstance
    - dulwich.index.commit_tree.add_tree
    - path.rsplit
    - dulwich.index.pathsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1600
    functionName: dulwich.index.commit_tree.build_tree
    functionSourceFile: dulwich.index
    functionUses: 15
    functionsReached:
    - dulwich.objects.Tree.__init__
    - dulwich.index.commit_tree.build_tree
    - dulwich.objects.Tree.add
    - <builtin>.super
    - <builtin>.isinstance
    - object_store.add_object
    - dulwich.index.pathjoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - object_store
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1615
    functionName: dulwich.index.commit_index
    functionSourceFile: dulwich.index
    functionUses: 3
    functionsReached:
    - dulwich.objects.Tree.__init__
    - dulwich.index.commit_tree.build_tree
    - path.rsplit
    - dulwich.index.commit_tree
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree.add_tree
    - dulwich.objects.Tree.add
    - <builtin>.super
    - <builtin>.isinstance
    - index.iterobjects
    - object_store.add_object
    - dulwich.index.pathjoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: index.iterobjects
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf74b4f0>
    argNames:
    - names
    - lookup_entry
    - object_store
    - tree
    - want_unchanged
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1627
    functionName: dulwich.index.changes_from_tree
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - subentry.in_path
    - todo.pop
    - dulwich.object_store.iter_tree_contents
    - other_names.remove
    - todo.extend
    - stat.S_ISDIR
    - tree.iteritems
    - <builtin>.isinstance
    - extra.append
    - <builtin>.set
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other_names.remove
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaeb412b0>
    argNames:
    - stat_val
    - hex_sha
    - mode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1677
    functionName: dulwich.index.index_entry_from_stat
    functionSourceFile: dulwich.index
    functionUses: 52
    functionsReached:
    - stat.S_IFMT
    - <builtin>.getattr
    - typing.NewType
    - stat.S_ISDIR
    - dulwich.index.cleanup_mode
    - dulwich.objects.S_ISGITLINK
    - stat.S_ISLNK
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - errno
    - msg
    - filename
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1745
    functionName: dulwich.index.WindowsSymlinkPermissionError.__init__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaff763a0>
    argNames:
    - src
    - dst
    - target_is_directory
    - dir_fd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1753
    functionName: dulwich.index.symlink
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - os.symlink
    linkageType: pythonLinkage
    raised:
    - WindowsSymlinkPermissionError
    returnType: N/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.symlink
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 6
    IfCount: 6
    argCount: 6
    argDefaultValues: []
    argNames:
    - blob
    - mode
    - target_path
    - honor_filemode
    - tree_encoding
    - symlink_fn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1783
    functionName: dulwich.index.build_file_from_blob
    functionSourceFile: dulwich.index
    functionUses: 43
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.index._remove_file_with_readonly_handling
    - <builtin>.len
    - dulwich.objects.git_line
    - headers.append
    - os.unlink
    - <builtin>.list
    - os.lstat
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - dulwich.objects.hex_to_sha
    - contents.decode
    - f.read
    - target_path.decode
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - os.chmod
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - stat.S_ISLNK
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - f.write
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 520
    functionName: dulwich.objects.ShaFile.as_raw_string
    functionSourceFile: dulwich.objects
    functionUses: 60
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2188
    functionName: dulwich.index._remove_file_with_readonly_handling
    functionSourceFile: dulwich.index
    functionUses: 46
    functionsReached:
    - os.chmod
    - 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: contents.decode
    functionSourceFile: <builtin>
    functionUses: 51
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target_path.decode
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1841
    functionName: dulwich.index._normalize_path_element_default
    functionSourceFile: dulwich.index
    functionUses: 43
    functionsReached:
    - element.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: element.lower
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1846
    functionName: dulwich.index._normalize_path_element_ntfs
    functionSourceFile: dulwich.index
    functionUses: 43
    functionsReached:
    - element.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: element.rstrip
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1851
    functionName: dulwich.index._normalize_path_element_hfs
    functionSourceFile: dulwich.index
    functionUses: 43
    functionsReached:
    - unicodedata.normalize
    - element.decode
    - <builtin>.ord
    - normalized.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: element.decode
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unicodedata.normalize
    functionSourceFile: unicodedata
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalized.lower
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1865
    functionName: dulwich.index.get_path_element_normalizer
    functionSourceFile: dulwich.index
    functionUses: 31
    functionsReached:
    - config.get_boolean
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.get_boolean
    functionSourceFile: <builtin>
    functionUses: 70
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1885
    functionName: dulwich.index.validate_path_element_default
    functionSourceFile: dulwich.index
    functionUses: 40
    functionsReached:
    - dulwich.index._normalize_path_element_default
    - element.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1897
    functionName: dulwich.index.validate_path_element_ntfs
    functionSourceFile: dulwich.index
    functionUses: 40
    functionsReached:
    - dulwich.index._normalize_path_element_ntfs
    - element.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - element
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1935
    functionName: dulwich.index.validate_path_element_hfs
    functionSourceFile: dulwich.index
    functionUses: 40
    functionsReached:
    - unicodedata.normalize
    - normalized.lower
    - <builtin>.ord
    - element.decode
    - dulwich.index._normalize_path_element_hfs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7febaf8d01f0>
    argNames:
    - path
    - element_validator
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1958
    functionName: dulwich.index.validate_path
    functionSourceFile: dulwich.index
    functionUses: 39
    functionsReached:
    - unicodedata.normalize
    - normalized.lower
    - path.split
    - dulwich.index.validate_path_element_default
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index.validate_path_element_ntfs
    - element.lower
    - element.rstrip
    - element.decode
    - dulwich.index._normalize_path_element_default
    - dulwich.index._normalize_path_element_hfs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febadf337c0>
    - <ast.Name object at 0x7febadf334c0>
    - <ast.Constant object at 0x7febadf33b20>
    - <ast.Constant object at 0x7febadf33610>
    - <ast.Constant object at 0x7febadf33e50>
    argNames:
    - root_path
    - index_path
    - object_store
    - tree_id
    - honor_filemode
    - validate_path_element
    - symlink_fn
    - blob_normalizer
    - tree_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1971
    functionName: dulwich.index.build_index_from_tree
    functionSourceFile: dulwich.index
    functionUses: 11
    functionsReached:
    - filter_driver.smudge
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.validate_path_element_default
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - hashlib.sha1.update
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.objects.format_time_entry
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.index.write_index
    - os.close
    - os.unlink
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - value.this.serialize
    - dulwich.index.cleanup_mode
    - <builtin>.sorted
    - <builtin>.any
    - ext.to_bytes
    - attributes.get
    - dulwich.objects.ShaFile._serialize
    - dulwich.pack.SHA1Writer.tell
    - io.BytesIO.write
    - dulwich.pack.SHA1Reader.check_sha
    - mergetag.as_raw_string
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - dulwich.index.Index.clear
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - dulwich.pack.SHA1Writer.write
    - filter_name.decode
    - os.path.exists
    - todo.extend
    - dulwich.index.Index.update
    - os.replace
    - os.mkdir
    - os.remove
    - dulwich.objects.ShaFile.as_raw_chunks
    - meaningful_extensions.append
    - element.lower
    - os.fspath
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.len
    - threading.Lock
    - sep_corrected_path.decode
    - dulwich.index.ResolveUndoExtension.from_bytes
    - enum.Enum.__init__
    - <builtin>.list
    - dulwich.index.TreeExtension.__init__
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.index.write_cache_entry
    - <builtin>.open
    - normalized.lower
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - dulwich.pack.SHA1Writer.write_sha
    - element.decode
    - dulwich.index.read_cache_entry
    - <builtin>.reversed
    - value.ancestor.serialize
    - os.fsencode
    - typing.NamedTuple.__init__
    - <builtin>.all
    - entries_list.append
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.index._normalize_path_element_default
    - tree.iteritems
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - extra.append
    - dulwich.pack.SHA1Reader.__init__
    - <builtin>.set
    - subprocess.run
    - os.rename
    - subentry.in_path
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - contents.decode
    - target_path.decode
    - f.read
    - struct.pack
    - <builtin>.isinstance
    - tree_path.replace
    - dulwich.pack.SHA1Writer.__init__
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - dulwich.index.TreeExtension.from_bytes
    - clean_cmd_raw.decode
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - path.split
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - f.write
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - value.split
    - binascii.unhexlify
    - dulwich.pack.SHA1Reader.seek
    - dulwich._objects.sorted_tree_items
    - dulwich.index.SparseDirExtension.__init__
    - todo.pop
    - headers.extend
    - <builtin>.divmod
    - unicodedata.normalize
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - st.__class__
    - os.kill
    - dulwich.index.Index.read
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - dulwich.objects.Tree._serialize
    - struct.unpack
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - headers.append
    - dulwich.pack.SHA1Reader.read
    - dulwich.filters.CompositeFilterDriver.smudge
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - value.lower
    - dulwich.file.GitFile
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index.IndexExtension.from_raw
    - dulwich.objects.Commit._serialize
    - os.chmod
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.objects.Blob._serialize
    - entries.items
    - dulwich.pack.SHA1Writer.close
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.file._GitFile.read
    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 0x7febadd58370>
    argNames:
    - root_path
    - tree_path
    - tree_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3008
    functionName: dulwich.index._tree_to_fs_path
    functionSourceFile: dulwich.index
    functionUses: 55
    functionsReached:
    - os.fsencode
    - sep_corrected_path.decode
    - os.path.join
    - <builtin>.isinstance
    - tree_path.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: st.__class__
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf791880>
    argNames:
    - fs_path
    - mode
    - tree_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2065
    functionName: dulwich.index.blob_from_path_and_mode
    functionSourceFile: dulwich.index
    functionUses: 28
    functionsReached:
    - <builtin>.open
    - os.readlink
    - dulwich.objects.Blob.__init__
    - f.read
    - <builtin>.super
    - os.fsdecode
    - <builtin>.isinstance
    - stat.S_ISLNK
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.readlink
    functionSourceFile: os
    functionUses: 59
    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 0x7febaf216c10>
    argNames:
    - fs_path
    - st
    - tree_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2090
    functionName: dulwich.index.blob_from_path_and_stat
    functionSourceFile: dulwich.index
    functionUses: 27
    functionsReached:
    - <builtin>.open
    - dulwich.index.blob_from_path_and_mode
    - os.readlink
    - dulwich.objects.Blob.__init__
    - f.read
    - <builtin>.super
    - os.fsdecode
    - <builtin>.isinstance
    - stat.S_ISLNK
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2104
    functionName: dulwich.index.read_submodule_head
    functionSourceFile: dulwich.index
    functionUses: 27
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - tree_path
    - entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2128
    functionName: dulwich.index._has_directory_changed
    functionSourceFile: dulwich.index
    functionUses: 18
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.sep.encode
    functionSourceFile: os
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - full_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2156
    functionName: dulwich.index._ensure_parent_dir_exists
    functionSourceFile: dulwich.index
    functionUses: 31
    functionsReached:
    - os.makedirs
    - os.path.dirname
    - os.path.exists
    - os.path.isdir
    - parents_to_check.insert
    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: parents_to_check.insert
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - stop_at
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2205
    functionName: dulwich.index._remove_empty_parents
    functionSourceFile: dulwich.index
    functionUses: 31
    functionsReached:
    - os.path.dirname
    - os.rmdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - full_path
    - repo_object_store
    - entry_sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2222
    functionName: dulwich.index._check_symlink_matches
    functionSourceFile: dulwich.index
    functionUses: 31
    functionsReached:
    - os.readlink
    - <builtin>.isinstance
    - blob_obj.as_raw_string
    - current_target.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blob_obj.as_raw_string
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_target.encode
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febaeda35e0>
    - <ast.Constant object at 0x7febaeda3070>
    argNames:
    - repo_object_store
    - full_path
    - entry_sha
    - entry_mode
    - current_stat
    - honor_filemode
    - blob_normalizer
    - tree_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2246
    functionName: dulwich.index._check_file_matches
    functionSourceFile: dulwich.index
    functionUses: 31
    functionsReached:
    - <builtin>.open
    - blob_normalizer.checkout_normalize
    - blob_obj.raw_length
    - normalized_blob.as_raw_string
    - stat.S_IMODE
    - f.read
    - blob_obj.as_raw_string
    - stat.S_ISREG
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stat.S_IMODE
    functionSourceFile: stat
    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: blob_obj.raw_length
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blob_normalizer.checkout_normalize
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalized_blob.as_raw_string
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - repo
    - path
    - full_path
    - current_stat
    - entry
    - index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 2312
    functionName: dulwich.index._transition_to_submodule
    functionSourceFile: dulwich.index
    functionUses: 30
    functionsReached:
    - <builtin>.getattr
    - os.path.exists
    - stat.S_ISDIR
    - dulwich.index._remove_file_with_readonly_handling
    - stat.S_IFMT
    - os.path.join
    - os.unlink
    - os.lstat
    - repo.path.encode
    - <builtin>.open
    - os.makedirs
    - dulwich.index.cleanup_mode
    - <builtin>.isinstance
    - os.chmod
    - stat.S_ISLNK
    - dulwich.index.index_entry_from_stat
    - dulwich.submodule.ensure_submodule_placeholder
    - f.write
    - typing.NewType
    - dulwich.objects.S_ISGITLINK
    - submodule_path.count
    - submodule_path.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - submodule_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: dulwich.submodule.ensure_submodule_placeholder
    functionSourceFile: dulwich.submodule
    functionUses: 31
    functionsReached:
    - <builtin>.open
    - os.path.exists
    - os.path.join
    - os.makedirs
    - f.write
    - <builtin>.isinstance
    - submodule_path.count
    - repo.path.encode
    - submodule_path.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 5
    IfCount: 9
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5b2100>
    argNames:
    - object_store
    - path
    - full_path
    - current_stat
    - entry
    - index
    - honor_filemode
    - symlink_fn
    - blob_normalizer
    - tree_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2337
    functionName: dulwich.index._transition_to_file
    functionSourceFile: dulwich.index
    functionUses: 30
    functionsReached:
    - blob_normalizer.checkout_normalize
    - headers.extend
    - current_target.encode
    - <builtin>.getattr
    - os.path.exists
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - stat.S_ISDIR
    - dulwich.objects.format_time_entry
    - binascii.unhexlify
    - dulwich.index._check_file_matches
    - dulwich.objects.Tree._serialize
    - dulwich.index._remove_file_with_readonly_handling
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.git_line
    - headers.append
    - shutil.rmtree
    - parents_to_check.insert
    - blob_obj.as_raw_string
    - os.rmdir
    - os.unlink
    - <builtin>.list
    - os.lstat
    - <builtin>.set
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - dulwich.objects.hex_to_sha
    - dulwich.index._ensure_parent_dir_exists
    - blob_obj.raw_length
    - dulwich.objects.S_ISGITLINK
    - contents.decode
    - os.makedirs
    - os.path.dirname
    - stat.S_IMODE
    - f.read
    - target_path.decode
    - dulwich.objects.serialize_tree
    - dulwich.index.cleanup_mode
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - os.chmod
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - stat.S_ISLNK
    - dulwich.index.index_entry_from_stat
    - dulwich.objects.ShaFile._serialize
    - os.listdir
    - normalized_blob.as_raw_string
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - f.write
    - mergetag.as_raw_string
    - typing.NewType
    - dulwich.index.build_file_from_blob
    - stat.S_ISREG
    - value.split
    - os.readlink
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised:
    - IsADirectoryError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 5
    argDefaultValues: []
    argNames:
    - repo
    - path
    - full_path
    - current_stat
    - index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2432
    functionName: dulwich.index._transition_to_absent
    functionSourceFile: dulwich.index
    functionUses: 30
    functionsReached:
    - os.listdir
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.dirname
    - shutil.rmtree
    - <builtin>.isinstance
    - stat.S_ISDIR
    - os.rmdir
    - os.unlink
    - dulwich.index._remove_empty_parents
    - os.chmod
    - repo.path.encode
    - <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: repo.path.encode
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - changes
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2470
    functionName: dulwich.index.detect_case_only_renames
    functionSourceFile: dulwich.index
    functionUses: 30
    functionsReached:
    - unicodedata.normalize
    - element.lower
    - case_only_renames.add
    - dulwich.index._normalize_path_element_default
    - result.extend
    - logging.warning
    - dulwich.index.detect_case_only_renames.normalize_path
    - old_paths_normalized.items
    - <builtin>.set
    - config.get_boolean
    - normalized.lower
    - <builtin>.ord
    - new_rename_changes.append
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index._normalize_path_element_hfs
    - dulwich.index.get_path_element_normalizer
    - path.split
    - element.rstrip
    - element.decode
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2506
    functionName: dulwich.index.detect_case_only_renames.normalize_path
    functionSourceFile: dulwich.index
    functionUses: 31
    functionsReached:
    - unicodedata.normalize
    - normalized.lower
    - path.split
    - <builtin>.ord
    - dulwich.index._normalize_path_element_ntfs
    - element.lower
    - element.rstrip
    - element.decode
    - dulwich.index._normalize_path_element_default
    - dulwich.index._normalize_path_element_hfs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: old_paths_normalized.items
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_rename_changes.append
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: case_only_renames.add
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 28
    ICount: 6
    IfCount: 19
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febaf510430>
    - <ast.Constant object at 0x7febaf510fd0>
    - <ast.Constant object at 0x7febaf510c70>
    - <ast.Constant object at 0x7febaf510a90>
    - <ast.Constant object at 0x7febaf5103d0>
    - <ast.Constant object at 0x7febaf510e50>
    - <ast.Constant object at 0x7febaf510700>
    argNames:
    - repo
    - old_tree_id
    - new_tree_id
    - change_iterator
    - honor_filemode
    - validate_path_element
    - symlink_fn
    - force_remove_untracked
    - blob_normalizer
    - tree_encoding
    - allow_overwrite_modified
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2597
    functionName: dulwich.index.update_working_tree
    functionSourceFile: dulwich.index
    functionUses: 29
    functionsReached:
    - dulwich.index.validate_path_element_default
    - dulwich.index.validate_path_element_ntfs
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - parents_to_check.insert
    - os.unlink
    - repo.path.encode
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - dulwich.index.cleanup_mode
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - mergetag.as_raw_string
    - stat.S_ISREG
    - submodule_path.count
    - submodule_path.encode
    - os.path.exists
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - case_only_renames.add
    - result.extend
    - logging.warning
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - dulwich.index.detect_case_only_renames.normalize_path
    - os.rmdir
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - normalized.lower
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.index.index_entry_from_stat
    - os.listdir
    - repo.open_index
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - element.decode
    - platform.system
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - path.startswith
    - stat.S_ISDIR
    - dulwich.index._normalize_path_element_default
    - dulwich.index._tree_to_fs_path
    - dulwich.index.validate_path
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - blob_obj.raw_length
    - contents.decode
    - f.read
    - target_path.decode
    - <builtin>.isinstance
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - normalized_blob.as_raw_string
    - path.split
    - f.write
    - typing.NewType
    - dulwich.index._remove_empty_parents
    - value.split
    - os.readlink
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - index.write
    - headers.extend
    - current_target.encode
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - headers.append
    - old_paths_normalized.items
    - os.lstat
    - dulwich.objects.S_ISGITLINK
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.submodule.ensure_submodule_placeholder
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - OSError
    - WorkingTreeModifiedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.open_index
    functionSourceFile: <builtin>
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.system
    functionSourceFile: platform
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.get_config
    functionSourceFile: <builtin>
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: paths_becoming_dirs.add
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: index.write
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - st
    - entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2849
    functionName: dulwich.index._stat_matches_entry
    functionSourceFile: dulwich.index
    functionUses: 18
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf863340>
    argNames:
    - tree_path
    - entry
    - root_path
    - filter_blob_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2890
    functionName: dulwich.index._check_entry_for_changes
    functionSourceFile: dulwich.index
    functionUses: 17
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadd4c7f0>
    - <ast.Constant object at 0x7febadd4c070>
    argNames:
    - index
    - root_path
    - filter_blob_callback
    - preload_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 2944
    functionName: dulwich.index.get_unstaged_changes
    functionSourceFile: dulwich.index
    functionUses: 16
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - future.result
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - multiprocessing.cpu_count
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - executor.submit
    - index.iteritems
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - <builtin>.list
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - os.readlink
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: index.iteritems
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: multiprocessing.cpu_count
    functionSourceFile: multiprocessing
    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: concurrent.futures.ThreadPoolExecutor
    functionSourceFile: concurrent
    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: executor.submit
    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: future.result
    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: tree_path.replace
    functionSourceFile: <builtin>
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sep_corrected_path.decode
    functionSourceFile: <builtin>
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadd587c0>
    argNames:
    - fs_path
    - tree_encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3039
    functionName: dulwich.index._fs_to_tree_path
    functionSourceFile: dulwich.index
    functionUses: 7
    functionsReached:
    - os.fsencode
    - fs_path_bytes.replace
    - os.fsdecode
    - <builtin>.isinstance
    - fs_path_str.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fs_path_str.encode
    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: fs_path_bytes.replace
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - st
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3070
    functionName: dulwich.index.index_entry_from_directory
    functionSourceFile: dulwich.index
    functionUses: 7
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - stat.S_IFMT
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febade978b0>
    argNames:
    - path
    - object_store
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3090
    functionName: dulwich.index.index_entry_from_path
    functionSourceFile: dulwich.index
    functionUses: 4
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - object_store.add_object
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - dulwich.index.index_entry_from_directory
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae651760>
    argNames:
    - paths
    - root_path
    - object_store
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 3119
    functionName: dulwich.index.iter_fresh_entries
    functionSourceFile: dulwich.index
    functionUses: 3
    functionsReached:
    - dulwich.index.index_entry_from_path
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - <builtin>.super
    - object_store.add_object
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index.index_entry_from_directory
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - os.readlink
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febae651880>
    - <ast.Constant object at 0x7febae651af0>
    argNames:
    - paths
    - root_path
    - include_deleted
    - object_store
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 3141
    functionName: dulwich.index.iter_fresh_objects
    functionSourceFile: dulwich.index
    functionUses: 1
    functionsReached:
    - dulwich.index.index_entry_from_path
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - stat.S_IFMT
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - <builtin>.super
    - object_store.add_object
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index.index_entry_from_directory
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - os.readlink
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.index.iter_fresh_entries
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - index
    - root_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 3165
    functionName: dulwich.index.refresh_index
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - dulwich.index.index_entry_from_path
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - <builtin>.super
    - object_store.add_object
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index.index_entry_from_directory
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - os.readlink
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.index.iter_fresh_entries
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3187
    functionName: dulwich.index.locked_index.__init__
    functionSourceFile: dulwich.index
    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: 7
    functionLinenumber: 3191
    functionName: dulwich.index.locked_index.__enter__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - <builtin>.all
    - hashlib.sha1
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.Index.update
    - os.path.exists
    - <builtin>.getattr
    - os.replace
    - os.remove
    - hashlib.sha1.update
    - dulwich.index.Index.read
    - os.fspath
    - dulwich.objects.sha_to_hex
    - dulwich.index.ResolveUndoExtension.__init__
    - ret.setdefault
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fdopen
    - binascii.hexlify
    - os.fsync
    - dulwich.index.ConflictedIndexEntry.__init__
    - os.open
    - dulwich.index.read_index_dict_with_version
    - dulwich.file._GitFile.tell
    - dulwich.index.read_index_header
    - dulwich.index.Index.__init__
    - <builtin>.len
    - struct.unpack
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.index.read_cache_time
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.file._GitFile.seek
    - dulwich.pack.SHA1Reader.read
    - os.close
    - enum.Enum.__init__
    - dulwich.pack.SHA1Reader.__init__
    - dulwich.index.TreeExtension.__init__
    - hashlib.sha1.digest
    - dulwich.index.UntrackedExtension.__init__
    - os.rename
    - <builtin>.open
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.UntrackedExtension.from_bytes
    - dulwich.file.GitFile
    - <builtin>.range
    - dulwich.index.IndexExtension.from_raw
    - <builtin>.isinstance
    - dulwich.index.TreeExtension.from_bytes
    - <builtin>.bytes
    - tempfile.mkstemp
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - entries.items
    - typing.NewType
    - <builtin>.str
    - dulwich.index.Index.clear
    - dulwich.pack.SHA1Reader.seek
    - dulwich.index.read_cache_entry
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 3198
    functionName: dulwich.index.locked_index.__exit__
    functionSourceFile: dulwich.index
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - <builtin>.divmod
    - entries_list.append
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - os.path.exists
    - os.replace
    - <builtin>.min
    - hashlib.sha1
    - os.remove
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fsync
    - dulwich.file._GitFile.tell
    - binascii.unhexlify
    - value.serialize
    - <builtin>.len
    - dulwich.index.write_index
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - os.close
    - dulwich.index._compress_path
    - hashlib.sha1.digest
    - dulwich.index.write_cache_entry
    - os.rename
    - dulwich.objects.hex_to_sha
    - value.other.serialize
    - dulwich.index.write_cache_time
    - <builtin>.range
    - extension.to_bytes
    - struct.pack
    - value.this.serialize
    - <builtin>.sorted
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.pack.SHA1Writer.tell
    - <builtin>.bytes
    - <builtin>.int
    - io.BytesIO.write
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - result.append
    - dulwich.index.write_index_dict
    - io.BytesIO.tell
    - <builtin>.str
    - typing.NewType
    - dulwich.pack.SHA1Writer.close
    - dulwich.pack.SHA1Writer.write_sha
    - value.ancestor.serialize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.objects
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - replace_me
    - typing.NewType
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 168
    functionName: dulwich.objects._decompress
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - dcomp.flush
    - zlib.decompressobj
    - dcomp.decompress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dcomp.decompress
    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: dcomp.flush
    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: binascii.hexlify
    functionSourceFile: binascii
    functionUses: 82
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.decode
    functionSourceFile: typing
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.encode
    functionSourceFile: typing
    functionUses: 109
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 243
    functionName: dulwich.objects.filename_to_hex
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - dulwich.objects.hex_to_sha
    - filename.rsplit
    - binascii.unhexlify
    - hex_str.encode
    - <builtin>.len
    - hex_bytes.decode
    - typing.NewType
    - <builtin>.isinstance
    - os.path.sep.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filename.rsplit
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hex_str.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.sep.encode
    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: hex_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5a5f10>
    argNames:
    - name
    - docstring
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: dulwich.objects.serializable_property
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - obj
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 279
    functionName: dulwich.objects.serializable_property.set
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 289
    functionName: dulwich.objects.serializable_property.get
    functionSourceFile: dulwich.objects
    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: 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: _TYPE_MAP.get
    functionSourceFile: <builtin>
    functionUses: 73
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - identity
    - error_msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 327
    functionName: dulwich.objects.check_identity
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - identity.find
    - <builtin>.all
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: identity.find
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 353
    functionName: dulwich.objects._path_to_bytes
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - path.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - time_seconds
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 360
    functionName: dulwich.objects.check_time
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hexsha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 384
    functionName: dulwich.objects.FixedSha.__init__
    functionSourceFile: dulwich.objects
    functionUses: 5
    functionsReached:
    - dulwich.objects.hex_to_sha
    - binascii.unhexlify
    - <builtin>.len
    - hexsha.encode
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hexsha.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 397
    functionName: dulwich.objects.FixedSha.digest
    functionSourceFile: dulwich.objects
    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: 401
    functionName: dulwich.objects.FixedSha.hexdigest
    functionSourceFile: dulwich.objects
    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:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 426
    functionName: dulwich.objects.is_commit
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 430
    functionName: dulwich.objects.is_tree
    functionSourceFile: dulwich.objects
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 434
    functionName: dulwich.objects.is_blob
    functionSourceFile: dulwich.objects
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 438
    functionName: dulwich.objects.is_tag
    functionSourceFile: dulwich.objects
    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:
    - magic
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 455
    functionName: dulwich.objects.ShaFile._parse_legacy_object_header
    functionSourceFile: dulwich.objects
    functionUses: 3
    functionsReached:
    - <builtin>.int
    - decomp.decompress
    - dulwich.objects.object_class
    - <builtin>.len
    - zlib.decompressobj
    - header.find
    - f.read
    - _TYPE_MAP.get
    - header.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: decomp.decompress
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.find
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.split
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - map
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 483
    functionName: dulwich.objects.ShaFile._parse_legacy_object
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - dulwich.objects.Commit._deserialize
    - dulwich._objects.parse_tree
    - dulwich.objects._decompress
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - io.BytesIO.read
    - value.index
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.ShaFile.set_raw_chunks
    - hexsha.encode
    - dulwich.objects.parse_time_entry
    - dcomp.flush
    - _TYPE_MAP.get
    - value.rindex
    - <builtin>.abs
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - io.BytesIO
    - dulwich.objects.Blob._deserialize
    - dulwich.objects.hex_to_sha
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects.object_class
    - dulwich.objects._parse_message
    - value.endswith
    - dulwich.objects.Tag._deserialize
    - dulwich.objects.ShaFile.set_raw_string
    - io.BytesIO.startswith
    - <builtin>.isinstance
    - dulwich.objects.Tree._deserialize
    - <builtin>.int
    - rest.rsplit
    - dulwich.objects.FixedSha.__init__
    - typing.NewType
    - dcomp.decompress
    - binascii.unhexlify
    - text.find
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.find
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad91cf70>
    argNames:
    - self
    - text
    - sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 539
    functionName: dulwich.objects.ShaFile.set_raw_string
    functionSourceFile: dulwich.objects
    functionUses: 3
    functionsReached:
    - dulwich.objects.Commit._deserialize
    - dulwich._objects.parse_tree
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - io.BytesIO.read
    - value.index
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.ShaFile.set_raw_chunks
    - hexsha.encode
    - dulwich.objects.parse_time_entry
    - _TYPE_MAP.get
    - value.rindex
    - <builtin>.abs
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - io.BytesIO
    - dulwich.objects.Blob._deserialize
    - dulwich.objects.hex_to_sha
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects.object_class
    - dulwich.objects._parse_message
    - value.endswith
    - dulwich.objects.Tag._deserialize
    - io.BytesIO.startswith
    - <builtin>.isinstance
    - dulwich.objects.Tree._deserialize
    - <builtin>.int
    - rest.rsplit
    - dulwich.objects.FixedSha.__init__
    - typing.NewType
    - binascii.unhexlify
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaefed790>
    argNames:
    - self
    - compression_level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 491
    functionName: dulwich.objects.ShaFile.as_legacy_object_chunks
    functionSourceFile: dulwich.objects
    functionUses: 1
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - compobj.flush
    - compobj.compress
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - dulwich.objects.ShaFile.raw_length
    - _TYPE_MAP.get
    - <builtin>.list
    - <builtin>.sum
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.ShaFile._header
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects.object_header
    - zlib.compressobj
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - <builtin>.str
    - typing.NewType
    - value.split
    - <builtin>.map
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 709
    functionName: dulwich.objects.ShaFile._header
    functionSourceFile: dulwich.objects
    functionUses: 4
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - dulwich.objects.ShaFile.raw_length
    - _TYPE_MAP.get
    - <builtin>.list
    - <builtin>.sum
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects.object_header
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - <builtin>.str
    - typing.NewType
    - <builtin>.map
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compobj.compress
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 508
    functionName: dulwich.objects.ShaFile.as_raw_chunks
    functionSourceFile: dulwich.objects
    functionUses: 68
    functionsReached:
    - headers.extend
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compobj.flush
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaefed490>
    argNames:
    - self
    - compression_level
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 502
    functionName: dulwich.objects.ShaFile.as_legacy_object
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.ShaFile.as_legacy_object_chunks
    - dulwich.objects.format_time_entry
    - compobj.flush
    - compobj.compress
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - dulwich.objects.ShaFile.raw_length
    - _TYPE_MAP.get
    - <builtin>.list
    - <builtin>.sum
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.ShaFile._header
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects.object_header
    - zlib.compressobj
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - <builtin>.str
    - typing.NewType
    - value.split
    - <builtin>.map
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 612
    functionName: dulwich.objects.ShaFile._serialize
    functionSourceFile: ''
    functionUses: 69
    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: 3
    functionLinenumber: 1517
    functionName: dulwich.objects.Tree._serialize
    functionSourceFile: dulwich.objects
    functionUses: 69
    functionsReached:
    - dulwich.objects.hex_to_sha
    - binascii.unhexlify
    - <builtin>.len
    - dulwich.objects.serialize_tree
    - typing.NewType
    - dulwich.objects.Tree.iteritems
    - <builtin>.list
    - <builtin>.isinstance
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1992
    functionName: dulwich.objects.Commit._serialize
    functionSourceFile: dulwich.objects
    functionUses: 69
    functionsReached:
    - headers.extend
    - dulwich.objects.git_line
    - dulwich.objects._format_message
    - headers.append
    - mergetag.as_raw_string
    - value.split
    - <builtin>.list
    - <builtin>.isinstance
    - dulwich.objects.format_time_entry
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 796
    functionName: dulwich.objects.Blob._serialize
    functionSourceFile: ''
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1026
    functionName: dulwich.objects.Tag._serialize
    functionSourceFile: dulwich.objects
    functionUses: 69
    functionsReached:
    - dulwich.objects.git_line
    - dulwich.objects._format_message
    - headers.append
    - value.split
    - <builtin>.list
    - dulwich.objects.format_time_entry
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 527
    functionName: dulwich.objects.ShaFile.__bytes__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 531
    functionName: dulwich.objects.ShaFile.__hash__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.hash
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 535
    functionName: dulwich.objects.ShaFile.as_pretty_string
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad91cf40>
    argNames:
    - self
    - chunks
    - sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 547
    functionName: dulwich.objects.ShaFile.set_raw_chunks
    functionSourceFile: dulwich.objects
    functionUses: 4
    functionsReached:
    - dulwich.objects.Commit._deserialize
    - dulwich._objects.parse_tree
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - io.BytesIO.read
    - value.index
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - hexsha.encode
    - dulwich.objects.parse_time_entry
    - _TYPE_MAP.get
    - value.rindex
    - <builtin>.abs
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - io.BytesIO
    - dulwich.objects.Blob._deserialize
    - dulwich.objects.hex_to_sha
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects.object_class
    - dulwich.objects._parse_message
    - value.endswith
    - dulwich.objects.Tag._deserialize
    - io.BytesIO.startswith
    - <builtin>.isinstance
    - dulwich.objects.Tree._deserialize
    - <builtin>.int
    - rest.rsplit
    - dulwich.objects.FixedSha.__init__
    - typing.NewType
    - binascii.unhexlify
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1470
    functionName: dulwich.objects.Tree._deserialize
    functionSourceFile: dulwich.objects
    functionUses: 6
    functionsReached:
    - dulwich._objects.parse_tree
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 799
    functionName: dulwich.objects.Blob._deserialize
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 3
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1788
    functionName: dulwich.objects.Commit._deserialize
    functionSourceFile: dulwich.objects
    functionUses: 6
    functionsReached:
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - io.BytesIO.read
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.parse_time_entry
    - value.rindex
    - <builtin>.abs
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - io.BytesIO
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects._parse_message
    - value.endswith
    - io.BytesIO.startswith
    - <builtin>.isinstance
    - <builtin>.int
    - rest.rsplit
    - typing.NewType
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1060
    functionName: dulwich.objects.Tag._deserialize
    functionSourceFile: dulwich.objects
    functionUses: 6
    functionsReached:
    - <builtin>.int
    - value.index
    - dulwich.objects._parse_message._strip_last_newline
    - io.BytesIO.read
    - dulwich.objects.object_class
    - rest.rsplit
    - dulwich.objects._parse_message
    - value.endswith
    - dulwich.objects.parse_time_entry
    - dulwich.objects.parse_timezone
    - _TYPE_MAP.get
    - value.rindex
    - io.BytesIO.close
    - io.BytesIO.startswith
    - <builtin>.abs
    - <builtin>.isinstance
    - io.BytesIO
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - magic
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 560
    functionName: dulwich.objects.ShaFile._parse_object_header
    functionSourceFile: dulwich.objects
    functionUses: 3
    functionsReached:
    - dulwich.objects.object_class
    - _TYPE_MAP.get
    - <builtin>.ord
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - map
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 570
    functionName: dulwich.objects.ShaFile._parse_object
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - dulwich.objects.Commit._deserialize
    - dulwich._objects.parse_tree
    - dulwich.objects._decompress
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - io.BytesIO.read
    - value.index
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.ShaFile.set_raw_chunks
    - hexsha.encode
    - dulwich.objects.parse_time_entry
    - dcomp.flush
    - _TYPE_MAP.get
    - value.rindex
    - <builtin>.abs
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - io.BytesIO
    - dulwich.objects.Blob._deserialize
    - dulwich.objects.hex_to_sha
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects.object_class
    - dulwich.objects._parse_message
    - <builtin>.ord
    - value.endswith
    - dulwich.objects.Tag._deserialize
    - dulwich.objects.ShaFile.set_raw_string
    - io.BytesIO.startswith
    - <builtin>.isinstance
    - dulwich.objects.Tree._deserialize
    - <builtin>.int
    - rest.rsplit
    - dulwich.objects.FixedSha.__init__
    - typing.NewType
    - dcomp.decompress
    - binascii.unhexlify
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - magic
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 583
    functionName: dulwich.objects.ShaFile._is_legacy_object
    functionSourceFile: dulwich.objects
    functionUses: 3
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 590
    functionName: dulwich.objects.ShaFile._parse_file
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - obj._parse_object
    - dulwich.objects.ShaFile._parse_object_header
    - <builtin>.int
    - obj._parse_legacy_object
    - decomp.decompress
    - dulwich.objects.ShaFile._parse_legacy_object_header
    - dulwich.objects.object_class
    - <builtin>.len
    - zlib.decompressobj
    - header.find
    - <builtin>.ord
    - f.read
    - dulwich.objects.ShaFile._is_legacy_object
    - _TYPE_MAP.get
    - header.split
    linkageType: pythonLinkage
    raised:
    - EmptyFileException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj._parse_legacy_object
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj._parse_object
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 603
    functionName: dulwich.objects.ShaFile.__init__
    functionSourceFile: dulwich.objects
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 609
    functionName: dulwich.objects.ShaFile._deserialize
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 616
    functionName: dulwich.objects.ShaFile.from_path
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - dulwich.objects.ShaFile._parse_legacy_object_header
    - <builtin>.getattr
    - os.fspath
    - os.fdopen
    - os.open
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.file._GitFile.__init__
    - _TYPE_MAP.get
    - dulwich.objects.ShaFile._parse_file
    - <builtin>.open
    - obj._parse_object
    - dulwich.objects.ShaFile._parse_object_header
    - obj._parse_legacy_object
    - decomp.decompress
    - dulwich.objects.object_class
    - header.find
    - <builtin>.ord
    - dulwich.file.GitFile
    - f.read
    - header.split
    - <builtin>.isinstance
    - dulwich.objects.ShaFile.from_file
    - <builtin>.int
    - dulwich.objects.ShaFile._is_legacy_object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 622
    functionName: dulwich.objects.ShaFile.from_file
    functionSourceFile: dulwich.objects
    functionUses: 1
    functionsReached:
    - obj._parse_object
    - dulwich.objects.ShaFile._parse_object_header
    - <builtin>.int
    - obj._parse_legacy_object
    - decomp.decompress
    - dulwich.objects.ShaFile._parse_legacy_object_header
    - dulwich.objects.object_class
    - <builtin>.len
    - zlib.decompressobj
    - header.find
    - <builtin>.ord
    - f.read
    - dulwich.objects.ShaFile._is_legacy_object
    - _TYPE_MAP.get
    - header.split
    - dulwich.objects.ShaFile._parse_file
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.set_raw_string
    functionSourceFile: <builtin>
    functionUses: 65
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.set_raw_chunks
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - member
    - error_msg
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 674
    functionName: dulwich.objects.ShaFile._check_has_member
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 687
    functionName: dulwich.objects.ShaFile.check
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.Commit._deserialize
    - dulwich._objects.parse_tree
    - dulwich.objects.ShaFile.as_raw_chunks
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - dulwich.objects.format_time_entry
    - io.BytesIO.read
    - value.index
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - headers.append
    - dulwich.objects.parse_time_entry
    - _TYPE_MAP.get
    - value.rindex
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - <builtin>.abs
    - <builtin>.list
    - io.BytesIO
    - dulwich.objects.Blob._deserialize
    - dulwich.objects.hex_to_sha
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects.object_class
    - dulwich.objects._parse_message
    - value.endswith
    - dulwich.objects.Tag._deserialize
    - dulwich.objects.serialize_tree
    - io.BytesIO.startswith
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tree._deserialize
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - <builtin>.int
    - rest.rsplit
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    - ChecksumMismatch
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 712
    functionName: dulwich.objects.ShaFile.raw_length
    functionSourceFile: dulwich.objects
    functionUses: 5
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - <builtin>.sum
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - <builtin>.map
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 716
    functionName: dulwich.objects.ShaFile.sha
    functionSourceFile: dulwich.objects
    functionUses: 1
    functionsReached:
    - headers.extend
    - hashlib.sha1
    - dulwich.objects.ShaFile.as_raw_chunks
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - dulwich.objects.ShaFile.raw_length
    - _TYPE_MAP.get
    - <builtin>.list
    - <builtin>.sum
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.ShaFile._header
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects.object_header
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - <builtin>.str
    - typing.NewType
    - value.split
    - <builtin>.map
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    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: 727
    functionName: dulwich.objects.ShaFile.copy
    functionSourceFile: dulwich.objects
    functionUses: 3
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - _TYPE_MAP.get
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - obj_class.from_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj_class.from_raw_string
    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: 735
    functionName: dulwich.objects.ShaFile.id
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.FixedSha.hexdigest
    - hashlib.sha1
    - dulwich.objects.ShaFile.as_raw_chunks
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - dulwich.objects.ShaFile.raw_length
    - _TYPE_MAP.get
    - <builtin>.list
    - <builtin>.sum
    - dulwich.objects.hex_to_sha
    - hashlib.sha1.hexdigest
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.ShaFile._header
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile.sha
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects.object_header
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - <builtin>.str
    - <builtin>.map
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 739
    functionName: dulwich.objects.ShaFile.__repr__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 743
    functionName: dulwich.objects.ShaFile.__ne__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 747
    functionName: dulwich.objects.ShaFile.__eq__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 751
    functionName: dulwich.objects.ShaFile.__lt__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 757
    functionName: dulwich.objects.ShaFile.__le__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 780
    functionName: dulwich.objects.Blob._get_data
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 783
    functionName: dulwich.objects.Blob._set_data
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - dulwich.objects.Commit._deserialize
    - dulwich._objects.parse_tree
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - io.BytesIO.read
    - value.index
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.ShaFile.set_raw_chunks
    - hexsha.encode
    - dulwich.objects.parse_time_entry
    - _TYPE_MAP.get
    - value.rindex
    - <builtin>.abs
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - io.BytesIO
    - dulwich.objects.Blob._deserialize
    - dulwich.objects.hex_to_sha
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects.object_class
    - dulwich.objects._parse_message
    - value.endswith
    - dulwich.objects.Tag._deserialize
    - dulwich.objects.ShaFile.set_raw_string
    - io.BytesIO.startswith
    - <builtin>.isinstance
    - dulwich.objects.Tree._deserialize
    - <builtin>.int
    - rest.rsplit
    - dulwich.objects.FixedSha.__init__
    - typing.NewType
    - binascii.unhexlify
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.objects.Blob
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 790
    functionName: dulwich.objects.Blob._get_chunked
    functionSourceFile: dulwich.objects
    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
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 793
    functionName: dulwich.objects.Blob._set_chunked
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 826
    functionName: dulwich.objects.Blob.check
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 834
    functionName: dulwich.objects.Blob.splitlines
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - chunk.splitlines
    - <builtin>.len
    - ret.append
    - lines.pop
    - ret.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chunk.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lines.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - chunks
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 863
    functionName: dulwich.objects._parse_message
    functionSourceFile: dulwich.objects
    functionUses: 11
    functionsReached:
    - dulwich.objects._parse_message._strip_last_newline
    - io.BytesIO.read
    - value.endswith
    - io.BytesIO.close
    - io.BytesIO.startswith
    - io.BytesIO
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 879
    functionName: dulwich.objects._parse_message._strip_last_newline
    functionSourceFile: dulwich.objects
    functionUses: 12
    functionsReached:
    - value.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.startswith
    functionSourceFile: io
    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: io.BytesIO.split
    functionSourceFile: io
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - headers
    - body
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 919
    functionName: dulwich.objects._format_message
    functionSourceFile: dulwich.objects
    functionUses: 71
    functionsReached:
    - dulwich.objects.git_line
    - value.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.split
    functionSourceFile: <builtin>
    functionUses: 73
    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: 960
    functionName: dulwich.objects.Tag.__init__
    functionSourceFile: dulwich.objects
    functionUses: 6
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 9
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 987
    functionName: dulwich.objects.Tag.check
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.all
    - dulwich.objects.check_identity
    - <builtin>.getattr
    - io.BytesIO.read
    - identity.find
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.close
    - io.BytesIO
    - dulwich.objects.check_time
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects._parse_message
    - value.endswith
    - io.BytesIO.startswith
    - dulwich.objects.ShaFile._check_has_member
    - dulwich.objects.check_hexsha
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.append
    functionSourceFile: <builtin>
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - person
    - time
    - timezone_info
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1641
    functionName: dulwich.objects.format_time_entry
    functionSourceFile: ''
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1614
    functionName: dulwich.objects.parse_time_entry
    functionSourceFile: dulwich.objects
    functionUses: 9
    functionsReached:
    - <builtin>.int
    - rest.rsplit
    - value.rindex
    - <builtin>.abs
    - dulwich.objects.parse_timezone
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/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.index
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1111
    functionName: dulwich.objects.Tag._get_object
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 1120
    functionName: dulwich.objects.Tag._set_object
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: dulwich.objects.Tag
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - dulwich.objects.serializable_property
    - <builtin>.property
    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 0x7febad914070>
    argNames:
    - self
    - keyid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1141
    functionName: dulwich.objects.Tag.sign
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - headers.extend
    - ctx.sign
    - gpg.Context
    - c.get_key
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - c.sign
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gpg.Context
    functionSourceFile: gpg
    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: c.get_key
    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: ctx.sign
    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: c.sign
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1163
    functionName: dulwich.objects.Tag.raw_without_sig
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    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: 6
    functionLinenumber: 1173
    functionName: dulwich.objects.Tag.extract_signature
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.Tag.raw_without_sig
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaeed0550>
    argNames:
    - self
    - keyids
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1201
    functionName: dulwich.objects.Tag.verify
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - gpg.Context
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.Tag.raw_without_sig
    - ctx.verify
    - ctx.get_key
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx.verify
    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: ctx.get_key
    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
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1242
    functionName: dulwich.objects.TreeEntry.in_path
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    - posixpath.join
    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: posixpath.join
    functionSourceFile: posixpath
    functionUses: 34
    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 0x7febaf2b41c0>
    argNames:
    - text
    - strict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1249
    functionName: dulwich.objects.parse_tree
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - mode_text.startswith
    - text.index
    - <builtin>.len
    - typing.NewType
    - dulwich.objects.sha_to_hex
    - binascii.hexlify
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.index
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mode_text.startswith
    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:
    - items
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1283
    functionName: dulwich.objects.serialize_tree
    functionSourceFile: dulwich.objects
    functionUses: 70
    functionsReached:
    - dulwich.objects.hex_to_sha
    - binascii.unhexlify
    - <builtin>.len
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - entries
    - name_order
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1296
    functionName: dulwich.objects.sorted_tree_items
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - entries.items
    - <builtin>.sorted
    - <builtin>.isinstance
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - entry
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1321
    functionName: dulwich.objects.key_entry
    functionSourceFile: dulwich.objects
    functionUses: 1
    functionsReached:
    - stat.S_ISDIR
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - entry
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1333
    functionName: dulwich.objects.key_entry_name_order
    functionSourceFile: dulwich.objects
    functionUses: 0
    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 0x7febaf768d90>
    argNames:
    - name
    - mode
    - hexsha
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1338
    functionName: dulwich.objects.pretty_format_tree_entry
    functionSourceFile: dulwich.objects
    functionUses: 4
    functionsReached:
    - hexsha.decode
    - name.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: hexsha.decode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1365
    functionName: dulwich.objects.SubmoduleEncountered.__init__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1407
    functionName: dulwich.objects.Tree.__contains__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1411
    functionName: dulwich.objects.Tree.__getitem__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1415
    functionName: dulwich.objects.Tree.__setitem__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1428
    functionName: dulwich.objects.Tree.__delitem__
    functionSourceFile: dulwich.objects
    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: 1433
    functionName: dulwich.objects.Tree.__len__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1437
    functionName: dulwich.objects.Tree.__iter__
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf679b80>
    argNames:
    - self
    - name_order
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1453
    functionName: dulwich.objects.Tree.iteritems
    functionSourceFile: dulwich.objects
    functionUses: 88
    functionsReached:
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._objects.sorted_tree_items
    functionSourceFile: dulwich
    functionUses: 89
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich._objects.parse_tree
    functionSourceFile: dulwich
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1481
    functionName: dulwich.objects.Tree.check
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - dulwich.objects.key_entry
    - <builtin>.len
    - dulwich._objects.parse_tree
    - <builtin>.super
    - dulwich.objects.check_hexsha
    - stat.S_ISDIR
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1520
    functionName: dulwich.objects.Tree.as_pretty_string
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - hexsha.decode
    - name.decode
    - text.append
    - dulwich.objects.pretty_format_tree_entry
    - dulwich.objects.Tree.iteritems
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - lookup_obj
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1536
    functionName: dulwich.objects.Tree.lookup_path
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - stat.S_IFMT
    - path.split
    - <builtin>.isinstance
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    linkageType: pythonLinkage
    raised:
    - SubmoduleEncountered
    - NotTreeError
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1567
    functionName: dulwich.objects.parse_timezone
    functionSourceFile: dulwich.objects
    functionUses: 33
    functionsReached:
    - <builtin>.abs
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.abs
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1127c0>
    argNames:
    - offset
    - unnecessary_negative_timezone
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1596
    functionName: dulwich.objects.format_timezone
    functionSourceFile: dulwich.objects
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.rindex
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rest.rsplit
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 4
    IfCount: 13
    argCount: 1
    argDefaultValues: []
    argNames:
    - chunks
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1652
    functionName: dulwich.objects.parse_commit
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - mergetag.append
    - obj.set_raw_string
    - dulwich.objects.parse_timezone
    - io.BytesIO.read
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.parse_time_entry
    - value.rindex
    - <builtin>.abs
    - io.BytesIO.close
    - dulwich.objects.ShaFile.__init__
    - io.BytesIO
    - extra.append
    - parents.append
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects._parse_message
    - value.endswith
    - io.BytesIO.startswith
    - <builtin>.isinstance
    - <builtin>.int
    - rest.rsplit
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mergetag.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 13
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1847
    functionName: dulwich.objects.Commit.check
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - <builtin>.all
    - dulwich.objects.check_identity
    - <builtin>.getattr
    - io.BytesIO.read
    - identity.find
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.close
    - io.BytesIO
    - dulwich.objects.check_time
    - dulwich.objects._parse_message._strip_last_newline
    - dulwich.objects._parse_message
    - value.endswith
    - io.BytesIO.startswith
    - dulwich.objects.ShaFile._check_has_member
    - dulwich.objects.check_hexsha
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    - io.BytesIO.split
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaed26be0>
    argNames:
    - self
    - keyid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1898
    functionName: dulwich.objects.Commit.sign
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - headers.extend
    - ctx.sign
    - gpg.Context
    - c.get_key
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - c.sign
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1920
    functionName: dulwich.objects.Commit.raw_without_sig
    functionSourceFile: dulwich.objects
    functionUses: 2
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - _TYPE_MAP.get
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.ShaFile.copy
    - tmp.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - obj_class.from_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tmp.as_raw_string
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1931
    functionName: dulwich.objects.Commit.extract_signature
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - _TYPE_MAP.get
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.ShaFile.copy
    - tmp.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.objects.Commit._serialize
    - <builtin>.isinstance
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects.Commit.raw_without_sig
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - obj_class.from_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febad8fd0d0>
    argNames:
    - self
    - keyids
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1959
    functionName: dulwich.objects.Commit.verify
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - headers.extend
    - gpg.Context
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objects.format_time_entry
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - <builtin>.len
    - headers.append
    - _TYPE_MAP.get
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.objects.ShaFile.copy
    - tmp.as_raw_string
    - dulwich.objects.hex_to_sha
    - dulwich.objects.object_class
    - ctx.verify
    - ctx.get_key
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - dulwich.objects.ShaFile._serialize
    - dulwich.objects.Commit.raw_without_sig
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - mergetag.as_raw_string
    - obj_class.from_raw_string
    - typing.NewType
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mergetag.as_raw_string
    functionSourceFile: <builtin>
    functionUses: 70
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.extend
    functionSourceFile: <builtin>
    functionUses: 70
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: dulwich.objects.Commit
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached:
    - replace_me
    - dulwich.objects.serializable_property
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 2040
    functionName: dulwich.objects.Commit._get_parents
    functionSourceFile: dulwich.objects
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2044
    functionName: dulwich.objects.Commit._set_parents
    functionSourceFile: dulwich.objects
    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: 2056
    functionName: dulwich.objects.Commit._get_extra
    functionSourceFile: dulwich.objects
    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: dulwich.errors
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4f2910>
    argNames:
    - self
    - expected
    - got
    - extra
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: dulwich.errors.ChecksumMismatch.__init__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - Exception.__init__
    - binascii.hexlify
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: Exception.__init__
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sha
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: dulwich.errors.WrongObjectException.__init__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - sha.decode
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sha
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: dulwich.errors.MissingCommitError.__init__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - itertools.chain.decode
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: itertools.chain.decode
    functionSourceFile: itertools
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sha
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 156
    functionName: dulwich.errors.ObjectMissing.__init__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - sha.decode
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 170
    functionName: dulwich.errors.ApplyDeltaError.__init__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 183
    functionName: dulwich.errors.NotGitRepository.__init__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 196
    functionName: dulwich.errors.GitProtocolError.__init__
    functionSourceFile: dulwich.errors
    functionUses: 1
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 205
    functionName: dulwich.errors.GitProtocolError.__eq__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf142280>
    argNames:
    - self
    - stderr_lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 224
    functionName: dulwich.errors.HangupException.__init__
    functionSourceFile: dulwich.errors
    functionUses: 1
    functionsReached:
    - <builtin>.super
    - line.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: line.decode
    functionSourceFile: <builtin>
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 240
    functionName: dulwich.errors.HangupException.__eq__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - command
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 258
    functionName: dulwich.errors.UnexpectedCommandError.__init__
    functionSourceFile: dulwich.errors
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.submodule
    functionSourceFile: dulwich.submodule
    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:
    - store
    - root_tree_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 42
    functionName: dulwich.submodule.iter_cached_submodules
    functionSourceFile: dulwich.submodule
    functionUses: 6
    functionsReached:
    - subentry.in_path
    - todo.pop
    - dulwich.object_store.iter_tree_contents
    - stat.S_IFMT
    - todo.extend
    - <builtin>.isinstance
    - stat.S_ISDIR
    - tree.iteritems
    - dulwich.objects.S_ISGITLINK
    - extra.append
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: submodule_path.encode
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: submodule_path.count
    functionSourceFile: <builtin>
    functionUses: 32
    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: dulwich.reftable
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - stream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: dulwich.reftable.decode_varint_from_stream
    functionSourceFile: dulwich.reftable
    functionUses: 69
    functionsReached:
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: dulwich.reftable.encode_varint
    functionSourceFile: dulwich.reftable
    functionUses: 2
    functionsReached:
    - <builtin>.bytes
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: dulwich.reftable._encode_reftable_suffix_and_type
    functionSourceFile: dulwich.reftable
    functionUses: 1
    functionsReached:
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - stream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 104
    functionName: dulwich.reftable._decode_reftable_suffix_and_type
    functionSourceFile: dulwich.reftable
    functionUses: 67
    functionsReached:
    - io.BytesIO.tell
    - dulwich.reftable.decode_varint_from_stream
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - value_type
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 180
    functionName: dulwich.reftable._encode_ref_value
    functionSourceFile: dulwich.reftable
    functionUses: 1
    functionsReached:
    - dulwich.reftable.encode_varint
    - <builtin>.bytes
    - bytes.fromhex
    - <builtin>.len
    - result.append
    - value.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: bytes.fromhex
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - stream
    - value_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 203
    functionName: dulwich.reftable._decode_ref_value
    functionSourceFile: dulwich.reftable
    functionUses: 67
    functionsReached:
    - <builtin>.len
    - dulwich.reftable.decode_varint_from_stream
    - value.hex
    - io.BytesIO.read
    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: value.hex
    functionSourceFile: <builtin>
    functionUses: 68
    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: 239
    functionName: dulwich.reftable.RefValue.is_symbolic
    functionSourceFile: dulwich.reftable
    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: 244
    functionName: dulwich.reftable.RefValue.is_deletion
    functionSourceFile: dulwich.reftable
    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: 249
    functionName: dulwich.reftable.RefValue.is_peeled
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 253
    functionName: dulwich.reftable.RefValue.get_sha
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - value_type
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 265
    functionName: dulwich.reftable.RefUpdate.__init__
    functionSourceFile: dulwich.reftable
    functionUses: 16
    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 0x7febaf2d3880>
    argNames:
    - self
    - refname
    - value_type
    - value
    - update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 281
    functionName: dulwich.reftable.RefRecord.__init__
    functionSourceFile: dulwich.reftable
    functionUses: 73
    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 0x7febaf2d3b80>
    - <ast.Constant object at 0x7febaf2d3160>
    argNames:
    - self
    - prefix
    - min_update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 297
    functionName: dulwich.reftable.RefRecord.encode
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - dulwich.reftable._encode_reftable_suffix_and_type
    - <builtin>.bytes
    - dulwich.reftable.encode_varint
    - bytes.fromhex
    - <builtin>.len
    - <builtin>.min
    - result.append
    - <builtin>.range
    - value.decode
    - dulwich.reftable._encode_ref_value
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2c0ac0>
    - <ast.Constant object at 0x7febaf2c09a0>
    argNames:
    - cls
    - stream
    - prefix
    - min_update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 327
    functionName: dulwich.reftable.RefRecord.decode
    functionSourceFile: dulwich.reftable
    functionUses: 66
    functionsReached:
    - dulwich.reftable._decode_ref_value
    - <builtin>.len
    - value.hex
    - dulwich.reftable._decode_reftable_suffix_and_type
    - io.BytesIO.tell
    - dulwich.reftable.RefRecord.__init__
    - dulwich.reftable.decode_varint_from_stream
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 369
    functionName: dulwich.reftable.LogBlock.encode
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - zlib.compress
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.compress
    functionSourceFile: zlib
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 378
    functionName: dulwich.reftable.RefBlock.__init__
    functionSourceFile: dulwich.reftable
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadabf430>
    argNames:
    - self
    - refname
    - value_type
    - value
    - update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 382
    functionName: dulwich.reftable.RefBlock.add_ref
    functionSourceFile: dulwich.reftable
    functionUses: 24
    functionsReached:
    - dulwich.reftable.RefRecord.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 15
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - ref_offsets
    - header_data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 388
    functionName: dulwich.reftable.RefBlock._create_embedded_footer
    functionSourceFile: dulwich.reftable
    functionUses: 25
    functionsReached:
    - <builtin>.bytes
    - io.BytesIO.write
    - <builtin>.len
    - io.BytesIO.getvalue
    - struct.pack
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf53c520>
    - <ast.Constant object at 0x7febaf53cc40>
    - <ast.Constant object at 0x7febaf53ca90>
    argNames:
    - self
    - min_update_index
    - embed_footer
    - header_data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 428
    functionName: dulwich.reftable.RefBlock.encode
    functionSourceFile: dulwich.reftable
    functionUses: 24
    functionsReached:
    - <builtin>.bytes
    - ref.encode
    - io.BytesIO.write
    - ref_offsets.append
    - <builtin>.len
    - io.BytesIO.getvalue
    - io.BytesIO.tell
    - struct.pack
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.reftable.RefBlock.encode.<lambda1>
    functionSourceFile: dulwich.reftable
    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: ref_offsets.append
    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: ref.encode
    functionSourceFile: <builtin>
    functionUses: 49
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 462
    functionName: dulwich.reftable.RefBlock._find_ref_data_end
    functionSourceFile: dulwich.reftable
    functionUses: 66
    functionsReached:
    - data.find
    - <builtin>.len
    - <builtin>.bytes
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.find
    functionSourceFile: <builtin>
    functionUses: 67
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf755df0>
    argNames:
    - cls
    - data
    - min_update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 485
    functionName: dulwich.reftable.RefBlock.decode
    functionSourceFile: dulwich.reftable
    functionUses: 65
    functionsReached:
    - dulwich.reftable._decode_ref_value
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - block.refs.append
    - io.BytesIO
    - <builtin>.len
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - dulwich.reftable._decode_reftable_suffix_and_type
    - io.BytesIO.tell
    - data.find
    - <builtin>.max
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.RefRecord.__init__
    - dulwich.reftable.decode_varint_from_stream
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: block.refs.append
    functionSourceFile: <builtin>
    functionUses: 66
    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 0x7febaed93d00>
    - <ast.Constant object at 0x7febaed93e50>
    argNames:
    - self
    - f
    - auto_create_head
    - is_batch_operation
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 529
    functionName: dulwich.reftable.ReftableWriter.__init__
    functionSourceFile: dulwich.reftable
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - refname
    - sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 553
    functionName: dulwich.reftable.ReftableWriter.add_ref
    functionSourceFile: dulwich.reftable
    functionUses: 19
    functionsReached:
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    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: 580
    functionName: dulwich.reftable.ReftableWriter._maybe_auto_create_head
    functionSourceFile: ''
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - refname
    - target
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 561
    functionName: dulwich.reftable.ReftableWriter.add_symbolic_ref
    functionSourceFile: dulwich.reftable
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - refname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 574
    functionName: dulwich.reftable.ReftableWriter.delete_ref
    functionSourceFile: dulwich.reftable
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 587
    functionName: dulwich.reftable.ReftableWriter.write
    functionSourceFile: dulwich.reftable
    functionUses: 22
    functionsReached:
    - ref.encode
    - dulwich.reftable.RefRecord.__init__
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - <builtin>.len
    - io.BytesIO
    - dulwich.reftable.ReftableWriter._write_final_padding
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - io.BytesIO.getvalue
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 610
    functionName: dulwich.reftable.ReftableWriter._write_header
    functionSourceFile: dulwich.reftable
    functionUses: 23
    functionsReached:
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 662
    functionName: dulwich.reftable.ReftableWriter._write_ref_blocks
    functionSourceFile: dulwich.reftable
    functionUses: 23
    functionsReached:
    - <builtin>.bytes
    - ref.encode
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - ref_offsets.append
    - <builtin>.len
    - <builtin>.hasattr
    - io.BytesIO.getvalue
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - struct.pack
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - io.BytesIO
    - dulwich.reftable.RefRecord.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 699
    functionName: dulwich.reftable.ReftableWriter._write_final_padding
    functionSourceFile: dulwich.reftable
    functionUses: 23
    functionsReached:
    - <builtin>.len
    - struct.pack
    - zlib.crc32
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 632
    functionName: dulwich.reftable.ReftableWriter._get_ref_update_indices
    functionSourceFile: dulwich.reftable
    functionUses: 24
    functionsReached:
    - <builtin>.len
    - <builtin>.hasattr
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.crc32
    functionSourceFile: zlib
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 725
    functionName: dulwich.reftable.ReftableReader.__init__
    functionSourceFile: dulwich.reftable
    functionUses: 62
    functionsReached:
    - dulwich.reftable.RefBlock.decode
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - struct.unpack
    - <builtin>.len
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - dulwich.reftable.RefBlock._find_ref_data_end
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 736
    functionName: dulwich.reftable.ReftableReader._read_header
    functionSourceFile: dulwich.reftable
    functionUses: 63
    functionsReached:
    - struct.unpack
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 758
    functionName: dulwich.reftable.ReftableReader._read_blocks
    functionSourceFile: dulwich.reftable
    functionUses: 63
    functionsReached:
    - dulwich.reftable.RefBlock.decode
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - int.from_bytes
    - <builtin>.len
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - dulwich.reftable.RefBlock._find_ref_data_end
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: int.from_bytes
    functionSourceFile: <builtin>
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 786
    functionName: dulwich.reftable.ReftableReader._process_ref_block
    functionSourceFile: dulwich.reftable
    functionUses: 64
    functionsReached:
    - dulwich.reftable._decode_ref_value
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - block.refs.append
    - io.BytesIO
    - <builtin>.len
    - dulwich.reftable.RefBlock.decode
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - dulwich.reftable._decode_reftable_suffix_and_type
    - io.BytesIO.tell
    - data.find
    - <builtin>.max
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.RefRecord.__init__
    - dulwich.reftable.decode_varint_from_stream
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - refname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 793
    functionName: dulwich.reftable.ReftableReader.get_ref
    functionSourceFile: dulwich.reftable
    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: 797
    functionName: dulwich.reftable.ReftableReader.all_refs
    functionSourceFile: dulwich.reftable
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - refs_container
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 805
    functionName: dulwich.reftable._ReftableBatchContext.__init__
    functionSourceFile: dulwich.reftable
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 808
    functionName: dulwich.reftable._ReftableBatchContext.__enter__
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 812
    functionName: dulwich.reftable._ReftableBatchContext.__exit__
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - ref.encode
    - dulwich.reftable.ReftableReader.all_refs
    - time.time
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableRefsContainer._process_pending_updates
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - os.path.join
    - dulwich.reftable._decode_ref_value
    - <builtin>.range
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.sorted
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.ReftableRefsContainer._flush_pending_updates
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableRefsContainer._apply_batch_updates
    - dulwich.reftable.RefBlock._find_ref_data_end
    - name.endswith
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.ReftableWriter.__init__
    - os.remove
    - table_data.sort
    - ref_offsets.append
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refs.items
    - os.listdir
    - <builtin>.int
    - io.BytesIO.tell
    - visited.add
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - other_updates.append
    - dulwich.reftable.ReftableReader.__init__
    - block.refs.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.ReftableRefsContainer._resolve_symref_chain
    - <builtin>.set
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - all_refs.keys
    - all_refs.items
    - writer.refs_order.remove
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - typing.NewType
    - dulwich.reftable.RefRecord.decode
    - f.seek
    - io.BytesIO.seek
    - struct.unpack
    - line.decode
    - writer.refs_order.insert
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._write_batch_file
    - os.path.basename
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - dulwich.reftable.ReftableRefsContainer._load_ref_update_indices
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1258
    functionName: dulwich.reftable.ReftableRefsContainer._flush_pending_updates
    functionSourceFile: dulwich.reftable
    functionUses: 1
    functionsReached:
    - ref.encode
    - dulwich.reftable.ReftableReader.all_refs
    - time.time
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableRefsContainer._process_pending_updates
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - os.path.join
    - dulwich.reftable._decode_ref_value
    - <builtin>.range
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.sorted
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableRefsContainer._apply_batch_updates
    - dulwich.reftable.RefBlock._find_ref_data_end
    - name.endswith
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.ReftableWriter.__init__
    - os.remove
    - table_data.sort
    - ref_offsets.append
    - <builtin>.len
    - all_refs.pop
    - <builtin>.open
    - refs.items
    - os.listdir
    - <builtin>.int
    - io.BytesIO.tell
    - visited.add
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - other_updates.append
    - dulwich.reftable.ReftableReader.__init__
    - block.refs.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.ReftableRefsContainer._resolve_symref_chain
    - <builtin>.set
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - all_refs.keys
    - all_refs.items
    - writer.refs_order.remove
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - typing.NewType
    - dulwich.reftable.RefRecord.decode
    - f.seek
    - io.BytesIO.seek
    - struct.unpack
    - line.decode
    - writer.refs_order.insert
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._write_batch_file
    - os.path.basename
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - dulwich.reftable.ReftableRefsContainer._load_ref_update_indices
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 858
    functionName: dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    functionSourceFile: dulwich.reftable
    functionUses: 287
    functionsReached:
    - <builtin>.open
    - os.makedirs
    - os.path.exists
    - os.path.join
    - os.path.isdir
    - f.write
    - shutil.rmtree
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - table_file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 880
    functionName: dulwich.reftable.ReftableRefsContainer._read_table_file
    functionSourceFile: dulwich.reftable
    functionUses: 62
    functionsReached:
    - <builtin>.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 884
    functionName: dulwich.reftable.ReftableRefsContainer._load_ref_update_indices
    functionSourceFile: dulwich.reftable
    functionUses: 2
    functionsReached:
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - f.seek
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - <builtin>.len
    - line.decode
    - struct.unpack
    - os.path.join
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - files.append
    - f.read
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.bytes
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    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: 931
    functionName: dulwich.reftable.ReftableRefsContainer._get_table_files
    functionSourceFile: dulwich.reftable
    functionUses: 62
    functionsReached:
    - <builtin>.open
    - files.append
    - line.decode
    - os.path.exists
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 913
    functionName: dulwich.reftable.ReftableRefsContainer._get_next_update_index
    functionSourceFile: dulwich.reftable
    functionUses: 19
    functionsReached:
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - <builtin>.len
    - struct.unpack
    - line.decode
    - os.path.join
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - files.append
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: files.append
    functionSourceFile: <builtin>
    functionUses: 63
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 948
    functionName: dulwich.reftable.ReftableRefsContainer._read_all_tables
    functionSourceFile: dulwich.reftable
    functionUses: 55
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - <builtin>.len
    - table_data.append
    - line.decode
    - all_refs.pop
    - os.path.join
    - struct.unpack
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - files.append
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - typing.NewType
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: table_data.append
    functionSourceFile: <builtin>
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.reftable.ReftableRefsContainer._read_all_tables.<lambda1>
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: table_data.sort
    functionSourceFile: <builtin>
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_refs.pop
    functionSourceFile: <builtin>
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refs.keys
    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: refs.get
    functionSourceFile: <builtin>
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1021
    functionName: dulwich.reftable.ReftableRefsContainer.__getitem__
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - table_data.sort
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - table_data.append
    - line.decode
    - all_refs.pop
    - struct.unpack
    - <builtin>.len
    - os.path.join
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - io.BytesIO
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - files.append
    - <builtin>.range
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - refs.items
    - dulwich.reftable.ReftableReader._read_header
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.tell
    - refnames.append
    - typing.NewType
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaedfa790>
    - <ast.Constant object at 0x7febaedfa7c0>
    argNames:
    - self
    - min_update_index
    - max_update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1096
    functionName: dulwich.reftable.ReftableRefsContainer._generate_table_path
    functionSourceFile: dulwich.reftable
    functionUses: 22
    functionsReached:
    - time.time
    - random.randint
    - <builtin>.int
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: random.randint
    functionSourceFile: random
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1113
    functionName: dulwich.reftable.ReftableRefsContainer.add_packed_refs
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - name.endswith
    - ref.encode
    - updates.items
    - dulwich.reftable.ReftableWriter.__init__
    - time.time
    - ref_files.sort
    - dulwich.reftable.RefRecord.__init__
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - <builtin>.len
    - os.path.join
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.ReftableWriter.add_ref
    - <builtin>.open
    - dulwich.reftable.ReftableWriter._write_final_padding
    - dulwich.reftable.ReftableRefsContainer._write_batch_updates
    - new_refs.items
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - <builtin>.int
    - io.BytesIO.write
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - updates
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1122
    functionName: dulwich.reftable.ReftableRefsContainer._write_batch_updates
    functionSourceFile: dulwich.reftable
    functionUses: 1
    functionsReached:
    - name.endswith
    - ref.encode
    - updates.items
    - dulwich.reftable.ReftableWriter.__init__
    - time.time
    - ref_files.sort
    - dulwich.reftable.RefRecord.__init__
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - <builtin>.len
    - os.path.join
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.ReftableWriter.add_ref
    - <builtin>.open
    - dulwich.reftable.ReftableWriter._write_final_padding
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: updates.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1447
    functionName: dulwich.reftable.ReftableRefsContainer._update_tables_list
    functionSourceFile: dulwich.reftable
    functionUses: 19
    functionsReached:
    - <builtin>.open
    - os.listdir
    - name.endswith
    - ref_files.append
    - f.write
    - os.path.join
    - ref_files.sort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - value_type
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1220
    functionName: dulwich.reftable.ReftableRefsContainer._write_ref_update
    functionSourceFile: dulwich.reftable
    functionUses: 15
    functionsReached:
    - name.endswith
    - ref.encode
    - dulwich.reftable.RefBlock.decode
    - <builtin>.getattr
    - dulwich.reftable.ReftableWriter.__init__
    - os.path.exists
    - dulwich.reftable.RefRecord.decode
    - value.hex
    - time.time
    - <builtin>.enumerate
    - ref_files.sort
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - int.from_bytes
    - <builtin>.len
    - line.decode
    - struct.unpack
    - os.path.join
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableWriter._write_header
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - struct.pack
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.reftable.ReftableReader._read_header
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febad8fd8b0>
    - <ast.Constant object at 0x7febad8fd790>
    - <ast.Constant object at 0x7febad8fd8e0>
    - <ast.Constant object at 0x7febad8fdfa0>
    argNames:
    - self
    - name
    - other
    - committer
    - timestamp
    - timezone
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1208
    functionName: dulwich.reftable.ReftableRefsContainer.set_symbolic_ref
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - name.endswith
    - ref.encode
    - dulwich.reftable.RefBlock.decode
    - <builtin>.getattr
    - dulwich.reftable.ReftableWriter.__init__
    - os.path.exists
    - dulwich.reftable.RefRecord.decode
    - value.hex
    - time.time
    - <builtin>.enumerate
    - ref_files.sort
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - int.from_bytes
    - <builtin>.len
    - line.decode
    - struct.unpack
    - os.path.join
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - <builtin>.max
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableWriter._write_header
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - struct.pack
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.reftable.ReftableReader._read_header
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - name
    - value_type
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1231
    functionName: dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    functionSourceFile: dulwich.reftable
    functionUses: 16
    functionsReached:
    - name.endswith
    - ref.encode
    - dulwich.reftable.RefBlock.decode
    - dulwich.reftable.ReftableWriter.__init__
    - os.path.exists
    - dulwich.reftable.RefRecord.decode
    - value.hex
    - time.time
    - <builtin>.enumerate
    - ref_files.sort
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - int.from_bytes
    - <builtin>.len
    - line.decode
    - struct.unpack
    - os.path.join
    - dulwich.reftable._decode_reftable_suffix_and_type
    - <builtin>.max
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableWriter._write_header
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.reftable.ReftableReader._read_header
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1308
    functionName: dulwich.reftable.ReftableRefsContainer._process_pending_updates
    functionSourceFile: dulwich.reftable
    functionUses: 2
    functionsReached:
    - other_updates.append
    - <builtin>.range
    - visited.add
    - dulwich.reftable.ReftableRefsContainer._resolve_symref_chain
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - all_refs
    - other_updates
    - head_update
    - batch_update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1367
    functionName: dulwich.reftable.ReftableRefsContainer._apply_batch_updates
    functionSourceFile: dulwich.reftable
    functionUses: 2
    functionsReached:
    - all_refs.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - all_refs
    - batch_update_index
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1396
    functionName: dulwich.reftable.ReftableRefsContainer._write_batch_file
    functionSourceFile: dulwich.reftable
    functionUses: 2
    functionsReached:
    - ref.encode
    - dulwich.reftable.ReftableWriter.__init__
    - time.time
    - dulwich.reftable.RefRecord.__init__
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - <builtin>.len
    - os.path.join
    - writer.refs_order.insert
    - io.BytesIO
    - os.path.basename
    - <builtin>.open
    - dulwich.reftable.ReftableWriter._write_final_padding
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - all_refs.keys
    - writer.refs_order.remove
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - random.randint
    - io.BytesIO.getvalue
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - <builtin>.enumerate
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - target
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1330
    functionName: dulwich.reftable.ReftableRefsContainer._resolve_symref_chain
    functionSourceFile: dulwich.reftable
    functionUses: 3
    functionsReached:
    - visited.add
    - <builtin>.set
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other_updates.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_refs.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: writer.refs_order.remove
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: writer.refs_order.insert
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1426
    functionName: dulwich.reftable.ReftableRefsContainer.batch_update
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - dulwich.reftable._ReftableBatchContext.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1430
    functionName: dulwich.reftable.ReftableRefsContainer.remove_packed_ref
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - name.endswith
    - ref.encode
    - dulwich.reftable.RefBlock.decode
    - <builtin>.getattr
    - dulwich.reftable.ReftableWriter.__init__
    - os.path.exists
    - dulwich.reftable.RefRecord.decode
    - value.hex
    - time.time
    - <builtin>.enumerate
    - ref_files.sort
    - data.find
    - block.refs.append
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.reftable.ReftableReader._read_blocks
    - ref_files.append
    - ref_offsets.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - int.from_bytes
    - <builtin>.len
    - line.decode
    - struct.unpack
    - os.path.join
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - <builtin>.max
    - dulwich.reftable.ReftableWriter.delete_ref
    - io.BytesIO
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.open
    - dulwich.reftable._decode_ref_value
    - dulwich.reftable.ReftableWriter._write_final_padding
    - files.append
    - zlib.crc32
    - <builtin>.hasattr
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableWriter._write_header
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - struct.pack
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.reftable.ReftableReader._read_header
    - random.randint
    - io.BytesIO.getvalue
    - f.write
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.RefBlock.encode
    - io.BytesIO.tell
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - new_table_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1434
    functionName: dulwich.reftable.ReftableRefsContainer._compact_tables_list
    functionSourceFile: dulwich.reftable
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.listdir
    - name.endswith
    - f.write
    - os.path.join
    - os.remove
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_files.append
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_files.sort
    functionSourceFile: <builtin>
    functionUses: 20
    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: dulwich.reflog
    functionSourceFile: dulwich.reflog
    functionUses: 0
    functionsReached:
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple
    functionSourceFile: collections
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - refspec
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: dulwich.reflog.parse_reflog_spec
    functionSourceFile: dulwich.reflog
    functionUses: 2
    functionsReached:
    - refspec.split
    - <builtin>.int
    - index_str.isdigit
    - rest.endswith
    - <builtin>.isinstance
    - refspec.encode
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refspec.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refspec.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rest.endswith
    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: index_str.isdigit
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 121
    functionName: dulwich.reflog.parse_reflog_line
    functionSourceFile: dulwich.reflog
    functionUses: 14
    functionsReached:
    - <builtin>.int
    - rest.rsplit
    - <builtin>.abs
    - line.split
    - begin.split
    - dulwich.objects.parse_timezone
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: begin.split
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadfeebe0>
    argNames:
    - f
    - index
    - rewrite
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 155
    functionName: dulwich.reflog.drop_reflog_entry
    functionSourceFile: dulwich.reflog
    functionUses: 5
    functionsReached:
    - <builtin>.int
    - f.truncate
    - <builtin>.len
    - dulwich.objects.format_timezone
    - dulwich.reflog.parse_reflog_line
    - rest.rsplit
    - f.write
    - f.seek
    - <builtin>.str
    - <builtin>.abs
    - dulwich.reflog.format_reflog_line
    - line.split
    - begin.split
    - dulwich.objects.parse_timezone
    - f.tell
    - log.append
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.truncate
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf066820>
    - <ast.Constant object at 0x7febaf066f40>
    - <ast.Constant object at 0x7febaf0664c0>
    argNames:
    - f
    - expire_time
    - expire_unreachable_time
    - reachable_checker
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 214
    functionName: dulwich.reflog.expire_reflog
    functionSourceFile: dulwich.reflog
    functionUses: 3
    functionsReached:
    - <builtin>.int
    - f.truncate
    - dulwich.reflog.parse_reflog_line
    - rest.rsplit
    - dulwich.objects.format_timezone
    - f.write
    - entries.append
    - kept_entries.append
    - f.seek
    - <builtin>.str
    - dulwich.reflog.format_reflog_line
    - line.split
    - <builtin>.abs
    - begin.split
    - dulwich.objects.parse_timezone
    - f.tell
    - dulwich.porcelain.reflog_expire.is_reachable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 8125
    functionName: dulwich.porcelain.reflog_expire.is_reachable
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kept_entries.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - logs_dir
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 292
    functionName: dulwich.reflog.iter_reflogs
    functionSourceFile: dulwich.reflog
    functionUses: 5
    functionsReached:
    - pathlib.Path
    - pathlib.Path.rglob
    - ref_name.encode
    - os.path.exists
    - log_file.is_file
    - log_file.relative_to
    - <builtin>.str
    - ref_name.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path.rglob
    functionSourceFile: pathlib
    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: log_file.is_file
    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: log_file.relative_to
    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: ref_name.replace
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_name.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.rebase
    functionSourceFile: dulwich.rebase
    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
    - conflicted_files
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: dulwich.rebase.RebaseConflict.__init__
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - f.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: f.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - s
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: dulwich.rebase.RebaseTodoCommand.from_string
    functionSourceFile: dulwich.rebase
    functionUses: 7
    functionsReached:
    - s.lower
    - enum.Enum.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.lower
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadd540d0>
    argNames:
    - self
    - abbreviate
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: dulwich.rebase.RebaseTodoEntry.to_string
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - cmd_map.get
    - parts.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cmd_map.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 185
    functionName: dulwich.rebase.RebaseTodoEntry.from_string
    functionSourceFile: dulwich.rebase
    functionUses: 6
    functionsReached:
    - line.startswith
    - s.lower
    - line.strip
    - <builtin>.len
    - dulwich.rebase.RebaseTodoCommand.from_string
    - typing.NewType
    - line.split
    - enum.Enum.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaffced00>
    argNames:
    - self
    - entries
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 247
    functionName: dulwich.rebase.RebaseTodo.__init__
    functionSourceFile: dulwich.rebase
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 256
    functionName: dulwich.rebase.RebaseTodo.add_entry
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 260
    functionName: dulwich.rebase.RebaseTodo.get_current
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 266
    functionName: dulwich.rebase.RebaseTodo.advance
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 270
    functionName: dulwich.rebase.RebaseTodo.is_complete
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 30
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadd3ba00>
    argNames:
    - self
    - include_comments
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 274
    functionName: dulwich.rebase.RebaseTodo.to_string
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - entry.to_string
    - lines.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.to_string
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lines.append
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - content
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 346
    functionName: dulwich.rebase.RebaseTodo.from_string
    functionSourceFile: dulwich.rebase
    functionUses: 5
    functionsReached:
    - line.startswith
    - s.lower
    - line.strip
    - <builtin>.len
    - dulwich.rebase.RebaseTodoCommand.from_string
    - content.splitlines
    - entries.append
    - typing.NewType
    - line.split
    - enum.Enum.__init__
    - dulwich.rebase.RebaseTodoEntry.from_string
    - dulwich.rebase.RebaseTodo.__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: content.splitlines
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - commits
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 364
    functionName: dulwich.rebase.RebaseTodo.from_commits
    functionSourceFile: dulwich.rebase
    functionUses: 3
    functionsReached:
    - commit.message.decode
    - message.split
    - dulwich.rebase.RebaseTodo.__init__
    - entries.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit.message.decode
    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: message.split
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - original_head
    - rebasing_branch
    - onto
    - todo
    - done
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 392
    functionName: dulwich.rebase.RebaseStateManager.save
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 403
    functionName: dulwich.rebase.RebaseStateManager.load
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 415
    functionName: dulwich.rebase.RebaseStateManager.clean
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 419
    functionName: dulwich.rebase.RebaseStateManager.exists
    functionSourceFile: dulwich.rebase
    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
    - todo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 423
    functionName: dulwich.rebase.RebaseStateManager.save_todo
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 427
    functionName: dulwich.rebase.RebaseStateManager.load_todo
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - original_head
    - rebasing_branch
    - onto
    - todo
    - done
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 443
    functionName: dulwich.rebase.DiskRebaseStateManager.save
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - <builtin>.len
    - os.makedirs
    - f.write
    - os.path.join
    - dulwich.rebase.DiskRebaseStateManager._write_file
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 479
    functionName: dulwich.rebase.DiskRebaseStateManager._write_file
    functionSourceFile: dulwich.rebase
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - f.write
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 484
    functionName: dulwich.rebase.DiskRebaseStateManager.load
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - dulwich.rebase.DiskRebaseStateManager._read_file
    - <builtin>.open
    - os.path.join
    - f.read
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 511
    functionName: dulwich.rebase.DiskRebaseStateManager._read_file
    functionSourceFile: dulwich.rebase
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - os.path.join
    - f.read
    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: 519
    functionName: dulwich.rebase.DiskRebaseStateManager.clean
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - shutil.rmtree
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 527
    functionName: dulwich.rebase.DiskRebaseStateManager.exists
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - os.path.exists
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - todo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 531
    functionName: dulwich.rebase.DiskRebaseStateManager.save_todo
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - todo_content.encode
    - todo.to_string
    - os.path.join
    - f.write
    - dulwich.rebase.DiskRebaseStateManager._write_file
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: todo.to_string
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: todo_content.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 540
    functionName: dulwich.rebase.DiskRebaseStateManager.load_todo
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - dulwich.rebase.DiskRebaseStateManager._read_file
    - <builtin>.open
    - line.startswith
    - dulwich.rebase.RebaseTodo.from_string
    - s.lower
    - line.strip
    - <builtin>.len
    - dulwich.rebase.RebaseTodoCommand.from_string
    - content.splitlines
    - f.read
    - os.path.join
    - entries.append
    - typing.NewType
    - line.split
    - enum.Enum.__init__
    - dulwich.rebase.RebaseTodoEntry.from_string
    - dulwich.rebase.RebaseTodo.__init__
    - todo_content.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: todo_content.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - original_head
    - rebasing_branch
    - onto
    - todo
    - done
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 576
    functionName: dulwich.rebase.MemoryRebaseStateManager.save
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - typing.TypedDict.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.TypedDict.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 593
    functionName: dulwich.rebase.MemoryRebaseStateManager.load
    functionSourceFile: dulwich.rebase
    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: 614
    functionName: dulwich.rebase.MemoryRebaseStateManager.clean
    functionSourceFile: dulwich.rebase
    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: 619
    functionName: dulwich.rebase.MemoryRebaseStateManager.exists
    functionSourceFile: dulwich.rebase
    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
    - todo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 623
    functionName: dulwich.rebase.MemoryRebaseStateManager.save_todo
    functionSourceFile: dulwich.rebase
    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: 631
    functionName: dulwich.rebase.MemoryRebaseStateManager.load_todo
    functionSourceFile: dulwich.rebase
    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
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 643
    functionName: dulwich.rebase.Rebaser.__init__
    functionSourceFile: dulwich.rebase
    functionUses: 5
    functionsReached:
    - dulwich.rebase.Rebaser._load_rebase_state
    - repo.get_rebase_state_manager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.get_rebase_state_manager
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 921
    functionName: dulwich.rebase.Rebaser._load_rebase_state
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadc56eb0>
    argNames:
    - self
    - upstream
    - branch
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 663
    functionName: dulwich.rebase.Rebaser._get_commits_to_rebase
    functionSourceFile: dulwich.rebase
    functionUses: 5
    functionsReached:
    - dulwich.graph._find_lcas
    - cstates.get
    - cands.append
    - dulwich.graph._find_lcas._has_candidates
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.objectspec.parse_commit
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - wlst.iter
    - wlst.add
    - <builtin>.len
    - typing.cast.id.encode
    - results.sort
    - dulwich.refs.local_tag_name
    - repo.parents_provider
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - <builtin>.list
    - parents_provider.get_parents
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - typing.cast.id.startswith
    - typing.cast.startswith
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.refs.local_branch_name
    - ret.append
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.lru_cache.LRUCache._remove_node
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - dulwich.graph.find_octopus_base.lookup_stamp
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.lru_cache.LRUCache.__init__
    - commits.append
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - dulwich.graph.find_merge_base.lookup_parents
    - typing.NewType
    - dulwich.lru_cache.LRUCache._update_max_cache
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - <builtin>.reversed
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - RebaseError
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - committish
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 495
    functionName: dulwich.objectspec.parse_commit
    functionSourceFile: dulwich.objectspec
    functionUses: 73
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.to_bytes
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - <builtin>.len
    - dulwich.objectspec.scan_for_short_id
    - typing.cast.id.encode
    - dulwich.refs.local_branch_name
    - typing.cast.startswith
    - ret.append
    - dulwich.refs.local_tag_name
    - typing.NewType
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.objectspec.parse_ref
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - commit_ids
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 216
    functionName: dulwich.graph.find_merge_base
    functionSourceFile: dulwich.graph
    functionUses: 20
    functionsReached:
    - dulwich.graph._find_lcas
    - cands.append
    - cstates.get
    - dulwich.graph._find_lcas._has_candidates
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.graph.WorkList.__init__
    - wlst.iter
    - wlst.add
    - <builtin>.len
    - results.sort
    - repo.parents_provider
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - <builtin>.list
    - parents_provider.get_parents
    - wlst.get
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commits.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - commit
    - onto
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 712
    functionName: dulwich.rebase.Rebaser._cherry_pick
    functionSourceFile: dulwich.rebase
    functionUses: 5
    functionsReached:
    - obj.set_raw_string
    - merged_entries.items
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - dulwich.merge.Merger.__init__
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - <builtin>.set
    - dulwich.merge.three_way_merge
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.sorted
    - <builtin>.isinstance
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.objects.is_tree
    - dulwich.merge.Merger.merge_trees
    - dulwich.merge.Merger.merge_blobs
    - all_paths.add
    - dulwich.objects.S_ISGITLINK
    - base_tree.items
    - base_tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - RebaseError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8f0490>
    - <ast.Constant object at 0x7febaef0d460>
    argNames:
    - object_store
    - base_commit
    - ours_commit
    - theirs_commit
    - gitattributes
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 633
    functionName: dulwich.merge.three_way_merge
    functionSourceFile: dulwich.merge
    functionUses: 19
    functionsReached:
    - obj.set_raw_string
    - merged_entries.items
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - dulwich.merge.Merger.__init__
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.objects.ShaFile.__init__
    - <builtin>.set
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.sorted
    - <builtin>.isinstance
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.objects.is_tree
    - dulwich.merge.Merger.merge_trees
    - dulwich.merge.Merger.merge_blobs
    - all_paths.add
    - dulwich.objects.S_ISGITLINK
    - base_tree.items
    - base_tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf905850>
    - <ast.Constant object at 0x7febaf9055b0>
    argNames:
    - self
    - upstream
    - onto
    - branch
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 762
    functionName: dulwich.rebase.Rebaser.start
    functionSourceFile: dulwich.rebase
    functionUses: 4
    functionsReached:
    - dulwich.graph._find_lcas
    - cstates.get
    - cands.append
    - dulwich.graph._find_lcas._has_candidates
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.objectspec.parse_commit
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - wlst.iter
    - wlst.add
    - <builtin>.len
    - typing.cast.id.encode
    - results.sort
    - dulwich.refs.local_tag_name
    - repo.parents_provider
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - <builtin>.list
    - parents_provider.get_parents
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.rebase.Rebaser._get_commits_to_rebase
    - typing.cast.id.startswith
    - typing.cast.startswith
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.refs.local_branch_name
    - ret.append
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.lru_cache.LRUCache._remove_node
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - dulwich.graph.find_octopus_base.lookup_stamp
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.rebase.Rebaser._save_rebase_state
    - branch.startswith
    - commits.append
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - typing.NewType
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - <builtin>.reversed
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: branch.startswith
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 911
    functionName: dulwich.rebase.Rebaser._save_rebase_state
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 815
    functionName: dulwich.rebase.Rebaser.continue_
    functionSourceFile: dulwich.rebase
    functionUses: 4
    functionsReached:
    - head_ref.startswith
    - obj.set_raw_string
    - merged_entries.items
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - dulwich.merge.Merger.__init__
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - dulwich.rebase.Rebaser._clean_rebase_state
    - <builtin>.set
    - dulwich.rebase.Rebaser._finish_rebase
    - dulwich.merge.three_way_merge
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.sorted
    - <builtin>.isinstance
    - dulwich.rebase.Rebaser._cherry_pick
    - dulwich.rebase.Rebaser.continue_
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.rebase.Rebaser._save_rebase_state
    - dulwich.objects.is_tree
    - dulwich.merge.Merger.merge_trees
    - dulwich.merge.Merger.merge_blobs
    - typing.NewType
    - all_paths.add
    - dulwich.objects.S_ISGITLINK
    - base_tree.items
    - base_tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - RebaseError
    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: 880
    functionName: dulwich.rebase.Rebaser._finish_rebase
    functionSourceFile: dulwich.rebase
    functionUses: 5
    functionsReached:
    - head_ref.startswith
    - typing.NewType
    - dulwich.rebase.Rebaser._clean_rebase_state
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 857
    functionName: dulwich.rebase.Rebaser.is_in_progress
    functionSourceFile: dulwich.rebase
    functionUses: 4
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 861
    functionName: dulwich.rebase.Rebaser.abort
    functionSourceFile: dulwich.rebase
    functionUses: 3
    functionsReached:
    - dulwich.refs.set_ref_from_raw
    - <builtin>.bool
    - <builtin>.len
    - typing.NewType
    - raw_ref.startswith
    - dulwich.rebase.Rebaser.is_in_progress
    - dulwich.rebase.Rebaser._clean_rebase_state
    - refs.set_symbolic_ref
    linkageType: pythonLinkage
    raised:
    - RebaseError
    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: 931
    functionName: dulwich.rebase.Rebaser._clean_rebase_state
    functionSourceFile: ''
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf268670>
    - <ast.Constant object at 0x7febaf268dc0>
    argNames:
    - repo
    - upstream
    - onto
    - branch
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 936
    functionName: dulwich.rebase.rebase
    functionSourceFile: dulwich.rebase
    functionUses: 0
    functionsReached:
    - dulwich.rebase.Rebaser.__init__
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - wlst.iter
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.rebase.Rebaser._finish_rebase
    - dulwich.refs.local_branch_name
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.sorted
    - dulwich.rebase.Rebaser._cherry_pick
    - repo.get_rebase_state_manager
    - dulwich.rebase.Rebaser.continue_
    - branch.startswith
    - dulwich.lru_cache.LRUCache._update_max_cache
    - all_paths.add
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.graph._find_lcas._has_candidates
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.objects.Tree.__init__
    - wlst.add
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - results.sort
    - dulwich.refs.local_tag_name
    - dulwich.rebase.Rebaser._clean_rebase_state
    - <builtin>.list
    - dulwich.rebase.Rebaser._get_commits_to_rebase
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - commits.append
    - dulwich.merge.Merger.merge_blobs
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - <builtin>.reversed
    - head_ref.startswith
    - cands.append
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.objectspec.to_bytes
    - dulwich.merge.Merger.__init__
    - dulwich.rebase.Rebaser.start
    - typing.cast.id.encode
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.merge.three_way_merge
    - ret.append
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - dulwich.rebase.Rebaser._load_rebase_state
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - dulwich.rebase.Rebaser._save_rebase_state
    - dulwich.objects.is_tree
    - dulwich.merge.Merger.merge_trees
    - typing.cast
    - typing.NewType
    - base_tree.items
    - base_tree.lookup_path
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - <builtin>.min
    - dulwich.objects.Tree.add
    - repo.parents_provider
    - typing.cast.id.startswith
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - dulwich.lru_cache.LRUCache.__init__
    - conflicts.append
    - dulwich.graph.find_merge_base.lookup_stamp
    - merged_entries.items
    linkageType: pythonLinkage
    raised:
    - RebaseConflict
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae44dac0>
    - <ast.Constant object at 0x7febae44d370>
    - <ast.Constant object at 0x7febae44d340>
    argNames:
    - repo
    - upstream
    - onto
    - branch
    - editor_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 972
    functionName: dulwich.rebase.start_interactive
    functionSourceFile: dulwich.rebase
    functionUses: 2
    functionsReached:
    - dulwich.rebase.Rebaser.__init__
    - dulwich.objectspec.parse_commit
    - wlst.iter
    - dulwich.rebase.RebaseTodoCommand.from_string
    - todo.to_string
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.unlink
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.rebase.Rebaser.abort
    - dulwich.refs.local_branch_name
    - repo.get_rebase_state_manager
    - branch.startswith
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph._find_lcas._has_candidates
    - os.environ.get
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.cli.launch_editor
    - refs.set_symbolic_ref
    - wlst.add
    - <builtin>.len
    - results.sort
    - dulwich.refs.local_tag_name
    - dulwich.rebase.Rebaser._clean_rebase_state
    - enum.Enum.__init__
    - <builtin>.list
    - dulwich.rebase.Rebaser._get_commits_to_rebase
    - <builtin>.open
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - line.startswith
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - <builtin>.bool
    - commits.append
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - edited_content.decode
    - <builtin>.reversed
    - message.split
    - dulwich.rebase.RebaseTodo.from_string
    - cands.append
    - line.strip
    - entries.append
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - dulwich.refs.set_ref_from_raw
    - dulwich.objectspec.to_bytes
    - dulwich.rebase.Rebaser.start
    - typing.cast.id.encode
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - subprocess.run
    - s.lower
    - ret.append
    - tempfile.NamedTemporaryFile
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - dulwich.rebase.Rebaser._load_rebase_state
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - commit.message.decode
    - dulwich.rebase.Rebaser._save_rebase_state
    - f.write
    - typing.cast
    - typing.NewType
    - line.split
    - dulwich.rebase.Rebaser.is_in_progress
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - <builtin>.min
    - content.splitlines
    - repo.parents_provider
    - typing.cast.id.startswith
    - typing.cast.startswith
    - state_manager.save_todo
    - dulwich.rebase.RebaseTodo.from_commits
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.graph.find_merge_base.lookup_stamp
    - raw_ref.startswith
    - dulwich.rebase.RebaseTodoEntry.from_string
    - dulwich.rebase.RebaseTodo.__init__
    linkageType: pythonLinkage
    raised:
    - RebaseAbort
    - RebaseError
    returnType: N/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_manager.save_todo
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febadde1340>
    argNames:
    - template_content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 380
    functionName: dulwich.cli.launch_editor
    functionSourceFile: dulwich.cli
    functionUses: 9
    functionsReached:
    - <builtin>.open
    - f.write
    - tempfile.NamedTemporaryFile
    - f.read
    - os.environ.get
    - os.unlink
    - subprocess.run
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: edited_content.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - editor_callback
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1037
    functionName: dulwich.rebase.edit_todo
    functionSourceFile: dulwich.rebase
    functionUses: 2
    functionsReached:
    - dulwich.rebase.RebaseTodo.from_string
    - line.strip
    - state_manager.load_todo
    - entries.append
    - os.environ.get
    - dulwich.cli.launch_editor
    - <builtin>.len
    - dulwich.rebase.RebaseTodoCommand.from_string
    - todo.to_string
    - content.splitlines
    - edited_content.decode
    - os.unlink
    - enum.Enum.__init__
    - subprocess.run
    - <builtin>.open
    - s.lower
    - tempfile.NamedTemporaryFile
    - f.read
    - state_manager.save_todo
    - line.startswith
    - repo.get_rebase_state_manager
    - state_manager.exists
    - f.write
    - typing.NewType
    - line.split
    - dulwich.rebase.RebaseTodoEntry.from_string
    - dulwich.rebase.RebaseTodo.__init__
    linkageType: pythonLinkage
    raised:
    - RebaseError
    returnType: N/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_manager.exists
    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: state_manager.load_todo
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 30
    ICount: 12
    IfCount: 21
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf395790>
    - <ast.Constant object at 0x7febaf395820>
    argNames:
    - repo
    - todo
    - editor_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1075
    functionName: dulwich.rebase.process_interactive_rebase
    functionSourceFile: dulwich.rebase
    functionUses: 2
    functionsReached:
    - head_ref.startswith
    - state_manager.load_todo
    - dulwich.rebase.Rebaser.__init__
    - os.environ.get
    - dulwich.rebase._squash_commits
    - obj.set_raw_string
    - merged_entries.items
    - dulwich.cli.launch_editor
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - dulwich.merge.Merger.__init__
    - todo.advance
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - os.unlink
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - dulwich.rebase.Rebaser._clean_rebase_state
    - <builtin>.set
    - subprocess.run
    - <builtin>.open
    - dulwich.rebase.Rebaser._finish_rebase
    - dulwich.merge.three_way_merge
    - rebaser._todo.pop
    - typing.cast.lookup_path
    - tempfile.NamedTemporaryFile
    - f.read
    - dulwich.objects.is_blob
    - <builtin>.sorted
    - <builtin>.isinstance
    - state_manager.save_todo
    - dulwich.rebase.Rebaser._load_rebase_state
    - todo.is_complete
    - dulwich.rebase.Rebaser._cherry_pick
    - repo.get_rebase_state_manager
    - dulwich.rebase.Rebaser.continue_
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.rebase.Rebaser._save_rebase_state
    - dulwich.objects.is_tree
    - f.write
    - dulwich.merge.Merger.merge_trees
    - dulwich.merge.Merger.merge_blobs
    - typing.NewType
    - all_paths.add
    - dulwich.objects.S_ISGITLINK
    - base_tree.items
    - repo.object_store.add_object
    - todo.get_current
    - base_tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - RebaseError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: todo.is_complete
    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: todo.get_current
    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: repo.object_store.add_object
    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: todo.advance
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a8b20>
    argNames:
    - repo
    - rebaser
    - entry
    - keep_message
    - editor_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1221
    functionName: dulwich.rebase._squash_commits
    functionSourceFile: dulwich.rebase
    functionUses: 3
    functionsReached:
    - os.environ.get
    - obj.set_raw_string
    - merged_entries.items
    - dulwich.cli.launch_editor
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - dulwich.merge.Merger.__init__
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - os.unlink
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - <builtin>.set
    - subprocess.run
    - <builtin>.open
    - dulwich.merge.three_way_merge
    - rebaser._todo.pop
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - tempfile.NamedTemporaryFile
    - f.read
    - <builtin>.sorted
    - <builtin>.isinstance
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.objects.is_tree
    - dulwich.merge.Merger.merge_trees
    - f.write
    - dulwich.merge.Merger.merge_blobs
    - all_paths.add
    - dulwich.objects.S_ISGITLINK
    - base_tree.items
    - repo.object_store.add_object
    - base_tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - RebaseError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rebaser._todo.pop
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.merge
    functionSourceFile: dulwich.merge
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaefed1c0>
    - <ast.Constant object at 0x7febaefedf40>
    argNames:
    - base
    - a
    - b
    - is_cherrypick
    - sequence_matcher
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: dulwich.merge.make_merge3
    functionSourceFile: dulwich.merge
    functionUses: 1
    functionsReached:
    - merge3.Merge3
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: merge3.Merge3
    functionSourceFile: merge3
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: dulwich.merge.MergeConflict.__init__
    functionSourceFile: dulwich.merge
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - base_lines
    - a_lines
    - b_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: dulwich.merge._can_merge_lines
    functionSourceFile: dulwich.merge
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 11
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - m
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: dulwich.merge._merge3_to_bytes
    functionSourceFile: dulwich.merge
    functionUses: 1
    functionsReached:
    - dulwich.merge._merge_lines
    - m.merge_groups
    - result.append
    - dulwich.merge._can_merge_lines
    - result.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.merge_groups
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - base_lines
    - a_lines
    - b_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: dulwich.merge._merge_lines
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 1
    IfCount: 17
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf7799d0>
    - <ast.Constant object at 0x7febaf779760>
    - <ast.Constant object at 0x7febaf779610>
    argNames:
    - base_blob
    - ours_blob
    - theirs_blob
    - path
    - gitattributes
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 130
    functionName: dulwich.merge.merge_blobs
    functionSourceFile: dulwich.merge
    functionUses: 0
    functionsReached:
    - dulwich.merge_drivers.ProcessMergeDriver.merge
    - dulwich.merge.make_merge3
    - dulwich.merge._merge_lines
    - dulwich.merge_drivers.get_merge_driver_registry
    - path.decode
    - result.extend
    - ours_blob.data.splitlines
    - theirs_content.splitlines
    - base_content.splitlines
    - dulwich.merge_drivers.MergeDriverRegistry._register_builtin_drivers
    - os.path.join
    - dulwich.merge_drivers.MergeDriverRegistry.get_driver
    - dulwich.merge._merge3_to_bytes
    - subprocess.run
    - <builtin>.open
    - ours_content.splitlines
    - command.decode
    - theirs_blob.data.splitlines
    - m.merge_groups
    - gitattributes.match_path
    - f.read
    - dulwich.merge_drivers.MergeDriverRegistry.__init__
    - merge3.Merge3
    - dulwich.merge_drivers.MergeDriverRegistry._create_from_config
    - <builtin>.isinstance
    - dulwich.merge._can_merge_lines
    - attrs.get
    - cmd.replace
    - f.write
    - result.append
    - <builtin>.str
    - dulwich.merge_drivers.ProcessMergeDriver.__init__
    - merge_value.decode
    - tempfile.TemporaryDirectory
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gitattributes.match_path
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attrs.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: merge_value.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febadf37100>
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 238
    functionName: dulwich.merge_drivers.get_merge_driver_registry
    functionSourceFile: dulwich.merge_drivers
    functionUses: 1
    functionsReached:
    - dulwich.merge_drivers.MergeDriverRegistry._register_builtin_drivers
    - dulwich.merge_drivers.MergeDriverRegistry.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 183
    functionName: dulwich.merge_drivers.MergeDriverRegistry.get_driver
    functionSourceFile: dulwich.merge_drivers
    functionUses: 1
    functionsReached:
    - dulwich.merge_drivers.ProcessMergeDriver.__init__
    - dulwich.merge_drivers.MergeDriverRegistry._create_from_config
    - command.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf251130>
    - <ast.Constant object at 0x7febaf2516d0>
    argNames:
    - self
    - ancestor
    - ours
    - theirs
    - path
    - marker_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: dulwich.merge_drivers.ProcessMergeDriver.merge
    functionSourceFile: dulwich.merge_drivers
    functionUses: 1
    functionsReached:
    - <builtin>.open
    - cmd.replace
    - os.path.join
    - f.write
    - f.read
    - <builtin>.str
    - tempfile.TemporaryDirectory
    - subprocess.run
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ours_blob.data.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: theirs_blob.data.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base_content.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: theirs_content.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ours_content.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadf37a00>
    - <ast.Constant object at 0x7febadf37a90>
    argNames:
    - self
    - object_store
    - gitattributes
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 263
    functionName: dulwich.merge.Merger.__init__
    functionSourceFile: dulwich.merge
    functionUses: 22
    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 0x7febadf37910>
    argNames:
    - self
    - base_blob
    - ours_blob
    - theirs_blob
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 280
    functionName: dulwich.merge.Merger.merge_blobs
    functionSourceFile: dulwich.merge
    functionUses: 23
    functionsReached:
    - dulwich.merge.Merger.merge_blobs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 26
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 37
    ICount: 13
    IfCount: 26
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - base_tree
    - ours_tree
    - theirs_tree
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 302
    functionName: dulwich.merge.Merger.merge_trees
    functionSourceFile: dulwich.merge
    functionUses: 22
    functionsReached:
    - obj.set_raw_string
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.objects.ShaFile.__init__
    - <builtin>.set
    - dulwich.objects.S_ISGITLINK
    - dulwich.objects.is_blob
    - typing.cast.lookup_path
    - <builtin>.sorted
    - <builtin>.isinstance
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.merge.Merger.merge_blobs
    - all_paths.add
    - merged_entries.items
    - base_tree.items
    - base_tree.lookup_path
    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: base_tree.items
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_paths.add
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.items
    functionSourceFile: typing
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.items
    functionSourceFile: typing
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base_tree.lookup_path
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.lookup_path
    functionSourceFile: typing
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.lookup_path
    functionSourceFile: typing
    functionUses: 50
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conflicts.append
    functionSourceFile: <builtin>
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: merged_entries.items
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf791850>
    argNames:
    - object_store
    - tree
    - parents
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 491
    functionName: dulwich.merge._create_virtual_commit
    functionSourceFile: dulwich.merge
    functionUses: 7
    functionsReached:
    - object_store.add_object
    - <builtin>.super
    - dulwich.objects.Commit.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadabf970>
    - <ast.Constant object at 0x7febadabf9a0>
    argNames:
    - object_store
    - merge_bases
    - ours_commit
    - theirs_commit
    - gitattributes
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 530
    functionName: dulwich.merge.recursive_merge
    functionSourceFile: dulwich.merge
    functionUses: 6
    functionsReached:
    - obj.set_raw_string
    - merged_entries.items
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - dulwich.merge.Merger.__init__
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - object_store.add_object
    - <builtin>.set
    - dulwich.merge.three_way_merge
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - dulwich.merge._create_virtual_commit
    - <builtin>.sorted
    - <builtin>.isinstance
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.objects.is_tree
    - dulwich.merge.Merger.merge_trees
    - dulwich.merge.Merger.merge_blobs
    - all_paths.add
    - dulwich.objects.S_ISGITLINK
    - base_tree.items
    - base_tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5bebe0>
    - <ast.Constant object at 0x7febaf5bed60>
    argNames:
    - object_store
    - merge_bases
    - head_commit
    - other_commits
    - gitattributes
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 682
    functionName: dulwich.merge.octopus_merge
    functionSourceFile: dulwich.merge
    functionUses: 3
    functionsReached:
    - obj.set_raw_string
    - merged_entries.items
    - typing.cast.id.items
    - dulwich.objects.Tree.__init__
    - dulwich.merge.Merger.__init__
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - object_store.add_object
    - <builtin>.set
    - dulwich.merge.three_way_merge
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.sorted
    - <builtin>.isinstance
    - typing.cast.id.lookup_path
    - conflicts.append
    - dulwich.objects.is_tree
    - dulwich.merge.Merger.merge_trees
    - dulwich.merge.Merger.merge_blobs
    - all_paths.add
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - base_tree.items
    - base_tree.lookup_path
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    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: dulwich.merge_drivers
    functionSourceFile: dulwich.merge_drivers
    functionUses: 0
    functionsReached: []
    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 0x7febaf251c70>
    - <ast.Constant object at 0x7febaf2519a0>
    argNames:
    - self
    - ancestor
    - ours
    - theirs
    - path
    - marker_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 42
    functionName: dulwich.merge_drivers.MergeDriver.merge
    functionSourceFile: dulwich.merge_drivers
    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 0x7febaf251f40>
    argNames:
    - self
    - command
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: dulwich.merge_drivers.ProcessMergeDriver.__init__
    functionSourceFile: dulwich.merge_drivers
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.TemporaryDirectory
    functionSourceFile: tempfile
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cmd.replace
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadfe29a0>
    argNames:
    - self
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 147
    functionName: dulwich.merge_drivers.MergeDriverRegistry.__init__
    functionSourceFile: dulwich.merge_drivers
    functionUses: 2
    functionsReached:
    - dulwich.merge_drivers.MergeDriverRegistry._register_builtin_drivers
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 160
    functionName: dulwich.merge_drivers.MergeDriverRegistry._register_builtin_drivers
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - driver
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 165
    functionName: dulwich.merge_drivers.MergeDriverRegistry.register_driver
    functionSourceFile: dulwich.merge_drivers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - factory
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 174
    functionName: dulwich.merge_drivers.MergeDriverRegistry.register_factory
    functionSourceFile: dulwich.merge_drivers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 211
    functionName: dulwich.merge_drivers.MergeDriverRegistry._create_from_config
    functionSourceFile: dulwich.merge_drivers
    functionUses: 2
    functionsReached:
    - dulwich.merge_drivers.ProcessMergeDriver.__init__
    - command.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: command.decode
    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: dulwich.attrs
    functionSourceFile: dulwich.attrs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - attr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: dulwich.attrs._parse_attr
    functionSourceFile: dulwich.attrs
    functionUses: 15
    functionsReached:
    - attr.partition
    - attr.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: attr.partition
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 1
    IfCount: 13
    argCount: 1
    argDefaultValues: []
    argNames:
    - pattern
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: dulwich.attrs._translate_pattern
    functionSourceFile: dulwich.attrs
    functionUses: 18
    functionsReached:
    - re.escape
    - <builtin>.len
    - stuff.startswith
    - pattern.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: stuff.startswith
    functionSourceFile: <builtin>
    functionUses: 53
    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: 182
    functionName: dulwich.attrs.Pattern._compile
    functionSourceFile: dulwich.attrs
    functionUses: 17
    functionsReached:
    - pattern.startswith
    - re.compile
    - re.escape
    - <builtin>.len
    - stuff.startswith
    - dulwich.attrs._translate_pattern
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: dulwich.attrs.Pattern.match
    functionSourceFile: dulwich.attrs
    functionUses: 0
    functionsReached:
    - <builtin>.bool
    - path.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - patterns
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 207
    functionName: dulwich.attrs.match_path
    functionSourceFile: dulwich.attrs
    functionUses: 0
    functionsReached:
    - pattern.match
    - attributes.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: pattern.match
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attributes.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 235
    functionName: dulwich.attrs.parse_gitattributes_file
    functionSourceFile: dulwich.attrs
    functionUses: 7
    functionsReached:
    - dulwich.attrs.parse_git_attributes
    - dulwich.attrs._parse_attr
    - line.strip
    - attr.startswith
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - filename.encode
    - <builtin>.len
    - <builtin>.open
    - re.compile
    - stuff.startswith
    - <builtin>.isinstance
    - line.startswith
    - pattern.startswith
    - re.escape
    - line.split
    - attr.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filename.encode
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 259
    functionName: dulwich.attrs.read_gitattributes
    functionSourceFile: dulwich.attrs
    functionUses: 1
    functionsReached:
    - dulwich.attrs.parse_git_attributes
    - dulwich.attrs._parse_attr
    - line.strip
    - attr.startswith
    - os.path.exists
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - path.decode
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - filename.encode
    - <builtin>.len
    - os.path.join
    - dulwich.attrs.parse_gitattributes_file
    - <builtin>.open
    - re.compile
    - stuff.startswith
    - <builtin>.isinstance
    - line.startswith
    - pattern.startswith
    - re.escape
    - line.split
    - attr.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - patterns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 305
    functionName: dulwich.attrs.GitAttributes.add_patterns
    functionSourceFile: dulwich.attrs
    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: 315
    functionName: dulwich.attrs.GitAttributes.__len__
    functionSourceFile: dulwich.attrs
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 319
    functionName: dulwich.attrs.GitAttributes.__iter__
    functionSourceFile: dulwich.attrs
    functionUses: 4
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 324
    functionName: dulwich.attrs.GitAttributes.from_file
    functionSourceFile: dulwich.attrs
    functionUses: 4
    functionsReached:
    - dulwich.attrs.parse_git_attributes
    - dulwich.attrs._parse_attr
    - line.strip
    - attr.startswith
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - filename.encode
    - <builtin>.len
    - dulwich.attrs.parse_gitattributes_file
    - <builtin>.open
    - dulwich.attrs.GitAttributes.__init__
    - re.compile
    - stuff.startswith
    - <builtin>.isinstance
    - line.startswith
    - pattern.startswith
    - re.escape
    - line.split
    - attr.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 337
    functionName: dulwich.attrs.GitAttributes.from_path
    functionSourceFile: dulwich.attrs
    functionUses: 0
    functionsReached:
    - dulwich.attrs.parse_git_attributes
    - dulwich.attrs._parse_attr
    - line.strip
    - attr.startswith
    - os.path.exists
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - path.decode
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - dulwich.attrs.read_gitattributes
    - filename.encode
    - <builtin>.len
    - os.path.join
    - dulwich.attrs.parse_gitattributes_file
    - <builtin>.open
    - dulwich.attrs.GitAttributes.__init__
    - re.compile
    - stuff.startswith
    - <builtin>.isinstance
    - line.startswith
    - pattern.startswith
    - re.escape
    - line.split
    - attr.partition
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - pattern
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 349
    functionName: dulwich.attrs.GitAttributes.set_attribute
    functionSourceFile: dulwich.attrs
    functionUses: 4
    functionsReached:
    - pattern.startswith
    - re.compile
    - re.escape
    - <builtin>.len
    - dulwich.attrs.Pattern.__init__
    - <builtin>.enumerate
    - stuff.startswith
    - <builtin>.dict
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 386
    functionName: dulwich.attrs.GitAttributes.remove_pattern
    functionSourceFile: dulwich.attrs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 396
    functionName: dulwich.attrs.GitAttributes.to_bytes
    functionSourceFile: dulwich.attrs
    functionUses: 5
    functionsReached:
    - attr_strs.append
    - lines.append
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr_strs.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 424
    functionName: dulwich.attrs.GitAttributes.write_to_file
    functionSourceFile: dulwich.attrs
    functionUses: 4
    functionsReached:
    - <builtin>.open
    - dulwich.attrs.GitAttributes.to_bytes
    - attr_strs.append
    - lines.append
    - f.write
    - <builtin>.sorted
    - <builtin>.isinstance
    - filename.encode
    linkageType: 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: dulwich.objectspec
    functionSourceFile: dulwich.objectspec
    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:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: dulwich.objectspec.to_bytes
    functionSourceFile: dulwich.objectspec
    functionUses: 81
    functionsReached:
    - <builtin>.isinstance
    - typing.cast.id.encode
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.encode
    functionSourceFile: typing
    functionUses: 82
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 65
    functionName: dulwich.objectspec._resolve_object
    functionSourceFile: dulwich.objectspec
    functionUses: 24
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.to_bytes
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.cast.id.encode
    - dulwich.refs.local_tag_name
    - typing.NewType
    - <builtin>.isinstance
    - dulwich.objectspec.parse_ref
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - container
    - refspec
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 310
    functionName: dulwich.objectspec.parse_ref
    functionSourceFile: dulwich.objectspec
    functionUses: 80
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.to_bytes
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.cast.id.encode
    - dulwich.refs.local_tag_name
    - typing.NewType
    - <builtin>.isinstance
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - suffix
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: dulwich.objectspec._parse_number_suffix
    functionSourceFile: dulwich.objectspec
    functionUses: 24
    functionsReached:
    - <builtin>.len
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 27
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 39
    ICount: 2
    IfCount: 27
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - objectish
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 94
    functionName: dulwich.objectspec.parse_object
    functionSourceFile: dulwich.objectspec
    functionUses: 23
    functionsReached:
    - normalized.endswith
    - time_spec.decode
    - typing.cast.id.split
    - time.time
    - dt.timestamp
    - dulwich.objectspec.parse_commit
    - dulwich.objectspec.parse_ref
    - spec.isdigit
    - dulwich.objectspec.to_bytes
    - <builtin>.len
    - typing.cast.id.encode
    - dulwich.refs.local_tag_name
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - datetime.datetime.strptime
    - <builtin>.list
    - dulwich.objectspec.scan_for_short_id
    - typing.cast.id.startswith
    - dulwich.objectspec._resolve_object
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.cast.lookup_path
    - ret.append
    - <builtin>.range
    - dt.replace
    - object_store.iter_prefix
    - <builtin>.isinstance
    - typing.cast.id.endswith
    - time_str.replace
    - time_spec.strip
    - <builtin>.int
    - entries.reverse
    - dulwich.objectspec.parse_object
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - rest.endswith
    - typing.NewType
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.objectspec._parse_number_suffix
    - datetime.datetime.fromtimestamp
    - dulwich.objectspec.parse_tree
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    - ValueError
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.split
    functionSourceFile: typing
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - treeish
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 256
    functionName: dulwich.objectspec.parse_tree
    functionSourceFile: dulwich.objectspec
    functionUses: 37
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.to_bytes
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - <builtin>.len
    - dulwich.objectspec.scan_for_short_id
    - typing.cast.id.encode
    - dulwich.refs.local_branch_name
    - typing.cast.startswith
    - ret.append
    - dulwich.refs.local_tag_name
    - typing.NewType
    - dulwich.objectspec.parse_commit
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.parse_tree
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.read_reflog
    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: entries.reverse
    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: spec.isdigit
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - time_spec
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 38
    functionName: dulwich.approxidate.parse_approxidate
    functionSourceFile: dulwich.approxidate
    functionUses: 27
    functionsReached:
    - <builtin>.int
    - normalized.endswith
    - time_spec.decode
    - <builtin>.len
    - dt.replace
    - time.time
    - dt.timestamp
    - <builtin>.str
    - datetime.datetime.strptime
    - dulwich.approxidate.parse_relative_time
    - <builtin>.isinstance
    - datetime.datetime.fromtimestamp
    - time_str.replace
    - time_spec.strip
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.endswith
    functionSourceFile: typing
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadc56bb0>
    argNames:
    - lh_container
    - rh_container
    - refspec
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 335
    functionName: dulwich.objectspec.parse_reftuple
    functionSourceFile: dulwich.objectspec
    functionUses: 3
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.to_bytes
    - typing.cast.startswith
    - typing.cast.id.split
    - typing.cast.id.encode
    - dulwich.refs.local_branch_name
    - dulwich.refs.local_tag_name
    - typing.NewType
    - <builtin>.isinstance
    - dulwich.objectspec.parse_ref
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaef03a00>
    argNames:
    - lh_container
    - rh_container
    - refspecs
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 384
    functionName: dulwich.objectspec.parse_reftuples
    functionSourceFile: dulwich.objectspec
    functionUses: 2
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.parse_reftuple
    - dulwich.objectspec.to_bytes
    - typing.cast.startswith
    - typing.cast.id.split
    - dulwich.refs.local_branch_name
    - typing.cast.id.encode
    - ret.append
    - dulwich.refs.local_tag_name
    - typing.NewType
    - <builtin>.isinstance
    - dulwich.objectspec.parse_ref
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - container
    - refspecs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 410
    functionName: dulwich.objectspec.parse_refs
    functionSourceFile: dulwich.objectspec
    functionUses: 0
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.to_bytes
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.cast.id.encode
    - ret.append
    - dulwich.refs.local_tag_name
    - typing.NewType
    - <builtin>.isinstance
    - dulwich.objectspec.parse_ref
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - committish
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 432
    functionName: dulwich.objectspec.parse_commit_range
    functionSourceFile: dulwich.objectspec
    functionUses: 3
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.to_bytes
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - <builtin>.len
    - typing.cast.id.split
    - typing.cast.id.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.refs.local_branch_name
    - typing.cast.startswith
    - ret.append
    - dulwich.refs.local_tag_name
    - typing.NewType
    - dulwich.objectspec.parse_commit
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.objectspec.parse_ref
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - prefix
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 468
    functionName: dulwich.objectspec.AmbiguousShortId.__init__
    functionSourceFile: dulwich.objectspec
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - object_store
    - prefix
    - tp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 479
    functionName: dulwich.objectspec.scan_for_short_id
    functionSourceFile: dulwich.objectspec
    functionUses: 74
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - object_store.iter_prefix
    - ret.append
    linkageType: pythonLinkage
    raised:
    - KeyError
    - AmbiguousShortId
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_store.iter_prefix
    functionSourceFile: <builtin>
    functionUses: 75
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 507
    functionName: dulwich.objectspec.parse_commit.dereference_tag
    functionSourceFile: dulwich.objectspec
    functionUses: 74
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - KeyError
    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: dulwich.approxidate
    functionSourceFile: dulwich.approxidate
    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: time_spec.decode
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time_spec.strip
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime.fromtimestamp
    functionSourceFile: datetime
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dt.replace
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dt.timestamp
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - time_str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: dulwich.approxidate.parse_relative_time
    functionSourceFile: dulwich.approxidate
    functionUses: 30
    functionsReached:
    - <builtin>.int
    - normalized.endswith
    - <builtin>.len
    - <builtin>.str
    - time_str.replace
    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: datetime.datetime.strptime
    functionSourceFile: datetime
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time_str.replace
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalized.endswith
    functionSourceFile: <builtin>
    functionUses: 31
    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: dulwich.graph
    functionSourceFile: dulwich.graph
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: dulwich.graph.WorkList.__init__
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - item
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: dulwich.graph.WorkList.add
    functionSourceFile: dulwich.graph
    functionUses: 0
    functionsReached:
    - heapq.heappush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: heapq.heappush
    functionSourceFile: heapq
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: dulwich.graph.WorkList.get
    functionSourceFile: dulwich.graph
    functionUses: 0
    functionsReached:
    - heapq.heappop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: heapq.heappop
    functionSourceFile: heapq
    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: 0
    functionLinenumber: 75
    functionName: dulwich.graph.WorkList.iter
    functionSourceFile: dulwich.graph
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 9
    IfCount: 11
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2b4850>
    - <ast.Constant object at 0x7febaf2b4dc0>
    argNames:
    - lookup_parents
    - c1
    - c2s
    - lookup_stamp
    - min_stamp
    - shallows
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 85
    functionName: dulwich.graph._find_lcas
    functionSourceFile: dulwich.graph
    functionUses: 29
    functionsReached:
    - wlst.iter
    - cands.append
    - cstates.get
    - wlst.add
    - dulwich.graph._find_lcas._has_candidates
    - results.sort
    - wlst.get
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.graph.find_merge_base.lookup_parents
    - parents_provider.get_parents
    - results.append
    - dulwich.graph.can_fast_forward.lookup_parents
    - <builtin>.isinstance
    - dulwich.graph.WorkList.__init__
    - dulwich.graph.find_octopus_base.lookup_stamp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - wlst
    - cstates
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: dulwich.graph._find_lcas._has_candidates
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached:
    - wlst.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wlst.iter
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cmtid
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 228
    functionName: dulwich.graph.find_merge_base.lookup_stamp
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cmtid
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 320
    functionName: dulwich.graph.can_fast_forward.lookup_stamp
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cmtid
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 272
    functionName: dulwich.graph.find_octopus_base.lookup_stamp
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wlst.add
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cstates.get
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wlst.get
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cands.append
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cmtid
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 281
    functionName: dulwich.graph.find_octopus_base.lookup_parents
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached:
    - parents_provider.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cmtid
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 237
    functionName: dulwich.graph.find_merge_base.lookup_parents
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached:
    - parents_provider.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - cmtid
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 329
    functionName: dulwich.graph.can_fast_forward.lookup_parents
    functionSourceFile: dulwich.graph
    functionUses: 30
    functionsReached:
    - parents_provider.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: results.append
    functionSourceFile: <builtin>
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.graph._find_lcas.<lambda1>
    functionSourceFile: dulwich.graph
    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: results.sort
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.parents_provider
    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: parents_provider.get_parents
    functionSourceFile: <builtin>
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - commit_ids
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 258
    functionName: dulwich.graph.find_octopus_base
    functionSourceFile: dulwich.graph
    functionUses: 7
    functionsReached:
    - dulwich.graph._find_lcas
    - cands.append
    - cstates.get
    - dulwich.graph._find_lcas._has_candidates
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.graph.WorkList.__init__
    - wlst.iter
    - wlst.add
    - <builtin>.len
    - results.sort
    - repo.parents_provider
    - next_lcas.extend
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - <builtin>.list
    - parents_provider.get_parents
    - wlst.get
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: next_lcas.extend
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - repo
    - c1
    - c2
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 309
    functionName: dulwich.graph.can_fast_forward
    functionSourceFile: dulwich.graph
    functionUses: 9
    functionsReached:
    - dulwich.graph._find_lcas
    - cstates.get
    - cands.append
    - dulwich.graph._find_lcas._has_candidates
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.graph.WorkList.__init__
    - wlst.iter
    - wlst.add
    - <builtin>.len
    - results.sort
    - repo.parents_provider
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - wlst.get
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - commit_ids
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 363
    functionName: dulwich.graph.independent
    functionSourceFile: dulwich.graph
    functionUses: 4
    functionsReached:
    - dulwich.graph._find_lcas
    - cands.append
    - cstates.get
    - dulwich.graph._find_lcas._has_candidates
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.graph.WorkList.__init__
    - wlst.iter
    - wlst.add
    - <builtin>.len
    - results.sort
    - repo.parents_provider
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - <builtin>.list
    - parents_provider.get_parents
    - wlst.get
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - dulwich.graph.find_octopus_base.lookup_stamp
    - independent_commits.append
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - <builtin>.enumerate
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: independent_commits.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.worktree
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febadc362b0>
    - <ast.Constant object at 0x7febadc36a30>
    - <ast.Constant object at 0x7febadc368e0>
    - <ast.Constant object at 0x7febadc36e20>
    - <ast.Constant object at 0x7febadc36a00>
    - <ast.Constant object at 0x7febadc361f0>
    - <ast.Constant object at 0x7febadc362e0>
    argNames:
    - self
    - path
    - head
    - branch
    - bare
    - detached
    - locked
    - prunable
    - lock_reason
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: dulwich.worktree.WorkTreeInfo.__init__
    functionSourceFile: dulwich.worktree
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 114
    functionName: dulwich.worktree.WorkTreeInfo.__repr__
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: dulwich.worktree.WorkTreeInfo.__eq__
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 133
    functionName: dulwich.worktree.WorkTreeInfo.open
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.worktree.WorkTree.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 163
    functionName: dulwich.worktree.WorkTreeContainer.list
    functionSourceFile: dulwich.worktree
    functionUses: 1
    functionsReached:
    - os.path.exists
    - os.path.isdir
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - os.path.isabs
    - <builtin>.len
    - os.path.join
    - os.fsdecode
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.open
    - dulwich.repo.BaseRepo.head
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - f.read
    - worktrees.append
    - os.path.abspath
    - os.listdir
    - dulwich.repo.Repo.controldir
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 833
    functionName: dulwich.worktree.list_worktrees
    functionSourceFile: dulwich.worktree
    functionUses: 8
    functionsReached:
    - <builtin>.open
    - os.listdir
    - dulwich.repo.BaseRepo.head
    - os.path.isabs
    - dulwich.worktree.read_worktree_lock_reason
    - <builtin>.len
    - os.path.dirname
    - os.path.exists
    - os.path.join
    - f.read
    - os.path.isdir
    - worktrees.append
    - dulwich.repo.Repo.controldir
    - typing.NewType
    - os.fsdecode
    - os.path.abspath
    - head_contents.startswith
    - dulwich.worktree.WorkTreeInfo.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf755670>
    - <ast.Constant object at 0x7febaf755250>
    - <ast.Constant object at 0x7febaf7550d0>
    - <ast.Constant object at 0x7febaf7551c0>
    - <ast.Constant object at 0x7febaf7554c0>
    argNames:
    - self
    - path
    - branch
    - commit
    - force
    - detach
    - exist_ok
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 171
    functionName: dulwich.worktree.WorkTreeContainer.add
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - branch.encode
    - dulwich.config.Config.get_boolean
    - os.path.normpath
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - r.get_worktree
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.set
    - wt_repo.get_worktree
    - dulwich.config.ConfigDict.items
    - wt_repo.refs.set_symbolic_ref
    - ret.append
    - f.read
    - worktrees.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.worktree.add_worktree
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - os.path.basename
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.Repo._init_new_working_directory
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.repo.Repo._get_shared_repository_permissions
    - os.chmod
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - wt_repo.controldir
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 5
    IfCount: 10
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf39d940>
    - <ast.Constant object at 0x7febaf39d370>
    - <ast.Constant object at 0x7febaf39d520>
    - <ast.Constant object at 0x7febaf39da60>
    - <ast.Constant object at 0x7febaf39d250>
    argNames:
    - repo
    - path
    - branch
    - commit
    - force
    - detach
    - exist_ok
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 937
    functionName: dulwich.worktree.add_worktree
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - branch.encode
    - dulwich.config.Config.get_boolean
    - os.path.normpath
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - r.get_worktree
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.set
    - wt_repo.get_worktree
    - dulwich.config.ConfigDict.items
    - wt_repo.refs.set_symbolic_ref
    - ret.append
    - f.read
    - worktrees.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - os.path.basename
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.Repo._init_new_working_directory
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.repo.Repo._get_shared_repository_permissions
    - os.chmod
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - wt_repo.controldir
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febaf399340>
    argNames:
    - self
    - path
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 203
    functionName: dulwich.worktree.WorkTreeContainer.remove
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.dirname
    - os.path.exists
    - os.path.join
    - f.read
    - os.path.isdir
    - dulwich.repo.Repo.controldir
    - shutil.rmtree
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    - dulwich.worktree.remove_worktree
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 3
    IfCount: 10
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf54c310>
    argNames:
    - repo
    - path
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1034
    functionName: dulwich.worktree.remove_worktree
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.exists
    - os.path.dirname
    - os.path.join
    - f.read
    - os.path.isdir
    - dulwich.repo.Repo.controldir
    - shutil.rmtree
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf399d60>
    - <ast.Constant object at 0x7febaf3991c0>
    argNames:
    - self
    - expire
    - dry_run
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 212
    functionName: dulwich.worktree.WorkTreeContainer.prune
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.exists
    - os.path.dirname
    - os.path.join
    - f.read
    - os.path.isdir
    - time.time
    - dulwich.repo.Repo.controldir
    - shutil.rmtree
    - os.fsdecode
    - os.path.abspath
    - pruned.append
    - dulwich.worktree.prune_worktrees
    - os.stat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadd6e8e0>
    - <ast.Constant object at 0x7febadd6ea60>
    argNames:
    - repo
    - expire
    - dry_run
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1104
    functionName: dulwich.worktree.prune_worktrees
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.dirname
    - os.path.exists
    - os.path.join
    - f.read
    - os.path.isdir
    - time.time
    - dulwich.repo.Repo.controldir
    - shutil.rmtree
    - os.fsdecode
    - os.path.abspath
    - pruned.append
    - os.stat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - old_path
    - new_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 226
    functionName: dulwich.worktree.WorkTreeContainer.move
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.fsencode
    - os.listdir
    - os.path.isabs
    - shutil.move
    - os.path.exists
    - os.path.join
    - os.path.dirname
    - f.write
    - f.read
    - dulwich.repo.Repo.controldir
    - os.path.isdir
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    - dulwich.worktree.move_worktree
    - dulwich.worktree._find_worktree_id
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - repo
    - old_path
    - new_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1240
    functionName: dulwich.worktree.move_worktree
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - os.fsencode
    - os.listdir
    - os.path.isabs
    - shutil.move
    - os.path.exists
    - os.path.join
    - os.path.dirname
    - f.write
    - f.read
    - dulwich.repo.Repo.controldir
    - os.path.isdir
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    - dulwich.worktree._find_worktree_id
    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 0x7febae64ea90>
    argNames:
    - self
    - path
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 239
    functionName: dulwich.worktree.WorkTreeContainer.lock
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.dirname
    - f.write
    - os.path.join
    - f.read
    - os.path.isdir
    - dulwich.repo.Repo.controldir
    - <builtin>.isinstance
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - dulwich.worktree.lock_worktree
    - dulwich.worktree._find_worktree_id
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf7e6190>
    argNames:
    - repo
    - path
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1166
    functionName: dulwich.worktree.lock_worktree
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.dirname
    - f.write
    - os.path.join
    - f.read
    - os.path.isdir
    - dulwich.repo.Repo.controldir
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    - dulwich.worktree._find_worktree_id
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 250
    functionName: dulwich.worktree.WorkTreeContainer.unlock
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.exists
    - os.path.dirname
    - os.path.join
    - f.read
    - os.remove
    - dulwich.repo.Repo.controldir
    - os.path.isdir
    - os.fsdecode
    - dulwich.worktree.unlock_worktree
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    - dulwich.worktree._find_worktree_id
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1185
    functionName: dulwich.worktree.unlock_worktree
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.exists
    - os.path.dirname
    - os.path.join
    - f.read
    - os.remove
    - dulwich.repo.Repo.controldir
    - os.path.isdir
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    - dulwich.worktree._find_worktree_id
    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 0x7febaf961ac0>
    argNames:
    - self
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 258
    functionName: dulwich.worktree.WorkTreeContainer.repair
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - os.fsencode
    - repaired.append
    - os.path.exists
    - os.path.isdir
    - os.fspath
    - gitdir_content.startswith
    - os.path.isabs
    - os.path.join
    - os.fsdecode
    - content.startswith
    - <builtin>.open
    - os.path.dirname
    - f.read
    - os.path.abspath
    - <builtin>.isinstance
    - os.listdir
    - dulwich.worktree.repair_worktree
    - f.write
    - dulwich.repo.Repo.controldir
    - wf.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 5
    IfCount: 12
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadea0880>
    argNames:
    - repo
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1285
    functionName: dulwich.worktree.repair_worktree
    functionSourceFile: dulwich.worktree
    functionUses: 3
    functionsReached:
    - os.fsencode
    - repaired.append
    - os.path.exists
    - os.path.isdir
    - os.fspath
    - gitdir_content.startswith
    - os.path.isabs
    - os.path.join
    - os.fsdecode
    - content.startswith
    - <builtin>.open
    - os.path.dirname
    - f.read
    - os.path.abspath
    - <builtin>.isinstance
    - os.listdir
    - f.write
    - dulwich.repo.Repo.controldir
    - wf.write
    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: 4
    functionLinenumber: 272
    functionName: dulwich.worktree.WorkTreeContainer.__iter__
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - dulwich.worktree.WorkTreeContainer.list
    - os.path.exists
    - os.path.isdir
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - os.path.isabs
    - <builtin>.len
    - os.path.join
    - os.fsdecode
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.open
    - dulwich.repo.BaseRepo.head
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - f.read
    - worktrees.append
    - os.path.abspath
    - os.listdir
    - dulwich.repo.Repo.controldir
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: keyid_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message.encode
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signoff_identity.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 32
    ICount: 8
    IfCount: 22
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febb01e6b50>
    - <ast.Constant object at 0x7febb01e64c0>
    - <ast.Constant object at 0x7febb01e6430>
    - <ast.Constant object at 0x7febafdc4280>
    argNames:
    - message
    - key
    - value
    - separator
    - where
    - if_exists
    - if_missing
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 328
    functionName: dulwich.trailers.add_trailer_to_message
    functionSourceFile: dulwich.trailers
    functionUses: 4
    functionsReached:
    - result_message.endswith
    - message.decode
    - <builtin>.enumerate
    - c.isspace
    - dulwich.trailers.Trailer.__init__
    - <builtin>.len
    - stripped.lstrip
    - line.rstrip
    - message_without_trailers.endswith
    - dulwich.trailers._parse_trailer_lines
    - <builtin>.range
    - dulwich.trailers.parse_trailers
    - message_without_trailers.encode
    - text.splitlines
    - <builtin>.any
    - dulwich.trailers._is_trailer_block
    - updated_trailers.append
    - result.insert
    - result.append
    - dulwich.trailers.format_trailers
    - <builtin>.str
    - message_lines.pop
    - line.split
    - stripped.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gc.maybe_auto_gc
    functionSourceFile: gc
    functionUses: 11
    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 0x7febaf216250>
    argNames:
    - src
    - dst
    - target_is_directory
    - dir_fd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 724
    functionName: dulwich.worktree.WorkTree.reset_index.symlink_fn
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - f.write
    - <builtin>.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: d.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - worktree_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 813
    functionName: dulwich.worktree.read_worktree_lock_reason
    functionSourceFile: dulwich.worktree
    functionUses: 9
    functionsReached:
    - <builtin>.open
    - os.path.exists
    - os.path.join
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: head_contents.startswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: worktrees.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: branch.encode
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wt_repo.controldir
    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: wt_repo.refs.set_symbolic_ref
    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: wt_repo.get_worktree
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.stat
    functionSourceFile: os
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pruned.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1200
    functionName: dulwich.worktree._find_worktree_id
    functionSourceFile: dulwich.worktree
    functionUses: 12
    functionsReached:
    - <builtin>.open
    - os.listdir
    - os.path.isabs
    - os.path.dirname
    - os.path.join
    - f.read
    - os.path.isdir
    - dulwich.repo.Repo.controldir
    - os.fsdecode
    - os.path.abspath
    - os.fspath
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shutil.move
    functionSourceFile: shutil
    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: gitdir_content.startswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repaired.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: content.startswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wf.write
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextlib.contextmanager
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadda6c40>
    argNames:
    - repo
    - prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1402
    functionName: dulwich.worktree.temporary_worktree
    functionSourceFile: dulwich.worktree
    functionUses: 0
    functionsReached:
    - pathlib.Path
    - repo.worktrees.remove
    - shutil.rmtree
    - tempfile.mkdtemp
    - pathlib.Path.exists
    - repo.worktrees.add
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.worktrees.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.worktrees.remove
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path.exists
    functionSourceFile: pathlib
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.trailers
    functionSourceFile: dulwich.trailers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febada6b070>
    argNames:
    - self
    - key
    - value
    - separator
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: dulwich.trailers.Trailer.__init__
    functionSourceFile: dulwich.trailers
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: dulwich.trailers.Trailer.__eq__
    functionSourceFile: dulwich.trailers
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 80
    functionName: dulwich.trailers.Trailer.__repr__
    functionSourceFile: dulwich.trailers
    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: 88
    functionName: dulwich.trailers.Trailer.__str__
    functionSourceFile: dulwich.trailers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae0ab970>
    argNames:
    - message
    - separators
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 97
    functionName: dulwich.trailers.parse_trailers
    functionSourceFile: dulwich.trailers
    functionUses: 5
    functionsReached:
    - dulwich.trailers._is_trailer_block
    - message.decode
    - message_without_trailers.endswith
    - <builtin>.any
    - stripped.split
    - <builtin>.len
    - dulwich.trailers._parse_trailer_lines
    - stripped.lstrip
    - <builtin>.range
    - message_without_trailers.encode
    - line.rstrip
    - message_lines.pop
    - line.split
    - text.splitlines
    - c.isspace
    - dulwich.trailers.Trailer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message.decode
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.splitlines
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - lines
    - separators
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 195
    functionName: dulwich.trailers._is_trailer_block
    functionSourceFile: dulwich.trailers
    functionUses: 6
    functionsReached:
    - <builtin>.len
    - line.split
    - c.isspace
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - lines
    - separators
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 257
    functionName: dulwich.trailers._parse_trailer_lines
    functionSourceFile: dulwich.trailers
    functionUses: 6
    functionsReached:
    - c.isspace
    - <builtin>.any
    - <builtin>.len
    - stripped.lstrip
    - line.rstrip
    - stripped.split
    - dulwich.trailers.Trailer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message_lines.pop
    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: message_without_trailers.endswith
    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: message_without_trailers.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.isspace
    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: stripped.lstrip
    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: stripped.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:
    - trailers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 312
    functionName: dulwich.trailers.format_trailers
    functionSourceFile: dulwich.trailers
    functionUses: 5
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: updated_trailers.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: result.insert
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result_message.endswith
    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: dulwich.walk
    functionSourceFile: dulwich.walk
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - walker
    - commit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 63
    functionName: dulwich.walk.WalkEntry.__init__
    functionSourceFile: dulwich.walk
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae617d00>
    argNames:
    - self
    - path_prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 76
    functionName: dulwich.walk.WalkEntry.changes
    functionSourceFile: dulwich.walk
    functionUses: 1
    functionsReached:
    - todo.pop
    - todo.extend
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - stat.S_ISDIR
    - parent.lookup_path
    - dulwich.diff_tree._skip_tree
    - p.lookup_path
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.diff_tree.TreeChange.delete
    - <builtin>.super
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.list
    - dulwich.diff_tree.walk_trees
    - dulwich.diff_tree.tree_changes
    - <builtin>.isinstance
    - parent_trees.append
    - commit_tree.lookup_path
    - parent.append
    - typing.cast
    - dulwich._diff_tree._is_tree
    - filter_path.startswith
    - rename_detector.changes_with_renames
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.walk.Walker.<lambda1>
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parent.lookup_path
    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: parent_trees.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.walk.WalkEntry.changes.<lambda1>
    functionSourceFile: dulwich.walk
    functionUses: 0
    functionsReached:
    - todo.pop
    - todo.extend
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - stat.S_ISDIR
    - dulwich.diff_tree._skip_tree
    - changes_by_path.items
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.diff_tree.TreeChange.delete
    - <builtin>.super
    - dulwich.diff_tree.walk_trees
    - dulwich.diff_tree._all_eq
    - collections.defaultdict
    - dulwich.diff_tree.tree_changes
    - dulwich.diff_tree.tree_changes_for_merge.change_type
    - <builtin>.sorted
    - dulwich.diff_tree.tree_changes_for_merge.old_sha
    - <builtin>.isinstance
    - dulwich.diff_tree._all_same
    - dulwich.diff_tree.tree_changes_for_merge
    - dulwich._diff_tree._is_tree
    - <builtin>.enumerate
    - filter_path.startswith
    - rename_detector.changes_with_renames
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.lookup_path
    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: parent.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_tree.lookup_path
    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: 5
    functionLinenumber: 162
    functionName: dulwich.walk.WalkEntry.__repr__
    functionSourceFile: dulwich.walk
    functionUses: 0
    functionsReached:
    - todo.pop
    - todo.extend
    - path.startswith
    - dulwich._diff_tree._merge_entries
    - stat.S_ISDIR
    - parent.lookup_path
    - dulwich.diff_tree._skip_tree
    - p.lookup_path
    - dulwich.objects.Tree.__init__
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.walk.WalkEntry.changes
    - dulwich.diff_tree.TreeChange.delete
    - <builtin>.super
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.list
    - dulwich.diff_tree.walk_trees
    - dulwich.diff_tree.tree_changes
    - <builtin>.isinstance
    - parent_trees.append
    - commit_tree.lookup_path
    - parent.append
    - typing.cast
    - dulwich._diff_tree._is_tree
    - filter_path.startswith
    - rename_detector.changes_with_renames
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - walker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 170
    functionName: dulwich.walk._CommitTimeQueue.__init__
    functionSourceFile: dulwich.walk
    functionUses: 6
    functionsReached:
    - heapq.heappush
    - itertools.chain
    - dulwich.walk._CommitTimeQueue._push
    - <builtin>.isinstance
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - object_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 187
    functionName: dulwich.walk._CommitTimeQueue._push
    functionSourceFile: dulwich.walk
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - heapq.heappush
    - dulwich.walk._CommitTimeQueue._push
    linkageType: pythonLinkage
    raised:
    - MissingCommitError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - commit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 204
    functionName: dulwich.walk._CommitTimeQueue._exclude_parents
    functionSourceFile: dulwich.walk
    functionUses: 1
    functionsReached:
    - todo.pop
    - excluded.add
    - todo.append
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: excluded.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 4
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 221
    functionName: dulwich.walk._CommitTimeQueue.next
    functionSourceFile: dulwich.walk
    functionUses: 0
    functionsReached:
    - todo.pop
    - <builtin>.all
    - excluded.add
    - heapq.heappush
    - heapq.heappop
    - todo.append
    - dulwich.walk.WalkEntry.__init__
    - dulwich.walk._CommitTimeQueue._push
    - dulwich.walk._CommitTimeQueue._exclude_parents
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - changed_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 351
    functionName: dulwich.walk.Walker._path_matches
    functionSourceFile: dulwich.walk
    functionUses: 3
    functionsReached:
    - changed_path.startswith
    - <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: changed_path.startswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - change
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 366
    functionName: dulwich.walk.Walker._change_matches
    functionSourceFile: dulwich.walk
    functionUses: 2
    functionsReached:
    - changed_path.startswith
    - dulwich.walk.Walker._path_matches
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 384
    functionName: dulwich.walk.Walker._should_return
    functionSourceFile: dulwich.walk
    functionUses: 1
    functionsReached:
    - changed_path.startswith
    - dulwich.walk.Walker._path_matches
    - entry.changes
    - <builtin>.len
    - dulwich.walk.Walker._change_matches
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.changes
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 440
    functionName: dulwich.walk.Walker._next
    functionSourceFile: dulwich.walk
    functionUses: 0
    functionsReached:
    - changed_path.startswith
    - dulwich.walk.Walker._path_matches
    - entry.changes
    - <builtin>.next
    - <builtin>.len
    - dulwich.walk.Walker._change_matches
    - dulwich.walk.Walker._should_return
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - results
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 455
    functionName: dulwich.walk.Walker._reorder
    functionSourceFile: dulwich.walk
    functionUses: 5
    functionsReached:
    - collections.deque
    - todo.append
    - dulwich.walk.<lambda1>
    - collections.defaultdict
    - pending.pop
    - todo.appendleft
    - dulwich.walk._topo_reorder
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.list
    - <builtin>.reversed
    - todo.popleft
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Lambda object at 0x7febaf2afd90>
    argNames:
    - entries
    - get_parents
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 477
    functionName: dulwich.walk._topo_reorder
    functionSourceFile: dulwich.walk
    functionUses: 6
    functionsReached:
    - collections.deque
    - dulwich.walk.<lambda1>
    - todo.append
    - collections.defaultdict
    - pending.pop
    - todo.appendleft
    - dulwich.walk.Walker.<lambda1>
    - todo.popleft
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 472
    functionName: dulwich.walk.Walker.__iter__
    functionSourceFile: dulwich.walk
    functionUses: 4
    functionsReached:
    - <builtin>.iter
    - collections.deque
    - todo.append
    - dulwich.walk.<lambda1>
    - dulwich.walk.Walker._reorder
    - collections.defaultdict
    - pending.pop
    - todo.appendleft
    - dulwich.walk._topo_reorder
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.list
    - <builtin>.reversed
    - todo.popleft
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.walk.<lambda1>
    functionSourceFile: ''
    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: todo.popleft
    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: pending.pop
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: todo.appendleft
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.hooks
    functionSourceFile: dulwich.hooks
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 44
    functionName: dulwich.hooks.Hook.execute
    functionSourceFile: dulwich.hooks
    functionUses: 0
    functionsReached: []
    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 0x7febadd06520>
    - <ast.Constant object at 0x7febadd06100>
    - <ast.Constant object at 0x7febaf5b4cd0>
    argNames:
    - self
    - name
    - path
    - numparam
    - pre_exec_callback
    - post_exec_callback
    - cwd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: dulwich.hooks.ShellHook.__init__
    functionSourceFile: dulwich.hooks
    functionUses: 290
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 99
    functionName: dulwich.hooks.ShellHook.execute
    functionSourceFile: dulwich.hooks
    functionUses: 0
    functionsReached:
    - subprocess.call
    - dulwich.hooks.CommitMsgShellHook.__init__.prepare_msg
    - tempfile.mkstemp
    - <builtin>.len
    - f.write
    - <builtin>.list
    - os.path.relpath
    - os.fdopen
    linkageType: pythonLinkage
    raised:
    - HookError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.relpath
    functionSourceFile: os
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subprocess.call
    functionSourceFile: subprocess
    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:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: dulwich.hooks.CommitMsgShellHook.__init__.prepare_msg
    functionSourceFile: dulwich.hooks
    functionUses: 1
    functionsReached:
    - tempfile.mkstemp
    - f.write
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - success
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 174
    functionName: dulwich.hooks.CommitMsgShellHook.__init__.clean_msg
    functionSourceFile: dulwich.hooks
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - os.unlink
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - client_refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: dulwich.hooks.PostReceiveShellHook.execute
    functionSourceFile: dulwich.hooks
    functionUses: 0
    functionsReached:
    - subprocess.Popen
    - err_data.decode
    - os.path.exists
    - os.environ.copy
    - p.communicate
    - out_data.decode
    linkageType: pythonLinkage
    raised:
    - HookError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.copy
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.communicate
    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: out_data.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: err_data.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.lfs
    functionSourceFile: dulwich.lfs
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 109
    functionName: dulwich.lfs.LFSStore.__init__
    functionSourceFile: dulwich.lfs
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.controldir
    functionSourceFile: <builtin>
    functionUses: 30
    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 0x7febadfe97c0>
    argNames:
    - cls
    - controldir
    - create
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: dulwich.lfs.LFSStore.from_controldir
    functionSourceFile: dulwich.lfs
    functionUses: 0
    functionsReached:
    - os.path.join
    - os.path.isdir
    - os.mkdir
    - dulwich.lfs.LFSStore.__init__
    - dulwich.lfs.LFSStore.create
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 142
    functionName: dulwich.lfs.LFSStore._sha_path
    functionSourceFile: dulwich.lfs
    functionUses: 11
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 145
    functionName: dulwich.lfs.LFSStore.open_object
    functionSourceFile: dulwich.lfs
    functionUses: 7
    functionsReached:
    - <builtin>.open
    - dulwich.lfs.LFSStore._sha_path
    - os.path.join
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - chunks
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 152
    functionName: dulwich.lfs.LFSStore.write_object
    functionSourceFile: dulwich.lfs
    functionUses: 3
    functionsReached:
    - hashlib.sha256
    - dulwich.lfs.LFSStore._sha_path
    - os.path.exists
    - os.path.dirname
    - data_chunks.append
    - os.makedirs
    - os.path.join
    - os.remove
    - f.flush
    - f.write
    - tempfile.NamedTemporaryFile
    - sha.hexdigest
    - sha.update
    - os.rename
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: sha.update
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data_chunks.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sha.hexdigest
    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: tempfile.NamedTemporaryFile
    functionSourceFile: tempfile
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - oid
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 193
    functionName: dulwich.lfs.LFSPointer.__init__
    functionSourceFile: dulwich.lfs
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: dulwich.lfs.LFSPointer.from_bytes
    functionSourceFile: dulwich.lfs
    functionUses: 12
    functionsReached:
    - line.startswith
    - text.strip
    - <builtin>.int
    - <builtin>.len
    - data.decode
    - dulwich.lfs.LFSPointer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.decode
    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: text.strip
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 238
    functionName: dulwich.lfs.LFSPointer.to_bytes
    functionSourceFile: dulwich.lfs
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 246
    functionName: dulwich.lfs.LFSPointer.is_valid_oid
    functionSourceFile: dulwich.lfs
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 265
    functionName: dulwich.lfs.LFSFilterDriver.clean
    functionSourceFile: dulwich.lfs
    functionUses: 3
    functionsReached:
    - line.startswith
    - text.strip
    - <builtin>.int
    - dulwich.lfs.LFSPointer.from_bytes
    - <builtin>.len
    - data.decode
    - dulwich.lfs.LFSPointer.__init__
    - dulwich.lfs.LFSPointer.to_bytes
    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 0x7febaf28bbb0>
    argNames:
    - self
    - data
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 279
    functionName: dulwich.lfs.LFSFilterDriver.smudge
    functionSourceFile: dulwich.lfs
    functionUses: 2
    functionsReached:
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - action_data.get
    - no_proxy_value.lstrip
    - os.path.join
    - dulwich.lfs.HTTPLFSClient.__init__
    - <builtin>.float
    - json.loads
    - dulwich.lfs._is_valid_lfs_url
    - ipaddress.ip_network
    - config.get_boolean
    - host_and_path.split
    - urllib3.make_headers
    - <builtin>.any
    - urllib.parse.urlparse
    - dulwich.client.default_user_agent_string
    - objects.append
    - urllib.parse.urlparse.hostname.endswith
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - dulwich.lfs.FileLFSClient.download
    - json.dumps
    - matching_sections.append
    - os.environ.get
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - text.strip
    - <builtin>.len
    - timeout_bytes.decode
    - download_headers.update
    - dulwich.lfs.LFSFilterDriver._download_object
    - header_name.decode
    - <builtin>.open
    - sys.getdefaultencoding
    - line.startswith
    - dulwich.lfs.HTTPLFSClient.batch
    - <builtin>.int
    - ca_certs_bytes.decode
    - dulwich.lfs.LFSPointer.from_bytes
    - obj_data.get
    - dulwich.lfs.LFSStore.open_object
    - <builtin>.bool
    - dulwich.client._urlmatch_http_sections
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - urllib3.ProxyManager
    - dulwich.credentials.match_urls
    - data.decode
    - matching_sections.sort
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - ipaddress.ip_address
    - logger.warning
    - f.read
    - pointer.is_valid_oid
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - user_agent_bytes.decode
    - dulwich.lfs.FileLFSClient.__init__
    - dulwich.lfs.LFSStore._sha_path
    - no_proxy_value.strip
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - proxy_server.decode
    - dulwich.lfs._get_lfs_user_agent
    - remote_url.startswith
    - hashlib.sha256
    - remote_url.endswith
    - dulwich.lfs.LFSClient.from_config
    - no_proxy_value.lower
    - dulwich.lfs.HTTPLFSClient.download
    - extra_header.split
    - req_headers.update
    - pool_manager.request
    - proxy_server_bytes.decode
    - data.get
    - dulwich.client.default_urllib3_manager
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client.check_for_proxy_bypass
    - dulwich.credentials.match_partial_url
    - urllib.request.url2pathname
    - no_proxy_str.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pointer.is_valid_oid
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pointer
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 307
    functionName: dulwich.lfs.LFSFilterDriver._download_object
    functionSourceFile: dulwich.lfs
    functionUses: 3
    functionsReached:
    - matching_sections.append
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - proxy_server.decode
    - os.environ.get
    - data.get
    - dulwich.lfs._get_lfs_user_agent
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - action_data.get
    - remote_url.startswith
    - matching_sections.sort
    - no_proxy_value.lstrip
    - hashlib.sha256
    - <builtin>.len
    - timeout_bytes.decode
    - download_headers.update
    - os.path.join
    - remote_url.endswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.HTTPLFSClient.__init__
    - dulwich.lfs.LFSClient.from_config
    - no_proxy_value.lower
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - <builtin>.open
    - json.loads
    - dulwich.lfs._is_valid_lfs_url
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - dulwich.lfs.HTTPLFSClient.download
    - host_and_path.split
    - logger.warning
    - f.read
    - urllib3.make_headers
    - extra_header.split
    - req_headers.update
    - <builtin>.any
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - pool_manager.request
    - proxy_server_bytes.decode
    - ca_certs_bytes.decode
    - dulwich.client.default_urllib3_manager
    - dulwich.lfs.HTTPLFSClient.batch
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - sys.getdefaultencoding
    - dulwich.lfs.FileLFSClient.__init__
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.bool
    - dulwich.lfs.LFSStore.open_object
    - dulwich.lfs.LFSStore._sha_path
    - dulwich.client._urlmatch_http_sections
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - obj_data.get
    - objects.append
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - urllib.parse.urlparse.hostname.endswith
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - urllib3.ProxyManager
    - dulwich.lfs.FileLFSClient.download
    - urllib.request.url2pathname
    - json.dumps
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised:
    - LFSError
    returnType: N/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: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 442
    functionName: dulwich.lfs.LFSClient.from_config
    functionSourceFile: dulwich.lfs
    functionUses: 4
    functionsReached:
    - dulwich.lfs._is_valid_lfs_url
    - urllib.parse.urlparse
    - remote_url.startswith
    - dulwich.lfs.FileLFSClient.__init__
    - <builtin>.bool
    - host_and_path.split
    - remote_url.endswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - config.get
    - dulwich.lfs.HTTPLFSClient.__init__
    - urllib.request.url2pathname
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadfd4190>
    argNames:
    - self
    - oid
    - size
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 746
    functionName: dulwich.lfs.FileLFSClient.download
    functionSourceFile: dulwich.lfs
    functionUses: 6
    functionsReached:
    - <builtin>.open
    - hashlib.sha256
    - dulwich.lfs.LFSStore.open_object
    - dulwich.lfs.LFSStore._sha_path
    - <builtin>.len
    - os.path.join
    - f.read
    linkageType: pythonLinkage
    raised:
    - LFSError
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 2
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaebfabe0>
    argNames:
    - self
    - oid
    - size
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 619
    functionName: dulwich.lfs.HTTPLFSClient.download
    functionSourceFile: dulwich.lfs
    functionUses: 6
    functionsReached:
    - matching_sections.append
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - proxy_server.decode
    - os.environ.get
    - dulwich.lfs._get_lfs_user_agent
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - action_data.get
    - matching_sections.sort
    - no_proxy_value.lstrip
    - hashlib.sha256
    - <builtin>.len
    - timeout_bytes.decode
    - download_headers.update
    - no_proxy_value.lower
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - json.loads
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - logger.warning
    - urllib3.make_headers
    - extra_header.split
    - req_headers.update
    - <builtin>.any
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - pool_manager.request
    - proxy_server_bytes.decode
    - data.get
    - dulwich.client.default_urllib3_manager
    - dulwich.lfs.HTTPLFSClient.batch
    - ca_certs_bytes.decode
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - sys.getdefaultencoding
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client._urlmatch_http_sections
    - obj_data.get
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - objects.append
    - config.get
    - <builtin>.str
    - urllib3.PoolManager
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - urllib.parse.urlparse.hostname.endswith
    - urllib3.ProxyManager
    - json.dumps
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised:
    - LFSError
    returnType: 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: 339
    functionName: dulwich.lfs.LFSFilterDriver.cleanup
    functionSourceFile: dulwich.lfs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - config
    - filter_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 343
    functionName: dulwich.lfs.LFSFilterDriver.reuse
    functionSourceFile: dulwich.lfs
    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:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 349
    functionName: dulwich.lfs._get_lfs_user_agent
    functionSourceFile: dulwich.lfs
    functionUses: 11
    functionsReached:
    - config.get
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 365
    functionName: dulwich.lfs._is_valid_lfs_url
    functionSourceFile: dulwich.lfs
    functionUses: 5
    functionsReached:
    - <builtin>.bool
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse
    functionSourceFile: urllib
    functionUses: 49
    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 0x7febaff7b9d0>
    argNames:
    - self
    - url
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 400
    functionName: dulwich.lfs.LFSClient.__init__
    functionSourceFile: dulwich.lfs
    functionUses: 4
    functionsReached:
    - url.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url.rstrip
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 411
    functionName: dulwich.lfs.LFSClient.url
    functionSourceFile: dulwich.lfs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaff7b0d0>
    argNames:
    - self
    - oid
    - size
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 415
    functionName: dulwich.lfs.LFSClient.download
    functionSourceFile: dulwich.lfs
    functionUses: 3
    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 0x7febaf5de8b0>
    argNames:
    - self
    - oid
    - size
    - content
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 428
    functionName: dulwich.lfs.LFSClient.upload
    functionSourceFile: dulwich.lfs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2c03a0>
    argNames:
    - self
    - url
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 506
    functionName: dulwich.lfs.HTTPLFSClient.__init__
    functionSourceFile: dulwich.lfs
    functionUses: 5
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadfd4790>
    argNames:
    - self
    - url
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 726
    functionName: dulwich.lfs.FileLFSClient.__init__
    functionSourceFile: dulwich.lfs
    functionUses: 5
    functionsReached:
    - <builtin>.super
    - urllib.request.url2pathname
    - urllib.parse.urlparse
    - dulwich.lfs.LFSStore.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote_url.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host_and_path.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote_url.endswith
    functionSourceFile: <builtin>
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 516
    functionName: dulwich.lfs.HTTPLFSClient._get_pool_manager
    functionSourceFile: dulwich.lfs
    functionUses: 11
    functionsReached:
    - matching_sections.append
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - proxy_server.decode
    - os.environ.get
    - config.sections
    - matching_sections.sort
    - no_proxy_value.lstrip
    - timeout_bytes.decode
    - <builtin>.len
    - no_proxy_value.lower
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - logger.warning
    - urllib3.make_headers
    - extra_header.split
    - <builtin>.any
    - <builtin>.isinstance
    - proxy_server_bytes.decode
    - ca_certs_bytes.decode
    - dulwich.client.default_urllib3_manager
    - sys.getdefaultencoding
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client._urlmatch_http_sections
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - urllib.parse.urlparse.hostname.endswith
    - urllib3.ProxyManager
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 26
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 37
    ICount: 4
    IfCount: 26
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6730>
    - <ast.Constant object at 0x7febaf2a6df0>
    - <ast.Constant object at 0x7febaf2a64f0>
    - <ast.Constant object at 0x7febaf2a67f0>
    - <ast.Constant object at 0x7febaf2a6f10>
    argNames:
    - config
    - pool_manager_cls
    - proxy_manager_cls
    - base_url
    - timeout
    - cert_reqs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3267
    functionName: dulwich.client.default_urllib3_manager
    functionSourceFile: dulwich.client
    functionUses: 13
    functionsReached:
    - matching_sections.append
    - <builtin>.getattr
    - header_value.decode
    - config.get_multivar
    - proxy_server.decode
    - os.environ.get
    - config.sections
    - matching_sections.sort
    - no_proxy_value.lstrip
    - timeout_bytes.decode
    - <builtin>.len
    - no_proxy_value.lower
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - logger.warning
    - urllib3.make_headers
    - extra_header.split
    - <builtin>.any
    - <builtin>.isinstance
    - proxy_server_bytes.decode
    - ca_certs_bytes.decode
    - sys.getdefaultencoding
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client._urlmatch_http_sections
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - urllib.parse.urlparse.hostname.endswith
    - urllib3.ProxyManager
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febafd2da30>
    - <ast.Constant object at 0x7febafd2d7f0>
    argNames:
    - self
    - method
    - path
    - data
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 524
    functionName: dulwich.lfs.HTTPLFSClient._make_request
    functionSourceFile: dulwich.lfs
    functionUses: 10
    functionsReached:
    - matching_sections.append
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - proxy_server.decode
    - os.environ.get
    - dulwich.lfs._get_lfs_user_agent
    - config.sections
    - matching_sections.sort
    - no_proxy_value.lstrip
    - timeout_bytes.decode
    - <builtin>.len
    - no_proxy_value.lower
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - logger.warning
    - urllib3.make_headers
    - extra_header.split
    - req_headers.update
    - <builtin>.any
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - proxy_server_bytes.decode
    - pool_manager.request
    - ca_certs_bytes.decode
    - dulwich.client.default_urllib3_manager
    - sys.getdefaultencoding
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client._urlmatch_http_sections
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - urllib.parse.urlparse.hostname.endswith
    - urllib3.ProxyManager
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin
    functionSourceFile: urllib
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req_headers.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: pool_manager.request
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaed93bb0>
    argNames:
    - self
    - operation
    - objects
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 550
    functionName: dulwich.lfs.HTTPLFSClient.batch
    functionSourceFile: dulwich.lfs
    functionUses: 9
    functionsReached:
    - matching_sections.append
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - proxy_server.decode
    - os.environ.get
    - dulwich.lfs._get_lfs_user_agent
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - action_data.get
    - matching_sections.sort
    - no_proxy_value.lstrip
    - timeout_bytes.decode
    - <builtin>.len
    - no_proxy_value.lower
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - json.loads
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - logger.warning
    - urllib3.make_headers
    - extra_header.split
    - req_headers.update
    - <builtin>.any
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - pool_manager.request
    - proxy_server_bytes.decode
    - data.get
    - dulwich.client.default_urllib3_manager
    - ca_certs_bytes.decode
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - sys.getdefaultencoding
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client._urlmatch_http_sections
    - obj_data.get
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - objects.append
    - config.get
    - <builtin>.str
    - urllib3.PoolManager
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - urllib.parse.urlparse.hostname.endswith
    - urllib3.ProxyManager
    - json.dumps
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.dumps
    functionSourceFile: json
    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: json.loads
    functionSourceFile: json
    functionUses: 47
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 584
    functionName: dulwich.lfs.HTTPLFSClient._parse_batch_response
    functionSourceFile: dulwich.lfs
    functionUses: 10
    functionsReached:
    - data.get
    - obj_data.get
    - action_data.get
    - objects.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.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: action_data.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: obj_data.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: download_headers.update
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 4
    IfCount: 9
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf7557f0>
    argNames:
    - self
    - oid
    - size
    - content
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 666
    functionName: dulwich.lfs.HTTPLFSClient.upload
    functionSourceFile: dulwich.lfs
    functionUses: 2
    functionsReached:
    - urllib.request.Request
    - matching_sections.append
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - proxy_server.decode
    - os.environ.get
    - dulwich.lfs._get_lfs_user_agent
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - action_data.get
    - matching_sections.sort
    - urllib.request.urlopen
    - no_proxy_value.lstrip
    - timeout_bytes.decode
    - <builtin>.len
    - urllib3.ProxyManager
    - no_proxy_value.lower
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - verify_action.header.items
    - json.loads
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - urllib.request.Request.add_header
    - logger.warning
    - urllib3.make_headers
    - extra_header.split
    - req_headers.update
    - <builtin>.any
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - pool_manager.request
    - proxy_server_bytes.decode
    - data.get
    - dulwich.client.default_urllib3_manager
    - dulwich.lfs.HTTPLFSClient.batch
    - ca_certs_bytes.decode
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - sys.getdefaultencoding
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client._urlmatch_http_sections
    - obj_data.get
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - objects.append
    - config.get
    - <builtin>.str
    - urllib3.PoolManager
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - urllib.parse.urlparse.hostname.endswith
    - upload_action.header.items
    - json.dumps
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised:
    - LFSError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.Request
    functionSourceFile: urllib
    functionUses: 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: upload_action.header.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.Request.add_header
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.urlopen
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: verify_action.header.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.request.url2pathname
    functionSourceFile: urllib
    functionUses: 6
    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 0x7febaec17280>
    argNames:
    - self
    - oid
    - size
    - content
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 777
    functionName: dulwich.lfs.FileLFSClient.upload
    functionSourceFile: dulwich.lfs
    functionUses: 2
    functionsReached:
    - hashlib.sha256
    - <builtin>.len
    - dulwich.lfs.LFSStore._sha_path
    - data_chunks.append
    - os.path.exists
    - os.path.dirname
    - os.makedirs
    - dulwich.lfs.LFSStore.write_object
    - os.path.join
    - os.remove
    - f.flush
    - f.write
    - sha.hexdigest
    - tempfile.NamedTemporaryFile
    - sha.update
    - os.rename
    linkageType: pythonLinkage
    raised:
    - LFSError
    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: dulwich.client
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    - os.path.join
    - os.environ.get
    - logging.getLogger
    - dulwich.config.get_xdg_config_home_path
    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: 123
    functionName: dulwich.client.HTTPResponse.close
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - have
    - want
    - ofs_delta
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 130
    functionName: dulwich.client.GeneratePackDataFunc.__call__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5faeb0>
    argNames:
    - self
    - refs
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 144
    functionName: dulwich.client.DetermineWantsFunc.__call__
    functionSourceFile: dulwich.client
    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
    - wants
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 238
    functionName: dulwich.client.InvalidWants.__init__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - www_authenticate
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 252
    functionName: dulwich.client.HTTPUnauthorized.__init__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - refs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 264
    functionName: dulwich.client._to_optional_dict
    functionSourceFile: dulwich.client
    functionUses: 16
    functionsReached:
    - refs.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - proxy_authenticate
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 275
    functionName: dulwich.client.HTTPProxyUnauthorized.__init__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - Exception.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fileno
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 287
    functionName: dulwich.client._fileno_can_read
    functionSourceFile: dulwich.client
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - select.select
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: select.select
    functionSourceFile: select
    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:
    - handle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 292
    functionName: dulwich.client._win32_peek_avail
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - ctypes.byref
    - ctypes.windll.kernel32.PeekNamedPipe
    - ctypes.wintypes.DWORD
    linkageType: pythonLinkage
    raised:
    - OSError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.wintypes.DWORD
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.byref
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctypes.windll.kernel32.PeekNamedPipe
    functionSourceFile: ctypes
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 330
    functionName: dulwich.client.ReportStatusParser.__init__
    functionSourceFile: dulwich.client
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 336
    functionName: dulwich.client.ReportStatusParser.check
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached:
    - rest.split
    - error.decode
    - status.split
    linkageType: pythonLinkage
    raised:
    - SendPackError
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: status.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rest.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: error.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pkt.strip
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - proto
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 379
    functionName: dulwich.client.negotiate_protocol_version
    functionSourceFile: dulwich.client
    functionUses: 7
    functionsReached:
    - sys.stdin.buffer.read
    - <builtin>.next
    - dulwich.protocol.ReceivableProtocol.read
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - <builtin>.sum
    - io.BytesIO
    - dulwich.protocol.Protocol.unread_pkt_line
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.int
    - io.BytesIO.write
    - pkt.strip
    - io.BytesIO.tell
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - pkt_seq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 388
    functionName: dulwich.client.read_server_capabilities
    functionSourceFile: dulwich.client
    functionUses: 8
    functionsReached:
    - <builtin>.set
    - server_capabilities.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: server_capabilities.append
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - pkt_seq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 396
    functionName: dulwich.client.read_pkt_refs_v2
    functionSourceFile: dulwich.client
    functionUses: 7
    functionsReached:
    - pkt.rstrip
    - typing.NewType
    - logging.warning
    - part.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: part.startswith
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - pkt_seq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 425
    functionName: dulwich.client.read_pkt_refs_v1
    functionSourceFile: dulwich.client
    functionUses: 8
    functionsReached:
    - pkt.rstrip
    - <builtin>.len
    - capabilities.strip
    - text.rstrip
    - typing.NewType
    - dulwich.protocol.extract_capabilities
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: 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: 470
    functionName: dulwich.client._DeprecatedDictProxy._warn_deprecated
    functionSourceFile: dulwich.client
    functionUses: 7
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 479
    functionName: dulwich.client._DeprecatedDictProxy.__contains__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - warnings.warn
    - dulwich.client._DeprecatedDictProxy._warn_deprecated
    - dulwich.client.LsRemoteResult._warn_deprecated
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 581
    functionName: dulwich.client.LsRemoteResult._warn_deprecated
    functionSourceFile: dulwich.client
    functionUses: 8
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 483
    functionName: dulwich.client._DeprecatedDictProxy.__getitem__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - warnings.warn
    - dulwich.client._DeprecatedDictProxy._warn_deprecated
    - dulwich.client.LsRemoteResult._warn_deprecated
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 487
    functionName: dulwich.client._DeprecatedDictProxy.__len__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.client._DeprecatedDictProxy._warn_deprecated
    - dulwich.client.LsRemoteResult._warn_deprecated
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 491
    functionName: dulwich.client._DeprecatedDictProxy.__iter__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - dulwich.client._DeprecatedDictProxy._warn_deprecated
    - dulwich.client.LsRemoteResult._warn_deprecated
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 495
    functionName: dulwich.client._DeprecatedDictProxy.__getattribute__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - dulwich.client._DeprecatedDictProxy._warn_deprecated
    - <builtin>.getattr
    - object.__getattribute__
    - <builtin>.super
    - <builtin>.type
    - warnings.warn
    - dulwich.client.LsRemoteResult._warn_deprecated
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object.__getattribute__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaeeca5e0>
    - <ast.Constant object at 0x7febaeecaa60>
    argNames:
    - self
    - refs
    - symrefs
    - agent
    - new_shallow
    - new_unshallow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 518
    functionName: dulwich.client.FetchPackResult.__init__
    functionSourceFile: dulwich.client
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 541
    functionName: dulwich.client.FetchPackResult.__eq__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - warnings.warn
    - dulwich.client._DeprecatedDictProxy._warn_deprecated
    - dulwich.client.LsRemoteResult._warn_deprecated
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 554
    functionName: dulwich.client.FetchPackResult.__repr__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - refs
    - symrefs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 569
    functionName: dulwich.client.LsRemoteResult.__init__
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 591
    functionName: dulwich.client.LsRemoteResult.__eq__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - warnings.warn
    - dulwich.client.LsRemoteResult._warn_deprecated
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 600
    functionName: dulwich.client.LsRemoteResult.__repr__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febae391af0>
    - <ast.Constant object at 0x7febae391370>
    argNames:
    - self
    - refs
    - agent
    - ref_status
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 615
    functionName: dulwich.client.SendPackResult.__init__
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 632
    functionName: dulwich.client.SendPackResult.__eq__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - warnings.warn
    - dulwich.client._DeprecatedDictProxy._warn_deprecated
    - dulwich.client.LsRemoteResult._warn_deprecated
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 641
    functionName: dulwich.client.SendPackResult.__repr__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - pkt_seq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 646
    functionName: dulwich.client._read_shallow_updates
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - pkt.split
    - sha.strip
    - new_shallow.add
    - typing.NewType
    - new_unshallow.add
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pkt.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sha.strip
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_shallow.add
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_unshallow.add
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - capabilities
    - old_refs
    - new_refs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 668
    functionName: dulwich.client._v1ReceivePackHeader.__init__
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached:
    - old_refs.values
    - logger.debug
    - <builtin>.sorted
    - dulwich.client._v1ReceivePackHeader._handle_receive_pack_head
    - old_refs.get
    - <builtin>.isinstance
    - new_refs.get
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 6
    IfCount: 6
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - capabilities
    - old_refs
    - new_refs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 682
    functionName: dulwich.client._v1ReceivePackHeader._handle_receive_pack_head
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - old_refs.values
    - logger.debug
    - <builtin>.sorted
    - <builtin>.isinstance
    - new_refs.get
    - old_refs.get
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 679
    functionName: dulwich.client._v1ReceivePackHeader.__iter__
    functionSourceFile: dulwich.client
    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: old_refs.values
    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: old_refs.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_refs.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - pkt_seq
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 736
    functionName: dulwich.client._read_side_band64k_data
    functionSourceFile: dulwich.client
    functionUses: 8
    functionsReached:
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - capabilities
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 749
    functionName: dulwich.client.find_capability
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - dulwich.protocol.parse_capability
    - capability.split
    - <builtin>.len
    - v.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.split
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 26
    ICount: 12
    IfCount: 18
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febaf57f490>
    - <ast.Constant object at 0x7febaf57f370>
    argNames:
    - proto
    - capabilities
    - graph_walker
    - wants
    - can_read
    - depth
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 763
    functionName: dulwich.client._handle_upload_pack_head
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached:
    - pkt.rstrip
    - sys.stdin.buffer.read
    - ref.encode
    - <builtin>.next
    - new_shallow.add
    - graph_walker.ack
    - dulwich.client.find_capability
    - dulwich.server.serve_command.send_fn
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - v.split
    - new_unshallow.add
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - pkt.split
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - dulwich.protocol.Protocol.read_pkt_seq
    - dulwich.porcelain.upload_pack.send_fn
    - dulwich.client._read_shallow_updates
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.protocol.parse_capability
    - <builtin>.hasattr
    - sha.strip
    - <builtin>.sorted
    - <builtin>.isinstance
    - capability.split
    - <builtin>.int
    - io.BytesIO.write
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - <builtin>.str
    - typing.NewType
    - <builtin>.map
    - shallow_since.encode
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shallow_since.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: graph_walker.ack
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febadfe5a60>
    - <ast.Name object at 0x7febadfe5190>
    - <ast.Constant object at 0x7febadfe51c0>
    argNames:
    - proto
    - capabilities
    - graph_walker
    - pack_data
    - progress
    - rbufsize
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 868
    functionName: dulwich.client._handle_upload_pack_tail
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached:
    - pkt.rstrip
    - sys.stdin.buffer.read
    - <builtin>.next
    - graph_walker.ack
    - dulwich.protocol.ReceivableProtocol.read
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.client._read_side_band64k_data
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - graph_walker.nak
    - <builtin>.sum
    - io.BytesIO
    - dulwich.protocol.Protocol.read_pkt_seq
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.ord
    - <builtin>.int
    - io.BytesIO.write
    - io.BytesIO.tell
    - typing.NewType
    - <builtin>.map
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: graph_walker.nak
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 909
    functionName: dulwich.client._handle_upload_pack_tail.progress
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - capabilities
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 927
    functionName: dulwich.client._extract_symrefs_and_agent
    functionSourceFile: dulwich.client
    functionUses: 10
    functionsReached:
    - dulwich.protocol.parse_capability
    - <builtin>.len
    - typing.NewType
    - v.split
    - capability.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadfcd460>
    - <ast.Constant object at 0x7febadfcda90>
    - <ast.Constant object at 0x7febadfcd700>
    - <ast.Constant object at 0x7febadfcdfd0>
    argNames:
    - self
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 956
    functionName: dulwich.client.GitClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 20
    functionsReached:
    - dulwich.protocol.capability_agent
    - <builtin>.set
    - dulwich.protocol.agent_string
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 987
    functionName: dulwich.client.GitClient.get_url
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaf10cd30>
    - <ast.Constant object at 0x7febaf10c130>
    - <ast.Constant object at 0x7febaf10c8e0>
    - <ast.Constant object at 0x7febaf10c490>
    - <ast.Constant object at 0x7febaf10c4c0>
    - <ast.Constant object at 0x7febaf10ceb0>
    - <ast.Constant object at 0x7febaf10c6a0>
    - <ast.Constant object at 0x7febaf10cca0>
    argNames:
    - cls
    - parsedurl
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - dumb
    - username
    - password
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1000
    functionName: dulwich.client.GitClient.from_parsedurl
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae48dcd0>
    argNames:
    - self
    - path
    - update_refs
    - generate_pack_data
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1030
    functionName: dulwich.client.GitClient.send_pack
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 10
    IfCount: 13
    argCount: 13
    argDefaultValues:
    - <ast.Constant object at 0x7febaefb3790>
    - <ast.Constant object at 0x7febaefb3280>
    - <ast.Constant object at 0x7febaefb3580>
    - <ast.Constant object at 0x7febaefb3490>
    - <ast.Constant object at 0x7febaefb3400>
    - <ast.Constant object at 0x7febaefb3eb0>
    - <ast.Constant object at 0x7febaefb32b0>
    - <ast.Constant object at 0x7febaefb3760>
    - <ast.Constant object at 0x7febaefb3820>
    - <ast.Constant object at 0x7febaefb3970>
    argNames:
    - self
    - path
    - target_path
    - mkdir
    - bare
    - origin
    - checkout
    - branch
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1057
    functionName: dulwich.client.GitClient.clone
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - backends.append
    - io.BytesIO.readlines
    - stripped_refs.items
    - winreg.QueryValueEx
    - r.refs.get_symrefs
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - hashlib.sha1.update
    - pack_data.iter_unpacked
    - n.startswith
    - dulwich.client.TCPGitClient.get_url
    - io.BytesIO.read
    - ref_name.startswith
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - ref.endswith
    - n.endswith
    - os.fsdecode
    - branch.encode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - target_config.set
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - dulwich.client.LocalGitClient._open_repo
    - value.decode
    - urllib.parse.urlunsplit
    - prerequisites.append
    - obj.get_object
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.client.GitClient.get_url
    - urllib.parse.urlparse
    - contextlib.closing
    - urllib.parse.urlunparse.encode
    - refs.add_if_new
    - dulwich.config._find_git_in_win_path
    - dulwich.worktree.WorkTreeContainer.__init__
    - platform.machine
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - key.decode
    - path.encode
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - refs.values
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - target.close
    - value.startswith
    - result.symrefs.get
    - os.mkdir
    - paths.append
    - os.environ.get
    - os.fspath
    - dulwich.config.StackedConfig.__init__
    - path.decode
    - dulwich.config._check_section_name
    - refs.set_symbolic_ref
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.pack.PackStreamReader._buf_len
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.client._to_optional_dict
    - dulwich.client.AbstractHttpGitClient.get_url
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - <builtin>.list
    - dulwich.refs._set_head
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - origin_head.startswith
    - <builtin>.open
    - line.lstrip
    - dulwich.refs._set_origin_head
    - result.refs.get
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - target.object_store.add_pack_data
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - pack_file.read
    - dulwich.pack.PackData.from_file
    - remote_name.encode
    - dulwich.config.StackedConfig.default
    - io.BytesIO.tell
    - config.get
    - <builtin>.str
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - os.fsencode
    - dulwich.client.BundleClient.fetch
    - ret.refs.set_symbolic_ref
    - dulwich.client.LocalGitClient.get_url
    - refs.set_if_equals
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.refs.extract_tag_name
    - os.fdopen
    - target_config.write_to_path
    - struct.unpack_from
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - dulwich.repo.Repo.init
    - <builtin>.super
    - r.fetch
    - <builtin>.max
    - dulwich.client.BundleClient.get_url
    - dulwich.pack.PackData.__init__
    - os.path.split
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - dulwich.repo.Repo.init_bare
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - ret.append
    - f.read
    - value_bytes.decode
    - <builtin>.isinstance
    - content.endswith
    - f.readline
    - urllib.parse.urljoin
    - c.isalnum
    - ret.read
    - dulwich.file._GitFile.read
    - line.endswith
    - included_paths.copy
    - dulwich.refs._import_remote_refs
    - f.write
    - ctypes.WINFUNCTYPE
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.client.LocalGitClient.fetch
    - binascii.unhexlify
    - target.get_worktree
    - dulwich.config.ConfigDict.get
    - urllib.parse.urlunsplit.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - ret._init_files
    - dulwich.client.BundleClient._open_bundle
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - <builtin>.dict
    - target.get_config
    - origin.encode
    - dulwich.object_store.DiskObjectStore.init
    - dulwich.contrib.swift.SwiftPackReader._read
    - whitespace.append
    - dulwich.pack.read_pack_header
    - dulwich.config._parse_string
    - os.open
    - io.BytesIO.seek
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - urllib.parse.urljoin.rstrip
    - line.rstrip
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.Repo._init_maybe_bare
    - dulwich.refs.DiskRefsContainer.__init__
    - typing.cast.id.startswith
    - dulwich.client.FetchPackResult.__init__
    - typing.cast.read
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.file.GitFile
    - dulwich.refs._set_default_branch
    - dulwich.client.AbstractHttpGitClient._get_url
    - dulwich.repo.BaseRepo.__init__
    - os.chmod
    - paths.extend
    - dulwich.client.BundleClient._skip_to_pack_data
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo._set_filesystem_hidden
    - dulwich.protocol.strip_peeled_refs
    - tempfile.SpooledTemporaryFile.read
    - urllib.parse.quote
    - dulwich.repo.Repo.controldir
    - dulwich.client.SSHGitClient.get_url
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - refs_container.import_refs
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3091
    functionName: dulwich.client.SSHGitClient.get_url
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - urllib.parse.quote
    - urllib.parse.urlunsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2516
    functionName: dulwich.client.BundleClient.get_url
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3995
    functionName: dulwich.client.AbstractHttpGitClient.get_url
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - urllib.parse.urlparse
    - urllib.parse.urlunparse
    - urllib.parse.quote
    - urllib.parse.urljoin.rstrip
    - dulwich.client.AbstractHttpGitClient._get_url
    - <builtin>.isinstance
    - path.decode
    - urllib.parse.urljoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2219
    functionName: dulwich.client.LocalGitClient.get_url
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - urllib.parse.urlunsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1953
    functionName: dulwich.client.TCPGitClient.get_url
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - urllib.parse.urlunsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlunparse.encode
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlunsplit.encode
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: origin.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febaff84cd0>
    - <ast.Constant object at 0x7febaff84e20>
    - <ast.Constant object at 0x7febaff849a0>
    - <ast.Constant object at 0x7febaff84190>
    - <ast.Constant object at 0x7febaff84f10>
    - <ast.Constant object at 0x7febaff84430>
    - <ast.Constant object at 0x7febaff84eb0>
    - <ast.Constant object at 0x7febaff84d00>
    argNames:
    - self
    - path
    - target
    - determine_wants
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2351
    functionName: dulwich.client.LocalGitClient.fetch
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.refs.get_symrefs
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - os.makedirs
    - <builtin>.range
    - dulwich.client.LocalGitClient._open_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.client._to_optional_dict
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - r.fetch
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.client.FetchPackResult.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febadca4ca0>
    - <ast.Constant object at 0x7febadca4a00>
    - <ast.Constant object at 0x7febadca4af0>
    - <ast.Constant object at 0x7febadca4df0>
    - <ast.Constant object at 0x7febadca4820>
    - <ast.Constant object at 0x7febadca49d0>
    - <ast.Constant object at 0x7febadca4be0>
    - <ast.Constant object at 0x7febadca4c10>
    argNames:
    - self
    - path
    - target
    - determine_wants
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 2681
    functionName: dulwich.client.BundleClient.fetch
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - refs.values
    - dulwich.client.BundleClient._open_bundle
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - <builtin>.dict
    - os.fspath
    - pack_data.iter_unpacked
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftPackReader._read
    - dulwich.pack.read_pack_header
    - os.fdopen
    - os.open
    - io.BytesIO.seek
    - dulwich.client._to_optional_dict
    - struct.unpack_from
    - <builtin>.len
    - ref_name.startswith
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - line.rstrip
    - os.fsdecode
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - <builtin>.list
    - io.BytesIO
    - <builtin>.open
    - typing.cast.read
    - dulwich.client.FetchPackResult.__init__
    - dulwich.protocol.agent_string
    - dulwich.file.GitFile
    - <builtin>.range
    - refs.items
    - prerequisites.append
    - value_bytes.decode
    - target.object_store.add_pack_data
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - f.readline
    - line.startswith
    - dulwich.client.BundleClient._skip_to_pack_data
    - <builtin>.bytes
    - pack_file.read
    - dulwich.pack.PackData.from_file
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - typing.NewType
    - line.split
    - <builtin>.map
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    - key.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: result.symrefs.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: result.refs.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febadeb8b20>
    - <ast.Constant object at 0x7febadeb8520>
    - <ast.Constant object at 0x7febadeb8640>
    - <ast.Constant object at 0x7febadeb8970>
    - <ast.Constant object at 0x7febadeb83d0>
    - <ast.Constant object at 0x7febadeb8df0>
    - <ast.Constant object at 0x7febadeb8bb0>
    - <ast.Constant object at 0x7febadeb8af0>
    argNames:
    - self
    - path
    - target
    - determine_wants
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1158
    functionName: dulwich.client.GitClient.fetch
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - dulwich.dumb.DumbRemoteHTTPRepo._fetch_url
    - dulwich.pack.PackIndex3._unpack_offset
    - k.startswith
    - dulwich.pack.PackChunkGenerator.__iter__
    - r.refs.get_symrefs
    - hashlib.sha1.update
    - difflib.SequenceMatcher
    - obj.set_raw_string
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - pkt.split
    - dulwich.pack.PackStreamCopier._read
    - dulwich.repo.Repo.__init__
    - ref.endswith
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.pack.generate_unpacked_objects
    - k.endswith
    - <builtin>.range
    - contextlib.closing
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - possible_bases.pop
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - packs_data.strip
    - dulwich.pack.PackIndex3.__init__
    - dulwich._pack.bisect_find_sha
    - dulwich.pack.PackIndex2._unpack_offset
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - unpacked.sha
    - path.lstrip
    - obj.items
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.Tree.from_path
    - <builtin>.open
    - dulwich.client._read_shallow_updates
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - <builtin>.memoryview
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.repo.Repo.commondir
    - dulwich.client.GitClient.fetch.commit
    - v.strip
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.protocol.Protocol.__init__
    - dulwich.dumb.DumbRemoteHTTPRepo.get_head
    - dulwich.pack.Pack.from_objects
    - dulwich.refs.read_info_refs
    - io.BufferedReader.read
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - text.rstrip
    - dulwich.pack.PackData.__init__
    - zlib.decompress
    - ret.append
    - cdifflib.CSequenceMatcher
    - content.endswith
    - urllib.parse.urljoin
    - c.isalnum
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.client.LocalGitClient.fetch_pack
    - typing.cast.readlines
    - included_paths.copy
    - target.object_store.add_pack
    - dulwich.client.read_server_capabilities
    - dulwich.protocol.split_peeled_refs
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - f.seek
    - v.split
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - seen.add
    - struct.unpack
    - dulwich.client.AbstractHttpGitClient._smart_request
    - graph_walker.nak
    - dulwich.object_store.DiskObjectStore.from_config
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.porcelain.upload_pack.send_fn
    - dulwich.repo.read_gitfile
    - part.startswith
    - value.lower
    - dulwich.pack.PackIndex2.__init__
    - server_capabilities.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2
    - new_packs.append
    - object.as_raw_chunks
    - io.BytesIO.read
    - resp.content_type.startswith
    - fetch_features.append
    - ret._handle_include_directive
    - tempfile.SpooledTemporaryFile
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.protocol.agent_string
    - dulwich.client.LocalGitClient._open_repo
    - value.decode
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - prerequisites.append
    - dulwich.client._handle_upload_pack_head
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.dumb.DumbRemoteHTTPRepo.__init__
    - pkt.strip
    - dulwich.client.read_pkt_refs_v1
    - dulwich.pack._encode_copy_operation
    - <builtin>.map
    - tempfile.mkdtemp
    - dulwich.objects.valid_hexsha
    - shallow_since.encode
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - functools.partial
    - todo.keys
    - to_fetch.add
    - dulwich.pack.PackStreamReader._buf_len
    - logging.warning
    - dulwich.client._read_side_band64k_data
    - os.path.isfile
    - <builtin>.tuple
    - extension.lower
    - _TYPE_MAP.get
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - pack.close
    - <builtin>.sum
    - dulwich.protocol.parse_capability
    - dulwich.client.AbstractHttpGitClient._http_request
    - dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    - header.split
    - dulwich.hooks.CommitMsgShellHook.__init__
    - pack_file.read
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - <builtin>.str
    - dulwich.pack.PackStreamReader.read
    - os.fsencode
    - dulwich.client.GitClient._negotiate_upload_pack_capabilities
    - collections.deque
    - refs_raw.items
    - dulwich.pack.find_reusable_deltas
    - name.encode
    - os.fdopen
    - dulwich.pack.load_pack_index_file
    - target.get_graph_walker
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - dulwich.protocol.pkt_line
    - dulwich.objects.hex_to_filename
    - dulwich.protocol.Protocol.read_pkt_seq
    - dulwich.config.ConfigDict.items
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.pack.write_pack_data
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - value_bytes.decode
    - target.object_store.add_thin_pack
    - <builtin>.isinstance
    - ret.read
    - magic.sort
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - to_fetch.pop
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.client.BundleClient._open_bundle
    - compressor.compress
    - os.path.isdir
    - dulwich.server.serve_command.send_fn
    - scratch.append
    - dulwich.contrib.swift.SwiftPackReader._read
    - whitespace.append
    - dulwich.refs.filter_ref_prefix
    - negotiated_capabilities.add
    - urllib.parse.urljoin.rstrip
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - possible_bases.appendleft
    - dulwich.client.BundleClient.fetch_pack
    - typing.cast.write
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - ref.encode
    - pkts.append
    - io.BytesIO.readlines
    - resp.close
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.pack.PackChunkGenerator.__init__
    - ref_name.startswith
    - io.BytesIO.fileno
    - warnings.warn
    - magic.append
    - dulwich.web.ChunkReader.read
    - dulwich.repo.Repo.get_config
    - dulwich.objects.Blob.from_path
    - os.makedirs
    - o.as_raw_chunks
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.client.negotiate_protocol_version
    - dulwich.pack._load_file_contents
    - key.decode
    - decompressed.find
    - mmap.mmap
    - hashlib.sha1
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - dulwich.dumb.DumbHTTPObjectStore.__init__
    - path.decode
    - <builtin>.callable
    - dulwich.client._handle_upload_pack_tail
    - dulwich.client.AbstractHttpGitClient.fetch_pack
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.pack.pack_object_header
    - line.lstrip
    - os.path.dirname
    - refs.items
    - line.startswith
    - backend.get
    - pack_name.split
    - head_resp_bytes.replace
    - dulwich.config._parse_section_header_line
    - service.decode
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - struct.unpack_from
    - dulwich.objects.Tag.from_path
    - r.get_refs
    - io.BytesIO
    - sha.strip
    - f.read
    - ret.insert
    - resp.redirect_location.endswith
    - os.fstat
    - dulwich.pack.pack_object_chunks
    - dulwich.client.GitClient.fetch.abort
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.client.find_capability
    - dulwich.client.read_pkt_refs_v2
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - <builtin>.dict
    - dulwich.config._parse_string
    - ret.extend
    - dulwich.protocol.Protocol.unread_pkt_line
    - dulwich.client.FetchPackResult.__init__
    - pack_name.endswith
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.pack.PackIndex1.__init__
    - dulwich.hooks.ShellHook.__init__
    - dulwich.pack.PackIndex1._unpack_offset
    - dulwich.file._GitFile.read
    - dulwich.repo.parse_graftpoints
    - new_shallow.add
    - ret.check_length_and_checksum
    - target.update_shallow
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - o.sha
    - os.path.join
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.dumb.DumbRemoteHTTPRepo.get_refs
    - missing_objects.get_remote_has
    - shutil.rmtree
    - dulwich.dumb.DumbRemoteHTTPRepo.fetch_pack_data
    - f.tell
    - dulwich.client.GitClient._warn_filter_objects
    - dulwich.config.StackedConfig.get
    - value.strip
    - json.loads
    - dulwich.client.AbstractHttpGitClient._discover_references
    - base_url.rstrip
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.protocol.extract_capabilities
    - os.path.exists
    - capabilities.strip
    - dulwich.pack.FilePackIndex.object_offset
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - graph_walker.ack
    - name.startswith
    - dulwich.config._check_variable_name
    - dulwich.client._to_optional_dict
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - <builtin>.list
    - dulwich.protocol.extract_capability_names
    - socketserver.StreamRequestHandler.connection.recv
    - compressor.flush
    - header.append
    - <builtin>.ord
    - value.endswith
    - dulwich.pack.Pack.__init__
    - dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.hooks.PostReceiveShellHook.__init__
    - container.iter_unpacked_subset
    - pkt.rstrip
    - <builtin>.next
    - dulwich.pack.write_pack_from_container
    - new_unshallow.add
    - dulwich.client._extract_symrefs_and_agent
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - <builtin>.super
    - <builtin>.max
    - todo.remove
    - obj.raw_length
    - <builtin>.set
    - dulwich.dumb.DumbHTTPObjectStore.get_raw
    - dulwich.objects.ShaFile.from_raw_string
    - dulwich.objects.object_class
    - r.find_missing_objects
    - chunks.append
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - struct.pack
    - header.extend
    - f.readline
    - dulwich.pack._create_delta_py
    - line.endswith
    - io.BytesIO.getvalue
    - sys.stdin.buffer.read
    - dulwich.object_store.DiskObjectStore.close
    - sha.decode
    - dulwich.pack.read_pack_header
    - os.open
    - resp.content_type.split
    - line.rstrip
    - dulwich.pack.FilePackIndex._object_offset
    - ret._values.setdefault
    - typing.cast.read
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.client.AbstractHttpGitClient._get_url
    - capability.split
    - dulwich.client.BundleClient._skip_to_pack_data
    - <builtin>.bytearray
    - f.close
    - zlib.compressobj
    - sys.stdout.buffer.flush
    - <builtin>.enumerate
    - p.iterobjects_subset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1207
    functionName: dulwich.client.GitClient.fetch.commit
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - f.seek
    - f.tell
    - target.object_store.add_thin_pack
    - f.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.object_store.add_thin_pack
    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: 1213
    functionName: dulwich.client.GitClient.fetch.abort
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - f.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.object_store.add_pack
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febaf286310>
    - <ast.Constant object at 0x7febaf286fa0>
    - <ast.Constant object at 0x7febaf2860a0>
    - <ast.Constant object at 0x7febaf286100>
    - <ast.Constant object at 0x7febaf2867f0>
    - <ast.Constant object at 0x7febaf286f10>
    - <ast.Constant object at 0x7febaf286e80>
    argNames:
    - self
    - path
    - determine_wants
    - graph_walker
    - pack_data
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2399
    functionName: dulwich.client.LocalGitClient.fetch_pack
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - new_packs.append
    - io.BytesIO.readlines
    - dulwich.pack.PackChunkGenerator.__iter__
    - r.refs.get_symrefs
    - hashlib.sha1.update
    - dulwich.pack.PackChunkGenerator.__init__
    - difflib.SequenceMatcher
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - object.as_raw_chunks
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - o.sha
    - os.path.join
    - ret._handle_include_directive
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.repo.Repo.__init__
    - missing_objects.get_remote_has
    - shutil.rmtree
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - json.loads
    - magic.append
    - dulwich.repo.Repo.get_config
    - dulwich.objects.Blob.from_path
    - dulwich.protocol.agent_string
    - dulwich.pack.generate_unpacked_objects
    - os.makedirs
    - <builtin>.range
    - dulwich.client.LocalGitClient._open_repo
    - o.as_raw_chunks
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.pack._encode_copy_operation
    - dulwich.worktree.WorkTreeContainer.__init__
    - possible_bases.pop
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - name.endswith
    - hashlib.sha1
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - <builtin>.callable
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.client._to_optional_dict
    - unpacked.sha
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - path.lstrip
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.list
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.pack.pack_object_header
    - dulwich.objects.Tree.from_path
    - <builtin>.open
    - line.lstrip
    - compressor.flush
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - <builtin>.memoryview
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - container.iter_unpacked_subset
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - collections.deque
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.config._parse_section_header_line
    - dulwich.pack.write_pack_from_container
    - dulwich.pack.find_reusable_deltas
    - name.encode
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - dulwich.objects.Tag.from_path
    - cs.startswith
    - <builtin>.super
    - r.get_refs
    - todo.remove
    - obj.raw_length
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - dulwich.config.ConfigDict.items
    - dulwich.pack.write_pack_data
    - r.find_missing_objects
    - ret.append
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - f.read
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - struct.pack
    - ret.insert
    - header.extend
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - content.endswith
    - ret.read
    - c.isalnum
    - magic.sort
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.pack._create_delta_py
    - line.endswith
    - dulwich.pack.pack_object_chunks
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - os.path.isdir
    - compressor.compress
    - scratch.append
    - <builtin>.dict
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pack_files.add
    - hashlib.sha1.digest
    - ret.extend
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.client.FetchPackResult.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.pack._create_delta_rs_wrapper
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - possible_bases.appendleft
    - <builtin>.bytearray
    - typing.cast.write
    - zlib.compressobj
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - p.iterobjects_subset
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8e0160>
    - <ast.Constant object at 0x7febaf8e07c0>
    - <ast.Constant object at 0x7febaf8e04c0>
    - <ast.Constant object at 0x7febaf8e0130>
    - <ast.Constant object at 0x7febaf8e0ac0>
    - <ast.Constant object at 0x7febaf8e0550>
    - <ast.Constant object at 0x7febaf8e0a60>
    argNames:
    - self
    - path
    - determine_wants
    - graph_walker
    - pack_data
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2734
    functionName: dulwich.client.BundleClient.fetch_pack
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - dulwich.client.BundleClient._open_bundle
    - <builtin>.dict
    - dulwich.client._to_optional_dict
    - ref_name.startswith
    - line.rstrip
    - os.fsdecode
    - <builtin>.open
    - dulwich.client.FetchPackResult.__init__
    - dulwich.protocol.agent_string
    - refs.items
    - prerequisites.append
    - value_bytes.decode
    - <builtin>.isinstance
    - f.readline
    - line.startswith
    - dulwich.client.BundleClient._skip_to_pack_data
    - pack_file.read
    - typing.NewType
    - line.split
    - <builtin>.map
    - key.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 6
    IfCount: 12
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febaf39ddf0>
    - <ast.Constant object at 0x7febaf39d0a0>
    - <ast.Constant object at 0x7febaf39da30>
    - <ast.Constant object at 0x7febaf39db50>
    - <ast.Constant object at 0x7febaf39d910>
    - <ast.Constant object at 0x7febaf39d8b0>
    - <ast.Constant object at 0x7febaf39d190>
    argNames:
    - self
    - path
    - determine_wants
    - graph_walker
    - pack_data
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3827
    functionName: dulwich.client.AbstractHttpGitClient.fetch_pack
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - dulwich.dumb.DumbRemoteHTTPRepo._fetch_url
    - ref.encode
    - dulwich.pack.PackIndex3._unpack_offset
    - pkts.append
    - k.startswith
    - io.BytesIO.readlines
    - new_shallow.add
    - dulwich.pack.PackChunkGenerator.__iter__
    - resp.close
    - obj.set_raw_string
    - dulwich.pack.PackChunkGenerator.__init__
    - hashlib.sha1.update
    - ret.check_length_and_checksum
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - object.as_raw_chunks
    - io.BytesIO.read
    - pkt.split
    - resp.content_type.startswith
    - fetch_features.append
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - dulwich.dumb.DumbRemoteHTTPRepo.get_refs
    - ref.endswith
    - io.BytesIO.fileno
    - dulwich.dumb.DumbRemoteHTTPRepo.fetch_pack_data
    - warnings.warn
    - dulwich.client.GitClient._warn_filter_objects
    - dulwich.objects.hex_to_sha
    - dulwich.web.ChunkReader.read
    - dulwich.client.AbstractHttpGitClient._discover_references
    - base_url.rstrip
    - k.endswith
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.client._handle_upload_pack_head
    - <builtin>.any
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.dumb.DumbRemoteHTTPRepo.__init__
    - io.BytesIO.write
    - pkt.strip
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.client.read_pkt_refs_v1
    - dulwich.client.negotiate_protocol_version
    - dulwich.pack._load_file_contents
    - binascii.crc32
    - packs_data.strip
    - dulwich.protocol.extract_capabilities
    - <builtin>.map
    - tempfile.mkdtemp
    - dulwich.pack.PackIndex3.__init__
    - shallow_since.encode
    - dulwich._pack.bisect_find_sha
    - decompressed.find
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - hashlib.sha1
    - functools.partial
    - os.path.exists
    - dulwich.pack.FilePackIndex.object_offset
    - capabilities.strip
    - graph_walker.ack
    - <builtin>.type
    - to_fetch.add
    - os.fspath
    - dulwich.dumb.DumbHTTPObjectStore.__init__
    - path.decode
    - dulwich.pack.PackStreamReader._buf_len
    - logging.warning
    - dulwich.client._read_side_band64k_data
    - <builtin>.callable
    - dulwich.client._to_optional_dict
    - unpacked.sha
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.client._handle_upload_pack_tail
    - _TYPE_MAP.get
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - pack.close
    - <builtin>.list
    - obj.items
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.protocol.extract_capability_names
    - <builtin>.open
    - dulwich.client._read_shallow_updates
    - socketserver.StreamRequestHandler.connection.recv
    - compressor.flush
    - dulwich.protocol.parse_capability
    - dulwich.client.AbstractHttpGitClient._http_request
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - <builtin>.ord
    - dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    - dulwich.pack.Pack.__init__
    - refs.items
    - header.split
    - dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack
    - line.startswith
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - pack_name.split
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - head_resp_bytes.replace
    - dulwich.pack.PackStreamReader.read
    - v.strip
    - pkt.rstrip
    - <builtin>.iter
    - dulwich.client.GitClient._negotiate_upload_pack_capabilities
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - dulwich.dumb.DumbRemoteHTTPRepo.get_head
    - service.decode
    - refs_raw.items
    - new_unshallow.add
    - dulwich.client._extract_symrefs_and_agent
    - dulwich.pack.Pack.from_objects
    - os.fdopen
    - dulwich.refs.read_info_refs
    - io.BufferedReader.read
    - struct.unpack_from
    - dulwich.pack.load_pack_index_file
    - dulwich.file._GitFile.__init__
    - dulwich.protocol.pkt_line
    - <builtin>.super
    - text.rstrip
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - <builtin>.set
    - dulwich.protocol.Protocol.read_pkt_seq
    - dulwich.dumb.DumbHTTPObjectStore.get_raw
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.pack.write_pack_data
    - dulwich.objects.ShaFile.from_raw_string
    - dulwich.objects.object_class
    - sha.strip
    - zlib.decompress
    - chunks.append
    - ret.append
    - ret.insert
    - resp.redirect_location.endswith
    - struct.pack
    - os.fstat
    - header.extend
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - ret.read
    - dulwich.pack.PackChunkGenerator.sha1digest
    - typing.cast.readlines
    - dulwich.pack.pack_object_chunks
    - io.BytesIO.getvalue
    - f.write
    - dulwich.client.read_server_capabilities
    - typing.cast
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - binascii.unhexlify
    - sys.stdin.buffer.read
    - to_fetch.pop
    - <builtin>.getattr
    - <builtin>.min
    - compressor.compress
    - dulwich.client.find_capability
    - dulwich.client.read_pkt_refs_v2
    - dulwich.server.serve_command.send_fn
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - v.split
    - <builtin>.dict
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - sha.decode
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - dulwich.refs.filter_ref_prefix
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - os.open
    - seen.add
    - resp.content_type.split
    - struct.unpack
    - dulwich.client.AbstractHttpGitClient._smart_request
    - negotiated_capabilities.add
    - graph_walker.nak
    - urllib.parse.urljoin.rstrip
    - line.rstrip
    - dulwich.pack.FilePackIndex._object_offset
    - hashlib.sha1.digest
    - dulwich.protocol.Protocol.unread_pkt_line
    - typing.cast.read
    - dulwich.porcelain.upload_pack.send_fn
    - dulwich.client.FetchPackResult.__init__
    - pack_name.endswith
    - part.startswith
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.client.AbstractHttpGitClient._get_url
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - capability.split
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - server_capabilities.append
    - typing.cast.write
    - tempfile.SpooledTemporaryFile.read
    - zlib.compressobj
    - sys.stdout.buffer.flush
    - dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2
    - dulwich.pack.PackIndex1.__init__
    - <builtin>.enumerate
    - dulwich.pack.PackIndex1._unpack_offset
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.update_shallow
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 12
    argDefaultValues: []
    argNames:
    - self
    - path
    - determine_wants
    - graph_walker
    - pack_data
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1240
    functionName: dulwich.client.GitClient.fetch_pack
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf74b700>
    - <ast.Constant object at 0x7febaf74b6a0>
    argNames:
    - self
    - path
    - protocol_version
    - ref_prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1283
    functionName: dulwich.client.GitClient.get_refs
    functionSourceFile: dulwich.client
    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:
    - new_refs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1302
    functionName: dulwich.client.GitClient._should_send_pack
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached:
    - new_refs.values
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_refs.values
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - server_capabilities
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1306
    functionName: dulwich.client.GitClient._negotiate_receive_pack_capabilities
    functionSourceFile: dulwich.client
    functionUses: 2
    functionsReached:
    - dulwich.protocol.parse_capability
    - <builtin>.len
    - typing.NewType
    - v.split
    - dulwich.client._extract_symrefs_and_agent
    - capability.split
    - dulwich.protocol.extract_capability_names
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaeb41730>
    argNames:
    - self
    - proto
    - capabilities
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1315
    functionName: dulwich.client.GitClient._handle_receive_pack_tail
    functionSourceFile: dulwich.client
    functionUses: 2
    functionsReached:
    - sys.stdin.buffer.read
    - <builtin>.next
    - <builtin>.dict
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.protocol.PktLineParser.__init__
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.client._read_side_band64k_data
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - rest.split
    - io.BytesIO
    - <builtin>.sum
    - dulwich.protocol.Protocol.read_pkt_seq
    - status.split
    - dulwich.protocol.PktLineParser.parse
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.client.ReportStatusParser.check
    - dulwich.protocol.Protocol.read_pkt_line
    - <builtin>.ord
    - <builtin>.int
    - dulwich.client.ReportStatusParser.handle_packet
    - io.BytesIO.write
    - pkt.strip
    - io.BytesIO.getvalue
    - error.decode
    - io.BytesIO.tell
    - <builtin>.map
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1336
    functionName: dulwich.client.GitClient._handle_receive_pack_tail.progress
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - server_capabilities
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1360
    functionName: dulwich.client.GitClient._negotiate_upload_pack_capabilities
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached:
    - dulwich.protocol.parse_capability
    - fetch_features.append
    - <builtin>.len
    - negotiated_capabilities.add
    - <builtin>.range
    - typing.NewType
    - v.split
    - dulwich.client._extract_symrefs_and_agent
    - capability.split
    - v.strip
    - dulwich.protocol.extract_capability_names
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.strip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fetch_features.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: negotiated_capabilities.add
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febaf055130>
    - <ast.Constant object at 0x7febaf0558e0>
    - <ast.Constant object at 0x7febaf055b80>
    - <ast.Constant object at 0x7febaf055e20>
    - <ast.Constant object at 0x7febaf055be0>
    argNames:
    - self
    - path
    - committish
    - write_data
    - progress
    - write_error
    - format
    - subdirs
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1391
    functionName: dulwich.client.GitClient.archive
    functionSourceFile: dulwich.client
    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: 1406
    functionName: dulwich.client.GitClient._warn_filter_objects
    functionSourceFile: dulwich.client
    functionUses: 3
    functionsReached:
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - wants
    - refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1415
    functionName: dulwich.client.check_wants
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - refs.items
    - k.endswith
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - InvalidWants
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - stderr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1429
    functionName: dulwich.client._remote_error_from_stderr
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - line.startswith
    - <builtin>.len
    - line.decode
    - <builtin>.super
    - Exception.__init__
    - line.rstrip
    - dulwich.errors.HangupException.__init__
    - stderr.readlines
    - dulwich.errors.GitProtocolError.__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: stderr.readlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Name object at 0x7febaec31b50>
    - <ast.Constant object at 0x7febaec31fd0>
    - <ast.Constant object at 0x7febaec31af0>
    - <ast.Constant object at 0x7febaec31880>
    - <ast.Constant object at 0x7febaec31640>
    argNames:
    - self
    - path_encoding
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1444
    functionName: dulwich.client.TraditionalGitClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaec32100>
    argNames:
    - self
    - cmd
    - path
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1469
    functionName: dulwich.client.TraditionalGitClient._connect
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 8
    IfCount: 9
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae7e4ca0>
    argNames:
    - self
    - path
    - update_refs
    - generate_pack_data
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 1491
    functionName: dulwich.client.TraditionalGitClient.send_pack
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.OSError
    - socket.getaddrinfo
    - dulwich.client.find_git_command
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - dulwich.pack.PackChunkGenerator.__init__
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - object.as_raw_chunks
    - io.BytesIO.read
    - dulwich.client.SubprocessGitClient._connect
    - s.close
    - subprocess.Popen
    - dulwich.web.ChunkReader.read
    - dulwich.client.ReportStatusParser.check
    - s.connect
    - <builtin>.any
    - <builtin>.sorted
    - dulwich.client.GitClient._negotiate_receive_pack_capabilities
    - dulwich.client.ReportStatusParser.handle_packet
    - io.BytesIO.write
    - pkt.strip
    - dulwich.client.read_pkt_refs_v1
    - proto.write_pkt_line
    - binascii.crc32
    - dulwich.protocol.extract_capabilities
    - <builtin>.map
    - path.encode
    - hashlib.sha1
    - logger.debug
    - capabilities.strip
    - <builtin>.type
    - path.decode
    - dulwich.client._read_side_band64k_data
    - dulwich.client._to_optional_dict
    - unpacked.sha
    - dulwich.client._v1ReceivePackHeader.__init__
    - <builtin>.len
    - dulwich.client.ReportStatusParser.__init__
    - <builtin>.list
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.protocol.extract_capability_names
    - report_status_parser._ref_statuses.append
    - socketserver.StreamRequestHandler.connection.recv
    - compressor.flush
    - new_refs.items
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - dulwich.protocol.parse_capability
    - s.makefile
    - header.append
    - <builtin>.ord
    - io.BufferedReader
    - refs.items
    - urllib.parse.urlparse.hostname.encode
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - old_refs.get
    - new_refs.get
    - dulwich.client.SSHGitClient._connect
    - <builtin>.iter
    - proto.write
    - pkt.rstrip
    - old_refs.values
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - s.setsockopt
    - service.decode
    - path.startswith
    - dulwich.client._extract_symrefs_and_agent
    - win32api.FindExecutable
    - dulwich.client._v1ReceivePackHeader.__iter__
    - io.BufferedReader.read
    - rest.split
    - text.rstrip
    - dulwich.protocol.pkt_line
    - dulwich.client.SubprocessWrapper.__init__
    - dulwich.protocol.Protocol.send_cmd
    - io.BytesIO
    - <builtin>.set
    - dulwich.client.TCPGitClient._connect
    - dulwich.protocol.Protocol.read_pkt_seq
    - dulwich.protocol.PktLineParser.parse
    - dulwich.protocol.Protocol.read_pkt_line
    - ret.insert
    - orig_new_refs.items
    - struct.pack
    - dulwich.protocol.format_cmd_pkt
    - header.extend
    - <builtin>.isinstance
    - dulwich.pack.pack_object_chunks
    - error.decode
    - io.BytesIO.getvalue
    - dulwich.client._v1ReceivePackHeader._handle_receive_pack_head
    - typing.NewType
    - new_refs.values
    - sys.stdin.buffer.read
    - <builtin>.getattr
    - dulwich.client.GitClient._should_send_pack
    - compressor.compress
    - dulwich.server.serve_command.send_fn
    - proto.read_pkt_seq
    - dulwich.protocol.Protocol.write_pkt_line
    - sys.stdout.buffer.write
    - <builtin>.dict
    - v.split
    - dulwich.client.GitClient._handle_receive_pack_tail
    - dulwich.protocol.PktLineParser.__init__
    - io.BytesIO.seek
    - dulwich.client.SSHGitClient._get_cmd_path
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - dulwich.client.SendPackResult.__init__
    - socket.socket
    - hashlib.sha1.digest
    - status.split
    - dulwich.porcelain.upload_pack.send_fn
    - capability.split
    - old_refs.items
    - <builtin>.bytes
    - <builtin>.bytearray
    - zlib.compressobj
    - sys.stdout.buffer.flush
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - _remote_error_from_stderr
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadc328b0>
    argNames:
    - self
    - cmd
    - path
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3162
    functionName: dulwich.client.SSHGitClient._connect
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - dulwich.client.SSHGitClient._get_cmd_path
    - path.encode
    - dulwich.protocol.Protocol.__init__
    - <builtin>.getattr
    - path.startswith
    - <builtin>.isinstance
    - path.decode
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4dc6a0>
    argNames:
    - self
    - cmd
    - path
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1972
    functionName: dulwich.client.TCPGitClient._connect
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - <builtin>.OSError
    - socket.getaddrinfo
    - path.encode
    - dulwich.protocol.Protocol.__init__
    - s.setsockopt
    - path.startswith
    - dulwich.server.serve_command.send_fn
    - sys.stdout.buffer.write
    - dulwich.protocol.Protocol.write_pkt_line
    - dulwich.porcelain.receive_pack.send_fn
    - <builtin>.len
    - socket.socket
    - dulwich.protocol.pkt_line
    - s.close
    - dulwich.protocol.Protocol.send_cmd
    - dulwich.porcelain.upload_pack.send_fn
    - s.makefile
    - s.connect
    - dulwich.protocol.format_cmd_pkt
    - <builtin>.isinstance
    - urllib.parse.urlparse.hostname.encode
    - io.BytesIO.write
    - sys.stdout.buffer.flush
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febae7e3910>
    argNames:
    - self
    - service
    - path
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2160
    functionName: dulwich.client.SubprocessGitClient._connect
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - subprocess.Popen
    - dulwich.client.find_git_command
    - dulwich.protocol.Protocol.__init__
    - io.BufferedReader
    - service.decode
    - dulwich.client.SubprocessWrapper.__init__
    - <builtin>.isinstance
    - path.decode
    - win32api.FindExecutable
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proto.read_pkt_seq
    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: proto.write_pkt_line
    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: old_refs.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: orig_new_refs.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: report_status_parser._ref_statuses.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proto.write
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 17
    IfCount: 14
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febae434e20>
    - <ast.Constant object at 0x7febae4349a0>
    - <ast.Constant object at 0x7febae434220>
    - <ast.Constant object at 0x7febae4348b0>
    - <ast.Constant object at 0x7febae434400>
    - <ast.Constant object at 0x7febae434b80>
    - <ast.Constant object at 0x7febae522eb0>
    argNames:
    - self
    - path
    - determine_wants
    - graph_walker
    - pack_data
    - progress
    - depth
    - ref_prefix
    - filter_spec
    - protocol_version
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1599
    functionName: dulwich.client.TraditionalGitClient.fetch_pack
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.OSError
    - socket.getaddrinfo
    - ref.encode
    - dulwich.client.find_git_command
    - k.startswith
    - new_shallow.add
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - io.BytesIO.read
    - dulwich.client.SubprocessGitClient._connect
    - pkt.split
    - fetch_features.append
    - s.close
    - warnings.warn
    - dulwich.client.GitClient._warn_filter_objects
    - subprocess.Popen
    - dulwich.web.ChunkReader.read
    - <builtin>.range
    - s.connect
    - dulwich.client._handle_upload_pack_head
    - <builtin>.sorted
    - <builtin>.any
    - io.BytesIO.write
    - pkt.strip
    - dulwich.client.read_pkt_refs_v1
    - dulwich.client.negotiate_protocol_version
    - proto.write_pkt_line
    - dulwich.protocol.extract_capabilities
    - <builtin>.map
    - shallow_since.encode
    - path.encode
    - capabilities.strip
    - graph_walker.ack
    - path.decode
    - logging.warning
    - dulwich.client._read_side_band64k_data
    - dulwich.client._to_optional_dict
    - <builtin>.len
    - dulwich.client._handle_upload_pack_tail
    - <builtin>.list
    - <builtin>.sum
    - dulwich.protocol.extract_capability_names
    - dulwich.client._read_shallow_updates
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.protocol.parse_capability
    - s.makefile
    - <builtin>.ord
    - io.BufferedReader
    - refs.items
    - urllib.parse.urlparse.hostname.encode
    - <builtin>.int
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - <builtin>.str
    - v.strip
    - dulwich.client.SSHGitClient._connect
    - pkt.rstrip
    - dulwich.client.GitClient._negotiate_upload_pack_capabilities
    - proto.write
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - s.setsockopt
    - service.decode
    - path.startswith
    - new_unshallow.add
    - dulwich.client._extract_symrefs_and_agent
    - win32api.FindExecutable
    - io.BufferedReader.read
    - text.rstrip
    - dulwich.protocol.pkt_line
    - dulwich.client.SubprocessWrapper.__init__
    - dulwich.protocol.Protocol.send_cmd
    - io.BytesIO
    - <builtin>.set
    - dulwich.client.TCPGitClient._connect
    - dulwich.protocol.Protocol.read_pkt_seq
    - dulwich.protocol.Protocol.read_pkt_line
    - sha.strip
    - dulwich.protocol.format_cmd_pkt
    - <builtin>.isinstance
    - dulwich.client.read_server_capabilities
    - typing.NewType
    - sys.stdin.buffer.read
    - <builtin>.getattr
    - dulwich.client.read_pkt_refs_v2
    - dulwich.client.find_capability
    - dulwich.server.serve_command.send_fn
    - proto.read_pkt_seq
    - dulwich.protocol.Protocol.write_pkt_line
    - sys.stdout.buffer.write
    - v.split
    - io.BytesIO.seek
    - dulwich.client.SSHGitClient._get_cmd_path
    - dulwich.refs.filter_ref_prefix
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - negotiated_capabilities.add
    - graph_walker.nak
    - socket.socket
    - dulwich.protocol.Protocol.unread_pkt_line
    - dulwich.porcelain.upload_pack.send_fn
    - dulwich.client.FetchPackResult.__init__
    - part.startswith
    - <builtin>.hasattr
    - capability.split
    - server_capabilities.append
    - sys.stdout.buffer.flush
    linkageType: pythonLinkage
    raised:
    - ValueError
    - _remote_error_from_stderr
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 9
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf501730>
    - <ast.Constant object at 0x7febaf501550>
    argNames:
    - self
    - path
    - protocol_version
    - ref_prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1759
    functionName: dulwich.client.TraditionalGitClient.get_refs
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.OSError
    - dulwich.client.find_git_command
    - socket.getaddrinfo
    - k.startswith
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.porcelain.receive_pack.send_fn
    - io.BytesIO.read
    - dulwich.client.SubprocessGitClient._connect
    - s.close
    - subprocess.Popen
    - dulwich.web.ChunkReader.read
    - s.connect
    - <builtin>.any
    - io.BytesIO.write
    - pkt.strip
    - dulwich.client.read_pkt_refs_v1
    - dulwich.client.negotiate_protocol_version
    - proto.write_pkt_line
    - dulwich.protocol.extract_capabilities
    - <builtin>.map
    - path.encode
    - capabilities.strip
    - path.decode
    - logging.warning
    - dulwich.client._to_optional_dict
    - <builtin>.len
    - <builtin>.sum
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.protocol.parse_capability
    - s.makefile
    - io.BufferedReader
    - refs.items
    - urllib.parse.urlparse.hostname.encode
    - <builtin>.int
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - io.BytesIO.tell
    - dulwich.client.SSHGitClient._connect
    - pkt.rstrip
    - proto.write
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - s.setsockopt
    - service.decode
    - path.startswith
    - dulwich.client._extract_symrefs_and_agent
    - win32api.FindExecutable
    - io.BufferedReader.read
    - text.rstrip
    - dulwich.protocol.pkt_line
    - dulwich.client.SubprocessWrapper.__init__
    - dulwich.protocol.Protocol.send_cmd
    - io.BytesIO
    - <builtin>.set
    - dulwich.client.TCPGitClient._connect
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.protocol.format_cmd_pkt
    - <builtin>.isinstance
    - dulwich.client.read_server_capabilities
    - typing.NewType
    - sys.stdin.buffer.read
    - dulwich.client.LsRemoteResult.__init__
    - <builtin>.getattr
    - dulwich.client.read_pkt_refs_v2
    - dulwich.server.serve_command.send_fn
    - proto.read_pkt_seq
    - dulwich.protocol.Protocol.write_pkt_line
    - sys.stdout.buffer.write
    - v.split
    - io.BytesIO.seek
    - dulwich.client.SSHGitClient._get_cmd_path
    - dulwich.refs.filter_ref_prefix
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - socket.socket
    - dulwich.protocol.Protocol.unread_pkt_line
    - dulwich.porcelain.upload_pack.send_fn
    - part.startswith
    - capability.split
    - server_capabilities.append
    - sys.stdout.buffer.flush
    - peeled.items
    linkageType: pythonLinkage
    raised:
    - ValueError
    - _remote_error_from_stderr
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: peeled.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 9
    IfCount: 12
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febaec83dc0>
    - <ast.Constant object at 0x7febaec83b80>
    - <ast.Constant object at 0x7febaec83e20>
    - <ast.Constant object at 0x7febaec83c40>
    - <ast.Constant object at 0x7febaec83fa0>
    argNames:
    - self
    - path
    - committish
    - write_data
    - progress
    - write_error
    - format
    - subdirs
    - prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1819
    functionName: dulwich.client.TraditionalGitClient.archive
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient._connect
    - <builtin>.OSError
    - dulwich.client.find_git_command
    - path.encode
    - socket.getaddrinfo
    - dulwich.protocol.Protocol.__init__
    - s.setsockopt
    - <builtin>.getattr
    - service.decode
    - path.startswith
    - dulwich.server.serve_command.send_fn
    - proto.read_pkt_seq
    - dulwich.protocol.Protocol.write_pkt_line
    - sys.stdout.buffer.write
    - path.decode
    - dulwich.porcelain.receive_pack.send_fn
    - win32api.FindExecutable
    - dulwich.client.SSHGitClient._get_cmd_path
    - dulwich.client._read_side_band64k_data
    - dulwich.client.SubprocessGitClient._connect
    - <builtin>.len
    - socket.socket
    - dulwich.protocol.pkt_line
    - s.close
    - dulwich.client.SubprocessWrapper.__init__
    - dulwich.protocol.Protocol.send_cmd
    - dulwich.client.TCPGitClient._connect
    - pkt.startswith
    - subprocess.Popen
    - dulwich.porcelain.upload_pack.send_fn
    - s.makefile
    - <builtin>.ord
    - io.BufferedReader
    - s.connect
    - dulwich.protocol.format_cmd_pkt
    - <builtin>.isinstance
    - urllib.parse.urlparse.hostname.encode
    - io.BytesIO.write
    - proto.read_pkt_line
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func
    - sys.stdout.buffer.flush
    - proto.write_pkt_line
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - _remote_error_from_stderr
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proto.read_pkt_line
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pkt.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febafd3b220>
    - <ast.Constant object at 0x7febaf5d23a0>
    - <ast.Constant object at 0x7febaf5d2310>
    - <ast.Constant object at 0x7febaf5d2190>
    - <ast.Constant object at 0x7febaf5d27c0>
    argNames:
    - self
    - host
    - port
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1884
    functionName: dulwich.client.TCPGitClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 19
    functionsReached:
    - <builtin>.super
    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 0x7febaf5d2c10>
    - <ast.Constant object at 0x7febaf5d2df0>
    - <ast.Constant object at 0x7febadd48fd0>
    - <ast.Constant object at 0x7febadd486d0>
    - <ast.Constant object at 0x7febadd481c0>
    - <ast.Constant object at 0x7febadd48fa0>
    - <ast.Constant object at 0x7febadd48040>
    - <ast.Constant object at 0x7febadd48c70>
    argNames:
    - cls
    - parsedurl
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - dumb
    - username
    - password
    - config
    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: 1915
    functionName: dulwich.client.TCPGitClient.from_parsedurl
    functionSourceFile: dulwich.client
    functionUses: 18
    functionsReached:
    - <builtin>.super
    - dulwich.client.TCPGitClient.__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: urllib.parse.urlunsplit
    functionSourceFile: urllib
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.getaddrinfo
    functionSourceFile: socket
    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>.OSError
    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: socket.socket
    functionSourceFile: socket
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.setsockopt
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.connect
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.close
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.makefile
    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: rfile.close
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wfile.close
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse.hostname.encode
    functionSourceFile: urllib
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: dulwich.client.TCPGitClient._connect.<lambda1>
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - select.select
    - dulwich.client._fileno_can_read
    - s.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.fileno
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - proc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2044
    functionName: dulwich.client.SubprocessWrapper.__init__
    functionSourceFile: dulwich.client
    functionUses: 7
    functionsReached:
    - io.BufferedReader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BufferedReader
    functionSourceFile: io
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2057
    functionName: dulwich.client.SubprocessWrapper.stderr
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2061
    functionName: dulwich.client.SubprocessWrapper.can_read
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - ctypes.windll.kernel32.PeekNamedPipe
    - dulwich.client._fileno_can_read
    - msvcrt.get_osfhandle
    - ctypes.wintypes.DWORD
    - ctypes.byref
    - select.select
    - dulwich.client._win32_peek_avail
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msvcrt.get_osfhandle
    functionSourceFile: msvcrt
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2101
    functionName: dulwich.client.find_git_command
    functionSourceFile: dulwich.client
    functionUses: 5
    functionsReached:
    - win32api.FindExecutable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: win32api.FindExecutable
    functionSourceFile: win32api
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febae7e3490>
    - <ast.Constant object at 0x7febae7e3190>
    - <ast.Constant object at 0x7febae7e3670>
    - <ast.Constant object at 0x7febae7e3640>
    - <ast.Constant object at 0x7febae7e3c10>
    - <ast.Constant object at 0x7febae7e37f0>
    - <ast.Constant object at 0x7febae7e3ee0>
    - <ast.Constant object at 0x7febae7e3f10>
    argNames:
    - cls
    - parsedurl
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - dumb
    - username
    - password
    - config
    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: 2123
    functionName: dulwich.client.SubprocessGitClient.from_parsedurl
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - dulwich.client.TraditionalGitClient.__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: service.decode
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadb984f0>
    - <ast.Constant object at 0x7febadb98250>
    - <ast.Constant object at 0x7febadb98640>
    - <ast.Constant object at 0x7febadb98970>
    - <ast.Constant object at 0x7febadb98e50>
    argNames:
    - self
    - thin_packs
    - report_activity
    - config
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2196
    functionName: dulwich.client.LocalGitClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1653a0>
    - <ast.Constant object at 0x7febaf1657f0>
    - <ast.Constant object at 0x7febaf165e80>
    - <ast.Constant object at 0x7febaf165f70>
    - <ast.Constant object at 0x7febaf1654f0>
    - <ast.Constant object at 0x7febaf1659d0>
    - <ast.Constant object at 0x7febaf165d00>
    - <ast.Constant object at 0x7febaf165bb0>
    argNames:
    - cls
    - parsedurl
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - dumb
    - username
    - password
    - config
    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: 2231
    functionName: dulwich.client.LocalGitClient.from_parsedurl
    functionSourceFile: dulwich.client
    functionUses: 18
    functionsReached:
    - dulwich.client.LocalGitClient.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2268
    functionName: dulwich.client.LocalGitClient._open_repo
    functionSourceFile: dulwich.client
    functionUses: 6
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextlib.closing
    functionSourceFile: contextlib
    functionUses: 242
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae4a9eb0>
    argNames:
    - self
    - path
    - update_refs
    - generate_pack_data
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2281
    functionName: dulwich.client.LocalGitClient.send_pack
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - target.refs.set_if_equals
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.client.LocalGitClient._open_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.client._to_optional_dict
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - target.refs.remove_if_equals
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - new_refs.items
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - target.object_store.add_pack_data
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - old_refs.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - old_refs.values
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - target.get_refs
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - want.append
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - <builtin>.dict
    - whitespace.append
    - dulwich.config._parse_string
    - msg.encode
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client.SendPackResult.__init__
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.client.LocalGitClient.send_pack.progress
    - dulwich.repo.BaseRepo.__init__
    - old_refs.items
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2309
    functionName: dulwich.client.LocalGitClient.send_pack.progress
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.get_refs
    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: want.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.refs.set_if_equals
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.refs.remove_if_equals
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.fetch
    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: r.refs.get_symrefs
    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: r.find_missing_objects
    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: missing_objects.get_remote_has
    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: r.get_refs
    functionSourceFile: <builtin>
    functionUses: 10
    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 0x7febaec28430>
    - <ast.Constant object at 0x7febaec28670>
    argNames:
    - self
    - path
    - protocol_version
    - ref_prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2464
    functionName: dulwich.client.LocalGitClient.get_refs
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.client.LocalGitClient._open_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.client._to_optional_dict
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - target.get_refs
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - target.refs.read_ref
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.client.LsRemoteResult.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ref_value.startswith
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.refs.read_ref
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_value.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4d2af0>
    - <ast.Constant object at 0x7febaf4d29a0>
    - <ast.Constant object at 0x7febaf4d22b0>
    - <ast.Constant object at 0x7febaf4d2700>
    - <ast.Constant object at 0x7febaf4d2a00>
    argNames:
    - self
    - thin_packs
    - report_activity
    - config
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2494
    functionName: dulwich.client.BundleClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaf779d00>
    - <ast.Constant object at 0x7febaf779be0>
    - <ast.Constant object at 0x7febaf779cd0>
    - <ast.Constant object at 0x7febaf7799a0>
    - <ast.Constant object at 0x7febaf7794c0>
    - <ast.Constant object at 0x7febaf779eb0>
    - <ast.Constant object at 0x7febaf7792b0>
    - <ast.Constant object at 0x7febaf779640>
    argNames:
    - cls
    - parsedurl
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - dumb
    - username
    - password
    - config
    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: 2528
    functionName: dulwich.client.BundleClient.from_parsedurl
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - dulwich.client.BundleClient.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2564
    functionName: dulwich.client.BundleClient._is_bundle_file
    functionSourceFile: dulwich.client
    functionUses: 16
    functionsReached:
    - <builtin>.open
    - f.readline
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.readline
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2574
    functionName: dulwich.client.BundleClient._open_bundle
    functionSourceFile: dulwich.client
    functionUses: 5
    functionsReached:
    - line.startswith
    - <builtin>.open
    - typing.NewType
    - prerequisites.append
    - line.rstrip
    - os.fsdecode
    - line.split
    - value_bytes.decode
    - <builtin>.isinstance
    - f.readline
    - key.decode
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.decode
    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: prerequisites.append
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2639
    functionName: dulwich.client.BundleClient._skip_to_pack_data
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - line.startswith
    - f.readline
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8cefd0>
    argNames:
    - self
    - path
    - update_refs
    - generate_pack_data
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2671
    functionName: dulwich.client.BundleClient.send_pack
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refs.values
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_file.read
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_name.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4f2d00>
    - <ast.Constant object at 0x7febaf4f2eb0>
    argNames:
    - self
    - path
    - protocol_version
    - ref_prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2783
    functionName: dulwich.client.BundleClient.get_refs
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - line.startswith
    - <builtin>.open
    - <builtin>.dict
    - dulwich.client._to_optional_dict
    - dulwich.client.LsRemoteResult.__init__
    - ref_name.startswith
    - dulwich.client.BundleClient._open_bundle
    - refs.items
    - typing.NewType
    - prerequisites.append
    - line.rstrip
    - os.fsdecode
    - line.split
    - value_bytes.decode
    - <builtin>.isinstance
    - f.readline
    - key.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febaf791400>
    - <ast.Constant object at 0x7febaf7918b0>
    - <ast.Constant object at 0x7febaf791640>
    - <ast.Constant object at 0x7febaf791e20>
    - <ast.Constant object at 0x7febaf791820>
    - <ast.Constant object at 0x7febaf791310>
    argNames:
    - self
    - host
    - command
    - username
    - port
    - password
    - key_filename
    - ssh_command
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2815
    functionName: dulwich.client.SSHVendor.run_command
    functionSourceFile: dulwich.client
    functionUses: 0
    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
    - hostname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2848
    functionName: dulwich.client.StrangeHostname.__init__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 5
    IfCount: 8
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febaefed6a0>
    - <ast.Constant object at 0x7febaefed190>
    - <ast.Constant object at 0x7febaefed310>
    - <ast.Constant object at 0x7febaefedb20>
    - <ast.Constant object at 0x7febaefed2b0>
    - <ast.Constant object at 0x7febaefed460>
    argNames:
    - self
    - host
    - command
    - username
    - port
    - password
    - key_filename
    - ssh_command
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2860
    functionName: dulwich.client.SubprocessSSHVendor.run_command
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - subprocess.Popen
    - host.startswith
    - args.extend
    - io.BufferedReader
    - shlex.split
    - <builtin>.str
    - dulwich.client.SubprocessWrapper.__init__
    - args.append
    linkageType: pythonLinkage
    raised:
    - StrangeHostname
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shlex.split
    functionSourceFile: shlex
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febaf31c940>
    - <ast.Constant object at 0x7febaf1a7910>
    - <ast.Constant object at 0x7febaf1a7550>
    - <ast.Constant object at 0x7febaf1a7190>
    - <ast.Constant object at 0x7febaf1a7b50>
    - <ast.Constant object at 0x7febaf1a7df0>
    argNames:
    - self
    - host
    - command
    - username
    - port
    - password
    - key_filename
    - ssh_command
    - protocol_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2928
    functionName: dulwich.client.PLinkSSHVendor.run_command
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - subprocess.Popen
    - host.startswith
    - args.extend
    - io.BufferedReader
    - shlex.split
    - copy.deepcopy
    - <builtin>.str
    - dulwich.client.SubprocessWrapper.__init__
    - args.append
    - warnings.warn
    linkageType: pythonLinkage
    raised:
    - StrangeHostname
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: copy.deepcopy
    functionSourceFile: copy
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a8c10>
    - <ast.Constant object at 0x7febaf2a80d0>
    - <ast.Constant object at 0x7febaf2a8430>
    - <ast.Constant object at 0x7febaf2a8970>
    - <ast.Constant object at 0x7febaf2a8b80>
    - <ast.Constant object at 0x7febaf2a8820>
    - <ast.Constant object at 0x7febaf2a8c40>
    - <ast.Attribute object at 0x7febaf2a8e50>
    - <ast.Constant object at 0x7febaf2a8bb0>
    - <ast.Constant object at 0x7febaf2a86d0>
    - <ast.Constant object at 0x7febaf2a8ac0>
    - <ast.Constant object at 0x7febaf2a8d00>
    argNames:
    - self
    - host
    - port
    - username
    - vendor
    - config
    - password
    - key_filename
    - ssh_command
    - path_encoding
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3013
    functionName: dulwich.client.SSHGitClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 19
    functionsReached:
    - <builtin>.super
    - config.get
    - config_ssh_command.decode
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config_ssh_command.decode
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5bec10>
    - <ast.Constant object at 0x7febaf5bef10>
    - <ast.Constant object at 0x7febaf5bee20>
    - <ast.Constant object at 0x7febaf5bea00>
    - <ast.Constant object at 0x7febaf5becd0>
    - <ast.Constant object at 0x7febaf5be730>
    - <ast.Constant object at 0x7febaf5beca0>
    - <ast.Constant object at 0x7febaf5bedc0>
    - <ast.Attribute object at 0x7febaf5beac0>
    - <ast.Constant object at 0x7febaf5bebe0>
    - <ast.Constant object at 0x7febaf5be220>
    - <ast.Constant object at 0x7febaf5bebb0>
    argNames:
    - cls
    - parsedurl
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - dumb
    - username
    - password
    - config
    - path_encoding
    - vendor
    - key_filename
    - ssh_command
    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: 3103
    functionName: dulwich.client.SSHGitClient.from_parsedurl
    functionSourceFile: dulwich.client
    functionUses: 18
    functionsReached:
    - dulwich.client.SSHGitClient.__init__
    - config_ssh_command.decode
    - os.environ.get
    - <builtin>.super
    - config.get
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3157
    functionName: dulwich.client.SSHGitClient._get_cmd_path
    functionSourceFile: dulwich.client
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    linkageType: 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: 3208
    functionName: dulwich.client.default_user_agent_string
    functionSourceFile: dulwich.client
    functionUses: 16
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - config
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3215
    functionName: dulwich.client._urlmatch_http_sections
    functionSourceFile: dulwich.client
    functionUses: 14
    functionsReached:
    - sys.getdefaultencoding
    - urllib.parse.urlparse
    - matching_sections.sort
    - matching_sections.append
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.len
    - <builtin>.getattr
    - dulwich.credentials.match_partial_url
    - <builtin>.any
    - config.sections
    - dulwich.credentials.match_urls
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matching_sections.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - url_prefix
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: dulwich.credentials.match_urls
    functionSourceFile: dulwich.credentials
    functionUses: 16
    functionsReached:
    - urllib.parse.urlparse.path.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - valid_url
    - partial_url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: dulwich.credentials.match_partial_url
    functionSourceFile: dulwich.credentials
    functionUses: 16
    functionsReached:
    - urllib.parse.urlparse
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse.path.rstrip
    functionSourceFile: urllib
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.client._urlmatch_http_sections.<lambda1>
    functionSourceFile: dulwich.client
    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: matching_sections.sort
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - base_url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3436
    functionName: dulwich.client.check_for_proxy_bypass
    functionSourceFile: dulwich.client
    functionUses: 14
    functionsReached:
    - ipaddress.ip_network
    - urllib.parse.urlparse
    - ipaddress.ip_address
    - no_proxy_value.lstrip
    - no_proxy_value.strip
    - os.environ.get
    - urllib.parse.urlparse.hostname.endswith
    - no_proxy_value.lower
    - no_proxy_str.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proxy_server_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: user_agent_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ca_certs_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: timeout_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extra_header.split
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header_name.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header_value.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proxy_server.decode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib3.make_headers
    functionSourceFile: urllib3
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib3.ProxyManager
    functionSourceFile: urllib3
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib3.PoolManager
    functionSourceFile: urllib3
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ipaddress.ip_address
    functionSourceFile: ipaddress
    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: no_proxy_str.split
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: no_proxy_value.strip
    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: no_proxy_value.lower
    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: no_proxy_value.lstrip
    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: ipaddress.ip_network
    functionSourceFile: ipaddress
    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: urllib.parse.urlparse.hostname.endswith
    functionSourceFile: urllib
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7febaddbbe80>
    - <ast.Constant object at 0x7febaddbb040>
    - <ast.Constant object at 0x7febaddbb250>
    - <ast.Constant object at 0x7febaddbbd90>
    - <ast.Constant object at 0x7febaddbbdc0>
    - <ast.Constant object at 0x7febaddbb5b0>
    - <ast.Constant object at 0x7febaddbb700>
    argNames:
    - self
    - base_url
    - dumb
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3500
    functionName: dulwich.client.AbstractHttpGitClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 19
    functionsReached:
    - dulwich.protocol.capability_agent
    - dulwich.protocol.agent_string
    - urllib.parse.urlunparse.rstrip
    - <builtin>.map
    - dulwich.client.GitClient.__init__
    - <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: urllib.parse.urlunparse.rstrip
    functionSourceFile: urllib
    functionUses: 20
    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 0x7febaf95be20>
    - <ast.Constant object at 0x7febaf95bd60>
    - <ast.Constant object at 0x7febaf95b1f0>
    argNames:
    - self
    - url
    - headers
    - data
    - raise_for_status
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3526
    functionName: dulwich.client.AbstractHttpGitClient._http_request
    functionSourceFile: dulwich.client
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 26
    ICount: 1
    IfCount: 18
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadab4550>
    - <ast.Constant object at 0x7febadab4040>
    argNames:
    - self
    - service
    - base_url
    - protocol_version
    - ref_prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3552
    functionName: dulwich.client.AbstractHttpGitClient._discover_references
    functionSourceFile: dulwich.client
    functionUses: 4
    functionsReached:
    - pkt.rstrip
    - sys.stdin.buffer.read
    - pkts.append
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - k.startswith
    - io.BytesIO.readlines
    - service.decode
    - capabilities.strip
    - dulwich.client.read_pkt_refs_v2
    - resp.close
    - v.split
    - dulwich.protocol.ReceivableProtocol.read
    - dulwich.client._extract_symrefs_and_agent
    - io.BytesIO.read
    - dulwich.refs.read_info_refs
    - logging.warning
    - dulwich.refs.filter_ref_prefix
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - dulwich.client._to_optional_dict
    - resp.content_type.startswith
    - resp.content_type.split
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient._smart_request
    - text.rstrip
    - dulwich.protocol.pkt_line
    - ref.endswith
    - line.rstrip
    - <builtin>.list
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - dulwich.protocol.Protocol.unread_pkt_line
    - dulwich.protocol.Protocol.read_pkt_seq
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - part.startswith
    - dulwich.client.AbstractHttpGitClient._http_request
    - dulwich.protocol.parse_capability
    - k.endswith
    - resp.redirect_location.endswith
    - refs.items
    - <builtin>.any
    - <builtin>.isinstance
    - capability.split
    - urllib.parse.urljoin
    - <builtin>.int
    - io.BytesIO.write
    - server_capabilities.append
    - pkt.strip
    - typing.cast.readlines
    - dulwich.client.read_pkt_refs_v1
    - dulwich.client.negotiate_protocol_version
    - dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2
    - io.BytesIO.tell
    - dulwich.client.read_server_capabilities
    - typing.cast
    - typing.NewType
    - <builtin>.str
    - dulwich.protocol.split_peeled_refs
    - dulwich.protocol.extract_capabilities
    - <builtin>.map
    linkageType: pythonLinkage
    raised:
    - ValueError
    - GitProtocolError
    returnType: N/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.redirect_location.endswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.content_type.startswith
    functionSourceFile: <builtin>
    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:
    - proto
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3606
    functionName: dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2
    functionSourceFile: dulwich.client
    functionUses: 5
    functionsReached:
    - sys.stdin.buffer.read
    - pkts.append
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - service.decode
    - dulwich.protocol.ReceivableProtocol.read
    - io.BytesIO.read
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - resp.content_type.split
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient._smart_request
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - dulwich.protocol.Protocol.read_pkt_seq
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.client.AbstractHttpGitClient._http_request
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - <builtin>.int
    - io.BytesIO.write
    - server_capabilities.append
    - dulwich.client.read_server_capabilities
    - io.BytesIO.tell
    - <builtin>.str
    - <builtin>.map
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pkts.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - service
    - url
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3712
    functionName: dulwich.client.AbstractHttpGitClient._smart_request
    functionSourceFile: dulwich.client
    functionUses: 6
    functionsReached:
    - resp.content_type.split
    - dulwich.client.AbstractHttpGitClient._http_request
    - <builtin>.len
    - <builtin>.str
    - <builtin>.isinstance
    - urllib.parse.urljoin
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2.<lambda1>
    functionSourceFile: dulwich.client
    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: dulwich.client.AbstractHttpGitClient._discover_references.<lambda1>
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.close
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.content_type.split
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf936d60>
    argNames:
    - self
    - path
    - update_refs
    - generate_pack_data
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 3741
    functionName: dulwich.client.AbstractHttpGitClient.send_pack
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - pkts.append
    - k.startswith
    - io.BytesIO.readlines
    - resp.close
    - hashlib.sha1.update
    - dulwich.pack.PackChunkGenerator.__init__
    - dulwich.protocol.ReceivableProtocol.read
    - object.as_raw_chunks
    - io.BytesIO.read
    - resp.content_type.startswith
    - ref.endswith
    - dulwich.web.ChunkReader.read
    - dulwich.client.ReportStatusParser.check
    - dulwich.client.AbstractHttpGitClient._discover_references
    - dulwich.protocol.agent_string
    - k.endswith
    - <builtin>.any
    - <builtin>.sorted
    - dulwich.client.GitClient._negotiate_receive_pack_capabilities
    - dulwich.client.ReportStatusParser.handle_packet
    - io.BytesIO.write
    - pkt.strip
    - dulwich.client.read_pkt_refs_v1
    - dulwich.client.negotiate_protocol_version
    - binascii.crc32
    - dulwich.protocol.extract_capabilities
    - <builtin>.map
    - hashlib.sha1
    - logger.debug
    - capabilities.strip
    - <builtin>.type
    - path.decode
    - logging.warning
    - dulwich.client._read_side_band64k_data
    - dulwich.client._to_optional_dict
    - unpacked.sha
    - dulwich.client._v1ReceivePackHeader.__init__
    - <builtin>.len
    - dulwich.client.ReportStatusParser.__init__
    - <builtin>.list
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.protocol.extract_capability_names
    - socketserver.StreamRequestHandler.connection.recv
    - compressor.flush
    - new_refs.items
    - dulwich.client.AbstractHttpGitClient._http_request
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - dulwich.protocol.parse_capability
    - header.append
    - <builtin>.ord
    - refs.items
    - dulwich.client.AbstractHttpGitClient.send_pack.body_generator
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - io.BytesIO.tell
    - <builtin>.str
    - old_refs.get
    - new_refs.get
    - old_refs_typed.items
    - pkt.rstrip
    - <builtin>.iter
    - <builtin>.all
    - old_refs.values
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - service.decode
    - dulwich.client._extract_symrefs_and_agent
    - dulwich.refs.read_info_refs
    - dulwich.client._v1ReceivePackHeader.__iter__
    - io.BufferedReader.read
    - rest.split
    - text.rstrip
    - dulwich.protocol.pkt_line
    - io.BytesIO
    - <builtin>.set
    - dulwich.protocol.Protocol.read_pkt_seq
    - dulwich.protocol.PktLineParser.parse
    - dulwich.protocol.Protocol.read_pkt_line
    - ret.insert
    - resp.redirect_location.endswith
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - typing.cast.readlines
    - dulwich.pack.pack_object_chunks
    - io.BytesIO.getvalue
    - error.decode
    - dulwich.client.read_server_capabilities
    - dulwich.client._v1ReceivePackHeader._handle_receive_pack_head
    - typing.cast
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - new_refs.values
    - sys.stdin.buffer.read
    - dulwich.client.GitClient._should_send_pack
    - compressor.compress
    - dulwich.client.read_pkt_refs_v2
    - v.split
    - <builtin>.dict
    - dulwich.client.GitClient._handle_receive_pack_tail
    - dulwich.protocol.PktLineParser.__init__
    - io.BytesIO.seek
    - dulwich.refs.filter_ref_prefix
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - resp.content_type.split
    - negotiated_capabilities.add
    - dulwich.client.AbstractHttpGitClient._smart_request
    - dulwich.client.SendPackResult.__init__
    - urllib.parse.urljoin.rstrip
    - line.rstrip
    - hashlib.sha1.digest
    - dulwich.protocol.Protocol.unread_pkt_line
    - status.split
    - part.startswith
    - dulwich.client.AbstractHttpGitClient._get_url
    - capability.split
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - server_capabilities.append
    - <builtin>.bytearray
    - zlib.compressobj
    - dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4029
    functionName: dulwich.client.AbstractHttpGitClient._get_url
    functionSourceFile: dulwich.client
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - path.decode
    - urllib.parse.urljoin.rstrip
    - urllib.parse.urljoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: old_refs_typed.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3799
    functionName: dulwich.client.AbstractHttpGitClient.send_pack.body_generator
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached:
    - <builtin>.iter
    - old_refs.values
    - hashlib.sha1
    - logger.debug
    - dulwich.client.GitClient._should_send_pack
    - compressor.compress
    - hashlib.sha1.update
    - <builtin>.type
    - dulwich.pack.PackChunkGenerator.__init__
    - <builtin>.enumerate
    - object.as_raw_chunks
    - old_refs.get
    - dulwich.client._v1ReceivePackHeader.__iter__
    - unpacked.sha
    - dulwich.client._v1ReceivePackHeader.__init__
    - <builtin>.len
    - dulwich.protocol.pkt_line
    - <builtin>.list
    - <builtin>.sum
    - <builtin>.set
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.sorted
    - <builtin>.isinstance
    - <builtin>.any
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - dulwich.client._v1ReceivePackHeader._handle_receive_pack_head
    - binascii.crc32
    - <builtin>.map
    - new_refs.values
    - new_refs.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: dulwich.client.AbstractHttpGitClient.send_pack.<lambda1>
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - base_url
    - http_request_func
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 368
    functionName: dulwich.dumb.DumbRemoteHTTPRepo.__init__
    functionSourceFile: dulwich.dumb
    functionUses: 2
    functionsReached:
    - dulwich.dumb.DumbHTTPObjectStore.__init__
    - base_url.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.client.AbstractHttpGitClient.fetch_pack.<lambda1>
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf74bd30>
    argNames:
    - self
    - determine_wants
    - graph_walker
    - progress
    - get_tagged
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 447
    functionName: dulwich.dumb.DumbRemoteHTTPRepo.fetch_pack_data
    functionSourceFile: dulwich.dumb
    functionUses: 2
    functionsReached:
    - dulwich.dumb.DumbRemoteHTTPRepo._fetch_url
    - dulwich.pack.PackIndex3._unpack_offset
    - io.BytesIO.readlines
    - resp.close
    - obj.set_raw_string
    - ret.check_length_and_checksum
    - hashlib.sha1.update
    - io.BytesIO.read
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - dulwich.dumb.DumbRemoteHTTPRepo.get_refs
    - ref.endswith
    - io.BytesIO.fileno
    - dulwich.objects.hex_to_sha
    - k.endswith
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - packs_data.strip
    - <builtin>.map
    - tempfile.mkdtemp
    - dulwich.pack.PackIndex3.__init__
    - dulwich._pack.bisect_find_sha
    - decompressed.find
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - os.path.exists
    - dulwich.pack.FilePackIndex.object_offset
    - to_fetch.add
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - <builtin>.len
    - _TYPE_MAP.get
    - pack.close
    - obj.items
    - <builtin>.sum
    - <builtin>.open
    - dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - refs.items
    - header.split
    - dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack
    - line.startswith
    - <builtin>.int
    - pack_name.split
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - refs_raw.items
    - dulwich.pack.Pack.from_objects
    - os.fdopen
    - dulwich.refs.read_info_refs
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - <builtin>.set
    - dulwich.dumb.DumbHTTPObjectStore.get_raw
    - dulwich.objects.ShaFile.from_raw_string
    - dulwich.objects.object_class
    - zlib.decompress
    - chunks.append
    - ret.append
    - os.fstat
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - ret.read
    - typing.cast.readlines
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - binascii.unhexlify
    - to_fetch.pop
    - <builtin>.getattr
    - <builtin>.min
    - <builtin>.dict
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - sha.decode
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - seen.add
    - struct.unpack
    - line.rstrip
    - dulwich.pack.FilePackIndex._object_offset
    - typing.cast.read
    - pack_name.endswith
    - dulwich.file.GitFile
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.PackIndex1.__init__
    - <builtin>.enumerate
    - dulwich.pack.PackIndex1._unpack_offset
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 425
    functionName: dulwich.dumb.DumbRemoteHTTPRepo.get_head
    functionSourceFile: dulwich.dumb
    functionUses: 2
    functionsReached:
    - dulwich.dumb.DumbRemoteHTTPRepo._fetch_url
    - io.BytesIO.readlines
    - refs_raw.items
    - resp.close
    - <builtin>.dict
    - dulwich.refs.read_info_refs
    - <builtin>.len
    - dulwich.dumb.DumbRemoteHTTPRepo.get_refs
    - ref.endswith
    - line.rstrip
    - io.BytesIO
    - k.endswith
    - chunks.append
    - refs.items
    - urllib.parse.urljoin
    - typing.cast.readlines
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - head_resp_bytes.replace
    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 0x7febaf7815b0>
    - <ast.Constant object at 0x7febaf781460>
    argNames:
    - self
    - path
    - protocol_version
    - ref_prefix
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 3977
    functionName: dulwich.client.AbstractHttpGitClient.get_refs
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - pkt.rstrip
    - sys.stdin.buffer.read
    - pkts.append
    - dulwich.client.LsRemoteResult.__init__
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - k.startswith
    - io.BytesIO.readlines
    - service.decode
    - capabilities.strip
    - dulwich.client.read_pkt_refs_v2
    - resp.close
    - v.split
    - dulwich.protocol.ReceivableProtocol.read
    - path.decode
    - dulwich.client._extract_symrefs_and_agent
    - io.BytesIO.read
    - dulwich.refs.read_info_refs
    - logging.warning
    - dulwich.refs.filter_ref_prefix
    - io.BytesIO.seek
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - dulwich.client._to_optional_dict
    - resp.content_type.startswith
    - resp.content_type.split
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient._smart_request
    - text.rstrip
    - dulwich.protocol.pkt_line
    - ref.endswith
    - urllib.parse.urljoin.rstrip
    - line.rstrip
    - <builtin>.list
    - io.BytesIO
    - <builtin>.sum
    - <builtin>.set
    - dulwich.protocol.Protocol.unread_pkt_line
    - dulwich.protocol.Protocol.read_pkt_seq
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - part.startswith
    - dulwich.client.AbstractHttpGitClient._discover_references
    - dulwich.client.AbstractHttpGitClient._http_request
    - dulwich.protocol.parse_capability
    - k.endswith
    - resp.redirect_location.endswith
    - refs.items
    - dulwich.client.AbstractHttpGitClient._get_url
    - <builtin>.any
    - <builtin>.isinstance
    - capability.split
    - urllib.parse.urljoin
    - <builtin>.int
    - io.BytesIO.write
    - server_capabilities.append
    - pkt.strip
    - typing.cast.readlines
    - dulwich.client.read_pkt_refs_v1
    - dulwich.client.negotiate_protocol_version
    - dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2
    - dulwich.client.read_server_capabilities
    - io.BytesIO.tell
    - typing.cast
    - typing.NewType
    - <builtin>.str
    - dulwich.protocol.split_peeled_refs
    - dulwich.protocol.extract_capabilities
    - <builtin>.map
    - peeled.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlunparse
    functionSourceFile: urllib
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urljoin.rstrip
    functionSourceFile: urllib
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febaed14250>
    - <ast.Constant object at 0x7febaed140a0>
    - <ast.Constant object at 0x7febaed148e0>
    - <ast.Constant object at 0x7febaed14c10>
    - <ast.Constant object at 0x7febaed14b80>
    - <ast.Constant object at 0x7febaed14e50>
    - <ast.Constant object at 0x7febaed14a90>
    - <ast.Constant object at 0x7febaed14d90>
    - <ast.Constant object at 0x7febaed14670>
    argNames:
    - cls
    - parsedurl
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - dumb
    - username
    - password
    - config
    - pool_manager
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 4034
    functionName: dulwich.client.AbstractHttpGitClient.from_parsedurl
    functionSourceFile: dulwich.client
    functionUses: 18
    functionsReached:
    - dulwich.protocol.capability_agent
    - <builtin>.issubclass
    - dulwich.protocol.agent_string
    - urllib.parse.urlunparse
    - urllib.parse.urlunparse.rstrip
    - urllib.parse.urlparse._replace
    - dulwich.client.AbstractHttpGitClient.__init__
    - <builtin>.map
    - dulwich.client.GitClient.__init__
    - <builtin>.set
    - urllib.parse.unquote
    - base_parsed._replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.unquote
    functionSourceFile: urllib
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse._replace
    functionSourceFile: urllib
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base_parsed._replace
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.issubclass
    functionSourceFile: <builtin>
    functionUses: 19
    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: 4114
    functionName: dulwich.client.AbstractHttpGitClient.__repr__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4119
    functionName: dulwich.client._wrap_urllib3_exceptions
    functionSourceFile: dulwich.client
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 4124
    functionName: dulwich.client._wrap_urllib3_exceptions.wrapper
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 13
    argDefaultValues:
    - <ast.Constant object at 0x7febaffb1790>
    - <ast.Constant object at 0x7febaffb1c40>
    - <ast.Constant object at 0x7febaffb15b0>
    - <ast.Constant object at 0x7febaffb1e80>
    - <ast.Constant object at 0x7febaffb1b20>
    - <ast.Constant object at 0x7febaffb1ca0>
    - <ast.Constant object at 0x7febaffb1700>
    - <ast.Constant object at 0x7febaffb1d60>
    - <ast.Constant object at 0x7febaffb1340>
    - <ast.Constant object at 0x7febaffb1370>
    - <ast.Constant object at 0x7febaffb1cd0>
    argNames:
    - self
    - base_url
    - dumb
    - pool_manager
    - config
    - username
    - password
    - timeout
    - extra_headers
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 4136
    functionName: dulwich.client.Urllib3HttpGitClient.__init__
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - matching_sections.append
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - proxy_server.decode
    - os.environ.get
    - config.sections
    - matching_sections.sort
    - no_proxy_value.lstrip
    - timeout_bytes.decode
    - <builtin>.len
    - <builtin>.super
    - no_proxy_value.lower
    - urllib3.util.make_headers
    - header_name.decode
    - no_proxy_str.split
    - <builtin>.float
    - ipaddress.ip_network
    - config.get_boolean
    - ipaddress.ip_address
    - logger.warning
    - urllib3.make_headers
    - extra_header.split
    - <builtin>.any
    - <builtin>.isinstance
    - proxy_server_bytes.decode
    - ca_certs_bytes.decode
    - dulwich.client.default_urllib3_manager
    - sys.getdefaultencoding
    - urllib.parse.urlparse
    - user_agent_bytes.decode
    - urllib.parse.urlparse.path.rstrip
    - dulwich.client._urlmatch_http_sections
    - dulwich.client.check_for_proxy_bypass
    - dulwich.client.default_user_agent_string
    - dulwich.credentials.match_partial_url
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - urllib.parse.urlparse.hostname.endswith
    - urllib3.ProxyManager
    - dulwich.credentials.match_urls
    - no_proxy_value.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib3.util.make_headers
    functionSourceFile: urllib3
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4184
    functionName: dulwich.client.Urllib3HttpGitClient._get_url
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - path.decode
    - urllib.parse.urljoin.rstrip
    - urllib.parse.urljoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf066dc0>
    - <ast.Constant object at 0x7febaf066910>
    - <ast.Constant object at 0x7febaf066a00>
    argNames:
    - self
    - url
    - headers
    - data
    - raise_for_status
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4191
    functionName: dulwich.client.Urllib3HttpGitClient._http_request
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - resp.headers.get
    - dulwich.client._wrap_urllib3_exceptions
    - resp.get_redirect_location
    - req_headers.update
    - <builtin>.dict
    - resp.geturl
    linkageType: pythonLinkage
    raised:
    - HTTPProxyUnauthorized
    - HTTPUnauthorized
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.headers.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.geturl
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.get_redirect_location
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - parsed
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4246
    functionName: dulwich.client._win32_url_to_path
    functionSourceFile: dulwich.client
    functionUses: 18
    functionsReached:
    - <builtin>.len
    - nturl2path.url2pathname
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: nturl2path.url2pathname
    functionSourceFile: nturl2path
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febada6a4c0>
    - <ast.Constant object at 0x7febada6a8b0>
    - <ast.Constant object at 0x7febada6ac40>
    - <ast.Constant object at 0x7febada6a5b0>
    - <ast.Constant object at 0x7febada6ac70>
    - <ast.Constant object at 0x7febaec17340>
    - <ast.Constant object at 0x7febaec17ee0>
    - <ast.Constant object at 0x7febaec17e50>
    - <ast.Constant object at 0x7febaec175b0>
    - <ast.Constant object at 0x7febaec17400>
    - <ast.Constant object at 0x7febaec17100>
    argNames:
    - url
    - config
    - operation
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - username
    - password
    - key_filename
    - ssh_command
    - pool_manager
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 4273
    functionName: dulwich.client.get_transport_and_path_from_url
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - dulwich.client.SSHGitClient.__init__
    - config.get_multivar
    - urllib.parse.urlparse._replace
    - os.environ.get
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - config.sections
    - dulwich.config.iter_instead_of
    - <builtin>.len
    - urllib.parse.urlunparse
    - dulwich.client._get_transport_and_path_from_url
    - <builtin>.super
    - orig_url.startswith
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - <builtin>.list
    - dulwich.client.TCPGitClient.from_parsedurl
    - <builtin>.set
    - base_parsed._replace
    - dulwich.client._win32_url_to_path
    - dulwich.client.LocalGitClient.__init__
    - dulwich.protocol.agent_string
    - config_ssh_command.decode
    - needle.decode
    - dulwich.client.GitClient.__init__
    - <builtin>.isinstance
    - replacement.decode
    - dulwich.protocol.capability_agent
    - urllib.parse.urlparse
    - <builtin>.issubclass
    - urllib.parse.urlunparse.rstrip
    - config.get
    - nturl2path.url2pathname
    - <builtin>.map
    - urllib.parse.unquote
    - dulwich.client.TCPGitClient.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febadfd4220>
    - <ast.Constant object at 0x7febadfd4490>
    - <ast.Constant object at 0x7febadfd4370>
    - <ast.Constant object at 0x7febadfd40d0>
    - <ast.Constant object at 0x7febadfd4e20>
    - <ast.Constant object at 0x7febadfd4790>
    - <ast.Constant object at 0x7febadfd41f0>
    - <ast.Constant object at 0x7febadfd4940>
    - <ast.Constant object at 0x7febadfd4130>
    argNames:
    - url
    - config
    - operation
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - username
    - password
    - key_filename
    - ssh_command
    - pool_manager
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 4326
    functionName: dulwich.client._get_transport_and_path_from_url
    functionSourceFile: dulwich.client
    functionUses: 17
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.client.SSHGitClient.__init__
    - urllib.parse.urlparse._replace
    - os.environ.get
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - <builtin>.set
    - dulwich.client.TCPGitClient.from_parsedurl
    - base_parsed._replace
    - dulwich.client._win32_url_to_path
    - dulwich.client.LocalGitClient.__init__
    - dulwich.protocol.agent_string
    - config_ssh_command.decode
    - dulwich.client.GitClient.__init__
    - dulwich.protocol.capability_agent
    - urllib.parse.urlparse
    - <builtin>.issubclass
    - urllib.parse.urlunparse.rstrip
    - config.get
    - nturl2path.url2pathname
    - <builtin>.map
    - urllib.parse.unquote
    - dulwich.client.TCPGitClient.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - location
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4402
    functionName: dulwich.client.parse_rsync_url
    functionSourceFile: dulwich.client
    functionUses: 16
    functionsReached:
    - location.split
    - user_host.rsplit
    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: location.split
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: user_host.rsplit
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5e5760>
    - <ast.Constant object at 0x7febaf5e56a0>
    - <ast.Constant object at 0x7febaf5e5340>
    - <ast.Constant object at 0x7febaf5e52e0>
    - <ast.Constant object at 0x7febaf5e50d0>
    - <ast.Constant object at 0x7febaf5e5dc0>
    - <ast.Constant object at 0x7febaf5e5040>
    - <ast.Constant object at 0x7febaf5e5d60>
    - <ast.Constant object at 0x7febaf5e5850>
    - <ast.Constant object at 0x7febaf5e5250>
    - <ast.Constant object at 0x7febaf5e5e80>
    argNames:
    - location
    - config
    - operation
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - username
    - password
    - key_filename
    - ssh_command
    - pool_manager
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 4421
    functionName: dulwich.client.get_transport_and_path
    functionSourceFile: dulwich.client
    functionUses: 15
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - dulwich.client.SSHGitClient.__init__
    - config.get_multivar
    - os.environ.get
    - dulwich.client.BundleClient.__init__
    - urllib.parse.urlparse._replace
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - config.sections
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - <builtin>.len
    - urllib.parse.urlunparse
    - dulwich.client._get_transport_and_path_from_url
    - <builtin>.super
    - orig_url.startswith
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - <builtin>.list
    - dulwich.client.BundleClient._is_bundle_file
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.client._win32_url_to_path
    - base_parsed._replace
    - <builtin>.set
    - <builtin>.open
    - location.split
    - dulwich.client.LocalGitClient.__init__
    - dulwich.protocol.agent_string
    - config_ssh_command.decode
    - needle.decode
    - dulwich.client.GitClient.__init__
    - <builtin>.isinstance
    - replacement.decode
    - f.readline
    - dulwich.protocol.capability_agent
    - urllib.parse.urlparse
    - <builtin>.issubclass
    - urllib.parse.urlunparse.rstrip
    - config.get
    - nturl2path.url2pathname
    - <builtin>.map
    - urllib.parse.unquote
    - dulwich.client.TCPGitClient.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf53c640>
    - <ast.Name object at 0x7febaf53cbe0>
    argNames:
    - scheme
    - hostname
    - username
    - fnames
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4532
    functionName: dulwich.client.get_credentials_from_store
    functionSourceFile: dulwich.client
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - urllib.parse.urlparse
    - line.strip
    linkageType: 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: dulwich.dumb
    functionSourceFile: dulwich.dumb
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - base_url
    - http_request_func
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: dulwich.dumb.DumbHTTPObjectStore.__init__
    functionSourceFile: dulwich.dumb
    functionUses: 3
    functionsReached:
    - base_url.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base_url.rstrip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    functionSourceFile: dulwich.dumb
    functionUses: 7
    functionsReached:
    - tempfile.mkdtemp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: dulwich.dumb.DumbHTTPObjectStore._fetch_url
    functionSourceFile: dulwich.dumb
    functionUses: 13
    functionsReached:
    - urllib.parse.urljoin
    - resp.close
    - chunks.append
    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: chunks.append
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 113
    functionName: dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    functionSourceFile: dulwich.dumb
    functionUses: 8
    functionsReached:
    - decompressed.find
    - <builtin>.int
    - <builtin>.len
    - zlib.decompress
    - chunks.append
    - urllib.parse.urljoin
    - resp.close
    - header.split
    - sha.decode
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    linkageType: pythonLinkage
    raised:
    - ObjectFormatException
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.decompress
    functionSourceFile: zlib
    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: decompressed.find
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 167
    functionName: dulwich.dumb.DumbHTTPObjectStore._load_packs
    functionSourceFile: dulwich.dumb
    functionUses: 8
    functionsReached:
    - line.startswith
    - pack_name.endswith
    - pack_name.split
    - chunks.append
    - resp.close
    - packs_data.strip
    - urllib.parse.urljoin
    - dulwich.dumb.DumbHTTPObjectStore._fetch_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: packs_data.strip
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_name.split
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pack_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 189
    functionName: dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    functionSourceFile: dulwich.dumb
    functionUses: 8
    functionsReached:
    - mmap.mmap
    - resp.close
    - io.BytesIO.read
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - struct.unpack
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.fileno
    - io.BytesIO
    - chunks.append
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - urllib.parse.urljoin
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - <builtin>.enumerate
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 211
    functionName: dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack
    functionSourceFile: dulwich.dumb
    functionUses: 6
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - hashlib.sha1.update
    - resp.close
    - ret.check_length_and_checksum
    - io.BytesIO.read
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - io.BytesIO.fileno
    - dulwich.objects.hex_to_sha
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - packs_data.strip
    - tempfile.mkdtemp
    - dulwich.pack.PackIndex3.__init__
    - dulwich._pack.bisect_find_sha
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - os.path.exists
    - dulwich.pack.FilePackIndex.object_offset
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - <builtin>.len
    - pack.close
    - <builtin>.open
    - dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - line.startswith
    - pack_name.split
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.Pack.from_objects
    - os.fdopen
    - struct.unpack_from
    - dulwich.pack.load_pack_index_file
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - chunks.append
    - ret.append
    - os.fstat
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - ret.read
    - f.write
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - struct.unpack
    - dulwich.pack.FilePackIndex._object_offset
    - typing.cast.read
    - pack_name.endswith
    - dulwich.file.GitFile
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.PackIndex1.__init__
    - <builtin>.enumerate
    - dulwich.pack.PackIndex1._unpack_offset
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - KeyError
    - RuntimeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 297
    functionName: dulwich.dumb.DumbHTTPObjectStore.__contains__
    functionSourceFile: dulwich.dumb
    functionUses: 0
    functionsReached:
    - dulwich.pack.PackIndex3._unpack_offset
    - hashlib.sha1.update
    - resp.close
    - ret.check_length_and_checksum
    - io.BytesIO.read
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object
    - io.BytesIO.fileno
    - dulwich.objects.hex_to_sha
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - packs_data.strip
    - tempfile.mkdtemp
    - dulwich.pack.PackIndex3.__init__
    - dulwich._pack.bisect_find_sha
    - decompressed.find
    - dulwich.pack.PackIndex2._unpack_offset
    - mmap.mmap
    - os.path.exists
    - dulwich.pack.FilePackIndex.object_offset
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - <builtin>.len
    - pack.close
    - <builtin>.open
    - dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - header.split
    - dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack
    - line.startswith
    - <builtin>.int
    - pack_name.split
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.Pack.from_objects
    - os.fdopen
    - struct.unpack_from
    - dulwich.pack.load_pack_index_file
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - zlib.decompress
    - chunks.append
    - ret.append
    - os.fstat
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - ret.read
    - f.write
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - sha.decode
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - struct.unpack
    - dulwich.pack.FilePackIndex._object_offset
    - typing.cast.read
    - pack_name.endswith
    - dulwich.file.GitFile
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.PackIndex1.__init__
    - <builtin>.enumerate
    - dulwich.pack.PackIndex1._unpack_offset
    - dulwich.file._GitFile.read
    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: 316
    functionName: dulwich.dumb.DumbHTTPObjectStore.__iter__
    functionSourceFile: dulwich.dumb
    functionUses: 0
    functionsReached:
    - mmap.mmap
    - resp.close
    - dulwich.objects.sha_to_hex
    - dulwich.dumb.DumbHTTPObjectStore._load_packs
    - io.BytesIO.read
    - binascii.hexlify
    - dulwich.pack.load_pack_index_file
    - seen.add
    - struct.unpack_from
    - struct.unpack
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.fileno
    - io.BytesIO
    - <builtin>.set
    - pack_name.endswith
    - chunks.append
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - dulwich.dumb.DumbHTTPObjectStore._get_pack_index
    - urllib.parse.urljoin
    - dulwich.dumb.DumbHTTPObjectStore._fetch_url
    - line.startswith
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - pack_name.split
    - dulwich.pack._load_file_contents
    - typing.NewType
    - dulwich.pack.PackIndex1.__init__
    - packs_data.strip
    - <builtin>.enumerate
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 338
    functionName: dulwich.dumb.DumbHTTPObjectStore.packs
    functionSourceFile: dulwich.dumb
    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
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 345
    functionName: dulwich.dumb.DumbHTTPObjectStore.add_object
    functionSourceFile: dulwich.dumb
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae381880>
    argNames:
    - self
    - objects
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 349
    functionName: dulwich.dumb.DumbHTTPObjectStore.add_objects
    functionSourceFile: dulwich.dumb
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 357
    functionName: dulwich.dumb.DumbHTTPObjectStore.__del__
    functionSourceFile: dulwich.dumb
    functionUses: 0
    functionsReached:
    - os.path.exists
    - shutil.rmtree
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 387
    functionName: dulwich.dumb.DumbRemoteHTTPRepo._fetch_url
    functionSourceFile: dulwich.dumb
    functionUses: 6
    functionsReached:
    - urllib.parse.urljoin
    - resp.close
    - chunks.append
    linkageType: pythonLinkage
    raised:
    - OSError
    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: 407
    functionName: dulwich.dumb.DumbRemoteHTTPRepo.get_refs
    functionSourceFile: dulwich.dumb
    functionUses: 5
    functionsReached:
    - dulwich.dumb.DumbRemoteHTTPRepo._fetch_url
    - <builtin>.len
    - typing.cast.readlines
    - k.endswith
    - chunks.append
    - io.BytesIO.readlines
    - refs_raw.items
    - resp.close
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - refs.items
    - ref.endswith
    - <builtin>.dict
    - line.rstrip
    - io.BytesIO
    - urllib.parse.urljoin
    - dulwich.refs.read_info_refs
    linkageType: pythonLinkage
    raised:
    - NotGitRepository
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refs_raw.items
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: head_resp_bytes.replace
    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
    - ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 440
    functionName: dulwich.dumb.DumbRemoteHTTPRepo.get_peeled
    functionSourceFile: dulwich.dumb
    functionUses: 0
    functionsReached:
    - dulwich.dumb.DumbRemoteHTTPRepo._fetch_url
    - <builtin>.len
    - typing.cast.readlines
    - k.endswith
    - chunks.append
    - io.BytesIO.readlines
    - dulwich.dumb.DumbRemoteHTTPRepo.get_refs
    - refs_raw.items
    - resp.close
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - refs.items
    - ref.endswith
    - <builtin>.dict
    - line.rstrip
    - io.BytesIO
    - urllib.parse.urljoin
    - dulwich.refs.read_info_refs
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_fetch.pop
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: to_fetch.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.bundle
    functionSourceFile: dulwich.bundle
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: dulwich.bundle.PackDataLike.__len__
    functionSourceFile: dulwich.bundle
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: dulwich.bundle.PackDataLike.iter_unpacked
    functionSourceFile: dulwich.bundle
    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: 74
    functionName: dulwich.bundle.Bundle.__repr__
    functionSourceFile: dulwich.bundle
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: dulwich.bundle.Bundle.__eq__
    functionSourceFile: dulwich.bundle
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaefb3d30>
    argNames:
    - self
    - object_store
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 99
    functionName: dulwich.bundle.Bundle.store_objects
    functionSourceFile: dulwich.bundle
    functionUses: 2
    functionsReached:
    - <builtin>.iter
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.iter_unpacked
    - dulwich.objects.ShaFile.from_raw_chunks
    - dulwich.objects.object_class
    - <builtin>.len
    - dulwich.cli.cmd_bundle._unbundle.progress
    - msg.decode
    - logger.error
    - <builtin>.str
    - <builtin>.isinstance
    - _TYPE_MAP.get
    - object_store.add_object
    - obj.set_raw_chunks
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 317
    functionName: dulwich.bundle.create_bundle_from_repo._BundlePackData.iter_unpacked
    functionSourceFile: dulwich.bundle
    functionUses: 5
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6214
    functionName: dulwich.cli.cmd_bundle._unbundle.progress
    functionSourceFile: dulwich.cli
    functionUses: 3
    functionsReached:
    - <builtin>.len
    - logger.error
    - <builtin>.str
    - <builtin>.isinstance
    - msg.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 131
    functionName: dulwich.bundle._read_bundle
    functionSourceFile: dulwich.bundle
    functionUses: 5
    functionsReached:
    - sys.stdin.buffer.read
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - os.fdopen
    - dulwich.pack.read_pack_header
    - dulwich.contrib.swift.SwiftPackReader._read
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - sys.stdin.buffer.readline
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - line.rstrip
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - prerequisites.append
    - value_bytes.decode
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - line.startswith
    - <builtin>.bytes
    - dulwich.pack.PackData.from_file
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - typing.NewType
    - <builtin>.str
    - line.split
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    - key.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: sys.stdin.buffer.readline
    functionSourceFile: sys
    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:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 174
    functionName: dulwich.bundle.read_bundle
    functionSourceFile: dulwich.bundle
    functionUses: 4
    functionsReached:
    - sys.stdin.buffer.read
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - os.fdopen
    - dulwich.pack.read_pack_header
    - dulwich.contrib.swift.SwiftPackReader._read
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - sys.stdin.buffer.readline
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - line.rstrip
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - <builtin>.hasattr
    - dulwich.bundle._read_bundle
    - dulwich.file.GitFile
    - <builtin>.range
    - prerequisites.append
    - value_bytes.decode
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - line.startswith
    - <builtin>.bytes
    - dulwich.pack.PackData.from_file
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - typing.NewType
    - <builtin>.str
    - line.split
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    - key.decode
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - ValueError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 10
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - bundle
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 192
    functionName: dulwich.bundle.write_bundle
    functionSourceFile: dulwich.bundle
    functionUses: 2
    functionsReached:
    - <builtin>.iter
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.iter_unpacked
    - hashlib.sha1
    - compressor.compress
    - bundle.capabilities.items
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - <builtin>.type
    - sys.stdout.buffer.write
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.write_pack_data
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - value.encode
    - header.append
    - ret.insert
    - struct.pack
    - header.extend
    - <builtin>.isinstance
    - dulwich.pack.PackChunkGenerator.sha1digest
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - typing.cast.write
    - bundle.references.items
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - key.encode
    - typing.cast
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - AssertionError
    - 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: sys.stdout.buffer.write
    functionSourceFile: sys
    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: bundle.capabilities.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bundle.references.items
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 5
    IfCount: 7
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadfe5130>
    - <ast.Constant object at 0x7febadfe5dc0>
    - <ast.Constant object at 0x7febadfe56a0>
    - <ast.Constant object at 0x7febadfe5bb0>
    - <ast.Constant object at 0x7febadfe58e0>
    argNames:
    - repo
    - refs
    - prerequisites
    - version
    - capabilities
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 231
    functionName: dulwich.bundle.create_bundle_from_repo
    functionSourceFile: dulwich.bundle
    functionUses: 2
    functionsReached:
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - bundle_prerequisites.append
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.refs.RefsContainer.keys
    - dulwich.refs._split_ref_line
    - dulwich.repo.BaseRepo.get_shallow
    - dulwich.reftable._decode_ref_value
    - directory.replace
    - want_objects.add
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.refpath
    - base.rstrip
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.repo.BaseRepo.generate_pack_data
    - <builtin>.enumerate
    - os.fspath
    - path.decode
    - refs.keys
    - table_data.sort
    - prereq.decode
    - <builtin>.len
    - all_refs.pop
    - path.lstrip
    - <builtin>.list
    - dulwich.repo.Repo.get_named_file
    - have_objects.add
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - <builtin>.ord
    - refs.items
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - line.startswith
    - io.BytesIO.tell
    - <builtin>.iter
    - os.fsencode
    - line.strip
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - dulwich.repo.MemoryRepo.get_named_file
    - os.fdopen
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - dulwich.repo.BaseRepo.get_named_file
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.__init__
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - bytes.fromhex
    - dulwich.file.GitFile
    - <builtin>.bytes
    - dulwich.repo.Repo.controldir
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: want_objects.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prereq.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bundle_prerequisites.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: have_objects.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - count
    - objects
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 310
    functionName: dulwich.bundle.create_bundle_from_repo._BundlePackData.__init__
    functionSourceFile: dulwich.bundle
    functionUses: 3
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 314
    functionName: dulwich.bundle.create_bundle_from_repo._BundlePackData.__len__
    functionSourceFile: dulwich.bundle
    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: dulwich.credentials
    functionSourceFile: dulwich.credentials
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - config
    - url
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 84
    functionName: dulwich.credentials.urlmatch_credential_sections
    functionSourceFile: dulwich.credentials
    functionUses: 0
    functionsReached:
    - sys.getdefaultencoding
    - urllib.parse.urlparse
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.len
    - dulwich.credentials.match_partial_url
    - <builtin>.any
    - config.sections
    - dulwich.credentials.match_urls
    linkageType: 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: dulwich.line_ending
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - replace_me
    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 0x7febaf5fa5b0>
    - <ast.Constant object at 0x7febaf5fa6a0>
    - <ast.Constant object at 0x7febaf5fa430>
    - <ast.Constant object at 0x7febaf5fa2e0>
    argNames:
    - self
    - clean_conversion
    - smudge_conversion
    - binary_detection
    - safecrlf
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 184
    functionName: dulwich.line_ending.LineEndingFilter.__init__
    functionSourceFile: dulwich.line_ending
    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: core_eol_raw.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: safecrlf_raw.encode
    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:
    - core_eol
    - core_autocrlf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 394
    functionName: dulwich.line_ending.get_smudge_filter
    functionSourceFile: dulwich.line_ending
    functionUses: 4
    functionsReached:
    - dulwich.line_ending.get_smudge_filter_autocrlf
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - core_eol
    - core_autocrlf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 402
    functionName: dulwich.line_ending.get_clean_filter
    functionSourceFile: dulwich.line_ending
    functionUses: 4
    functionsReached:
    - dulwich.line_ending.get_clean_filter_autocrlf
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadf68340>
    argNames:
    - self
    - data
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 273
    functionName: dulwich.line_ending.LineEndingFilter.clean
    functionSourceFile: dulwich.line_ending
    functionUses: 1
    functionsReached:
    - text_hunk.split
    - dulwich.patch.is_binary
    - text_hunk.replace
    - cleaned_parts.append
    - <builtin>.len
    - logger.warning
    - dulwich.line_ending.convert_crlf_to_lf
    - CRLF.join
    - dulwich.line_ending.check_safecrlf
    - dulwich.line_ending.convert_lf_to_crlf
    - <builtin>.enumerate
    - path.decode
    - part.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 344
    functionName: dulwich.patch.is_binary
    functionSourceFile: ''
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text_hunk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 318
    functionName: dulwich.line_ending.convert_crlf_to_lf
    functionSourceFile: dulwich.line_ending
    functionUses: 5
    functionsReached:
    - text_hunk.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf88cf40>
    argNames:
    - original
    - converted
    - safecrlf
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 348
    functionName: dulwich.line_ending.check_safecrlf
    functionSourceFile: dulwich.line_ending
    functionUses: 4
    functionsReached:
    - text_hunk.split
    - text_hunk.replace
    - cleaned_parts.append
    - <builtin>.len
    - logger.warning
    - dulwich.line_ending.convert_crlf_to_lf
    - CRLF.join
    - dulwich.line_ending.convert_lf_to_crlf
    - <builtin>.enumerate
    - path.decode
    - part.endswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8511f0>
    argNames:
    - self
    - data
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 290
    functionName: dulwich.line_ending.LineEndingFilter.smudge
    functionSourceFile: dulwich.line_ending
    functionUses: 1
    functionsReached:
    - text_hunk.split
    - dulwich.patch.is_binary
    - text_hunk.replace
    - cleaned_parts.append
    - <builtin>.len
    - logger.warning
    - dulwich.line_ending.convert_crlf_to_lf
    - CRLF.join
    - dulwich.line_ending.check_safecrlf
    - dulwich.line_ending.convert_lf_to_crlf
    - <builtin>.enumerate
    - path.decode
    - part.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text_hunk
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 328
    functionName: dulwich.line_ending.convert_lf_to_crlf
    functionSourceFile: dulwich.line_ending
    functionUses: 5
    functionsReached:
    - text_hunk.split
    - cleaned_parts.append
    - <builtin>.len
    - CRLF.join
    - <builtin>.enumerate
    - part.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 307
    functionName: dulwich.line_ending.LineEndingFilter.cleanup
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - config
    - filter_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 311
    functionName: dulwich.line_ending.LineEndingFilter.reuse
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text_hunk.replace
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text_hunk.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: part.endswith
    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: cleaned_parts.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: CRLF.join
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - core_autocrlf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 410
    functionName: dulwich.line_ending.get_smudge_filter_autocrlf
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - core_autocrlf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 427
    functionName: dulwich.line_ending.get_clean_filter_autocrlf
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - core_eol
    - core_autocrlf
    - git_attributes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 447
    functionName: dulwich.line_ending.get_checkout_filter
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - dulwich.line_ending.get_smudge_filter
    - core_autocrlf.encode
    - dulwich.line_ending.get_smudge_filter_autocrlf
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: core_autocrlf.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - core_eol
    - core_autocrlf
    - git_attributes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 464
    functionName: dulwich.line_ending.get_checkin_filter
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - dulwich.line_ending.get_clean_filter_autocrlf
    - core_autocrlf.encode
    - dulwich.line_ending.get_clean_filter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - core_autocrlf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 481
    functionName: dulwich.line_ending.get_checkout_filter_autocrlf
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - dulwich.line_ending.get_smudge_filter_autocrlf
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - core_autocrlf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 489
    functionName: dulwich.line_ending.get_checkin_filter_autocrlf
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - dulwich.line_ending.get_clean_filter_autocrlf
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2ee220>
    - <ast.Constant object at 0x7febaf2ee100>
    - <ast.Constant object at 0x7febaf2eeb50>
    argNames:
    - self
    - config_stack
    - gitattributes
    - core_eol
    - autocrlf
    - safecrlf
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 502
    functionName: dulwich.line_ending.BlobNormalizer.__init__
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.line_ending.get_smudge_filter_autocrlf
    - dulwich.filters.FilterRegistry.__init__
    - pattern_str.encode
    - dulwich.filters.FilterRegistry.get_driver
    - dulwich.line_ending.get_clean_filter_autocrlf
    - dulwich.attrs.Pattern.__init__
    - smudge_cmd_raw.decode
    - dulwich.line_ending.LineEndingFilter.__init__
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.line_ending.get_clean_filter
    - dulwich.filters.FilterRegistry._setup_line_ending_filter
    - gitattributes.items
    - threading.Lock
    - <builtin>.len
    - dulwich.filters.FilterRegistry.register_driver
    - <builtin>.super
    - dulwich.filters.FilterContext.__init__
    - dulwich.config.Config.get_boolean
    - <builtin>.set
    - dulwich.config.StackedConfig.get
    - dulwich.attrs.GitAttributes.__init__
    - re.compile
    - value.lower
    - stuff.startswith
    - <builtin>.isinstance
    - dulwich.line_ending.get_smudge_filter
    - autocrlf_raw.lower
    - clean_cmd_raw.decode
    - pattern.startswith
    - backend.get
    - dulwich.filters.FilterRegistry.register_factory
    - re.escape
    - process_cmd_raw.decode
    - git_attrs_patterns.append
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gitattributes.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: pattern_str.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: git_attrs_patterns.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - blob
    - tree_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 551
    functionName: dulwich.line_ending.BlobNormalizer.checkin_normalize
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - text_hunk.split
    - dulwich.patch.is_binary
    - CRLF.join
    - dulwich.line_ending.LineEndingFilter.__init__
    - path.decode
    - part.endswith
    - <builtin>.len
    - <builtin>.super
    - dulwich.line_ending.check_safecrlf
    - <builtin>.hasattr
    - dulwich.objects.Blob.__init__
    - logger.warning
    - dulwich.line_ending.LineEndingFilter.clean
    - text_hunk.replace
    - cleaned_parts.append
    - dulwich.line_ending.convert_crlf_to_lf
    - safecrlf.encode
    - dulwich.line_ending.convert_lf_to_crlf
    - <builtin>.enumerate
    - dulwich.attrs.GitAttributes.match_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: safecrlf.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - blob
    - tree_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 591
    functionName: dulwich.line_ending.BlobNormalizer.checkout_normalize
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - text_hunk.split
    - dulwich.patch.is_binary
    - CRLF.join
    - dulwich.line_ending.LineEndingFilter.__init__
    - path.decode
    - part.endswith
    - <builtin>.len
    - <builtin>.super
    - dulwich.line_ending.check_safecrlf
    - <builtin>.hasattr
    - logger.warning
    - dulwich.objects.Blob.__init__
    - dulwich.line_ending.LineEndingFilter.smudge
    - text_hunk.replace
    - cleaned_parts.append
    - dulwich.line_ending.convert_crlf_to_lf
    - safecrlf.encode
    - dulwich.line_ending.convert_lf_to_crlf
    - <builtin>.enumerate
    - dulwich.attrs.GitAttributes.match_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - blob
    - conversion
    - binary_detection
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 632
    functionName: dulwich.line_ending.normalize_blob
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - dulwich.patch.is_binary
    - dulwich.objects.Blob.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febae391ac0>
    - <ast.Constant object at 0x7febae3919a0>
    - <ast.Constant object at 0x7febae3914c0>
    - <ast.Constant object at 0x7febae3911c0>
    argNames:
    - self
    - config_stack
    - git_attributes
    - object_store
    - tree
    - core_eol
    - autocrlf
    - safecrlf
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 658
    functionName: dulwich.line_ending.TreeBlobNormalizer.__init__
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - subentry.in_path
    - todo.pop
    - dulwich.object_store.iter_tree_contents
    - todo.extend
    - <builtin>.super
    - stat.S_ISDIR
    - tree.iteritems
    - <builtin>.isinstance
    - extra.append
    - <builtin>.set
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - blob
    - tree_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 677
    functionName: dulwich.line_ending.TreeBlobNormalizer.checkin_normalize
    functionSourceFile: dulwich.line_ending
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.patch
    functionSourceFile: dulwich.patch
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf7a2e80>
    argNames:
    - self
    - algorithm
    - install_hint
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: dulwich.patch.DiffAlgorithmNotAvailable.__init__
    functionSourceFile: dulwich.patch
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 13
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf95ba30>
    - <ast.Constant object at 0x7febaf95b580>
    argNames:
    - f
    - commit
    - contents
    - progress
    - version
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: dulwich.patch.write_commit_patch
    functionSourceFile: dulwich.patch
    functionUses: 2
    functionsReached:
    - subprocess.Popen
    - time.strftime
    - version.encode
    - time.ctime
    - <builtin>.getattr
    - sys.stdout.write
    - contents.encode
    - <builtin>.isinstance
    - p.communicate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contents.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.ctime
    functionSourceFile: time
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.write
    functionSourceFile: sys
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.strftime
    functionSourceFile: time
    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: version.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - commit
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 165
    functionName: dulwich.patch.get_summary
    functionSourceFile: dulwich.patch
    functionUses: 2
    functionsReached:
    - commit.message.decode
    - decoded.splitlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: decoded.splitlines
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - start
    - stop
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 178
    functionName: dulwich.patch._format_range_unified
    functionSourceFile: dulwich.patch
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 7
    IfCount: 6
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6c70>
    - <ast.Constant object at 0x7febaf2a6e50>
    - <ast.Constant object at 0x7febaf2a65b0>
    - <ast.Constant object at 0x7febaf2a6cd0>
    - <ast.Constant object at 0x7febaf2a6130>
    - <ast.Constant object at 0x7febaf2a6100>
    - <ast.Constant object at 0x7febaf2a6640>
    - <ast.Constant object at 0x7febaf2a6a90>
    argNames:
    - a
    - b
    - fromfile
    - tofile
    - fromfiledate
    - tofiledate
    - n
    - lineterm
    - tree_encoding
    - output_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 190
    functionName: dulwich.patch.unified_diff
    functionSourceFile: dulwich.patch
    functionUses: 0
    functionsReached:
    - dulwich.patch._format_range_unified
    - difflib.SequenceMatcher.get_grouped_opcodes
    - difflib.SequenceMatcher
    - tofile.decode
    - fromfile.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: difflib.SequenceMatcher.get_grouped_opcodes
    functionSourceFile: difflib
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fromfile.decode
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tofile.decode
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - algorithm
    - a
    - b
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 241
    functionName: dulwich.patch._get_sequence_matcher
    functionSourceFile: dulwich.patch
    functionUses: 17
    functionsReached:
    - difflib.SequenceMatcher
    - patiencediff.PatienceSequenceMatcher
    linkageType: pythonLinkage
    raised:
    - DiffAlgorithmNotAvailable
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: patiencediff.PatienceSequenceMatcher
    functionSourceFile: patiencediff
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 7
    IfCount: 7
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febae651370>
    - <ast.Constant object at 0x7febae651a60>
    - <ast.Constant object at 0x7febae651670>
    - <ast.Constant object at 0x7febae6516a0>
    - <ast.Constant object at 0x7febae651fd0>
    - <ast.Constant object at 0x7febae651b50>
    - <ast.Constant object at 0x7febaeb6ea60>
    - <ast.Constant object at 0x7febaeb6e4f0>
    - <ast.Constant object at 0x7febaeb6e280>
    argNames:
    - a
    - b
    - fromfile
    - tofile
    - fromfiledate
    - tofiledate
    - n
    - lineterm
    - tree_encoding
    - output_encoding
    - algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 270
    functionName: dulwich.patch.unified_diff_with_algorithm
    functionSourceFile: dulwich.patch
    functionUses: 16
    functionsReached:
    - dulwich.patch._format_range_unified
    - difflib.SequenceMatcher.get_grouped_opcodes
    - patiencediff.PatienceSequenceMatcher
    - tofile.decode
    - difflib.SequenceMatcher
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - fromfile.decode
    - dulwich.patch._get_sequence_matcher
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    functionSourceFile: patiencediff
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hexsha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 353
    functionName: dulwich.patch.shortid
    functionSourceFile: dulwich.patch
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - p
    - root
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 368
    functionName: dulwich.patch.patch_filename
    functionSourceFile: dulwich.patch
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadd444f0>
    - <ast.Constant object at 0x7febadd44be0>
    argNames:
    - f
    - store
    - old_file
    - new_file
    - diff_binary
    - diff_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 384
    functionName: dulwich.patch.write_object_diff
    functionSourceFile: dulwich.patch
    functionUses: 12
    functionsReached:
    - dulwich.patch.is_binary
    - line_bytes.decode
    - dulwich.patch.write_object_diff.lines
    - obj.set_raw_string
    - difflib.SequenceMatcher
    - dulwich.patch.unified_diff_with_algorithm
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - content.splitlines
    - patiencediff.PatienceSequenceMatcher
    - dulwich.patch.shortid
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch._get_sequence_matcher
    - dulwich.diff.ColorizedDiffStream.write
    - io.BytesIO.writelines
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.gen_diff_header
    - tofile.decode
    - <builtin>.isinstance
    - dulwich.patch.patch_filename
    - line.startswith
    - <builtin>.bytes
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - rich.console.Console.print
    - obj.as_raw_string
    - dulwich.objects.S_ISGITLINK
    - fromfile.decode
    - dulwich.diff.ColorizedDiffStream.writelines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - mode
    - hexsha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 410
    functionName: dulwich.patch.write_object_diff.content
    functionSourceFile: dulwich.patch
    functionUses: 13
    functionsReached:
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - obj.as_raw_string
    - obj.set_raw_string
    - <builtin>.isinstance
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.S_ISGITLINK
    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: 432
    functionName: dulwich.patch.write_object_diff.lines
    functionSourceFile: dulwich.patch
    functionUses: 13
    functionsReached:
    - content.splitlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - paths
    - modes
    - shas
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 473
    functionName: dulwich.patch.gen_diff_header
    functionSourceFile: dulwich.patch
    functionUses: 16
    functionsReached:
    - dulwich.patch.shortid
    - dulwich.patch.patch_filename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.writelines
    functionSourceFile: io
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 601
    functionName: dulwich.diff.ColorizedDiffStream.writelines
    functionSourceFile: dulwich.diff
    functionUses: 16
    functionsReached:
    - line.startswith
    - <builtin>.bytes
    - dulwich.diff.ColorizedDiffStream.write
    - <builtin>.len
    - rich.console.Console.print
    - line_bytes.decode
    - <builtin>.isinstance
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 580
    functionName: dulwich.diff.ColorizedDiffStream.write
    functionSourceFile: dulwich.diff
    functionUses: 17
    functionsReached:
    - line.startswith
    - <builtin>.bytes
    - <builtin>.len
    - rich.console.Console.print
    - line_bytes.decode
    - <builtin>.isinstance
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf31c400>
    argNames:
    - f
    - old_file
    - new_file
    - diff_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 510
    functionName: dulwich.patch.write_blob_diff
    functionSourceFile: dulwich.patch
    functionUses: 4
    functionsReached:
    - blob.splitlines
    - <builtin>.getattr
    - line_bytes.decode
    - difflib.SequenceMatcher
    - dulwich.patch.unified_diff_with_algorithm
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.len
    - patiencediff.PatienceSequenceMatcher
    - dulwich.patch.shortid
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch._get_sequence_matcher
    - dulwich.diff.ColorizedDiffStream.write
    - dulwich.patch.gen_diff_header
    - tofile.decode
    - <builtin>.isinstance
    - dulwich.patch.patch_filename
    - line.startswith
    - <builtin>.bytes
    - dulwich.patch._format_range_unified
    - rich.console.Console.print
    - dulwich.patch.write_blob_diff.lines
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - fromfile.decode
    - dulwich.diff.ColorizedDiffStream.writelines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - blob
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 531
    functionName: dulwich.patch.write_blob_diff.lines
    functionSourceFile: dulwich.patch
    functionUses: 5
    functionsReached:
    - blob.splitlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blob.splitlines
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    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 0x7febaf80b6a0>
    - <ast.Constant object at 0x7febaf80b430>
    argNames:
    - f
    - store
    - old_tree
    - new_tree
    - diff_binary
    - diff_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 565
    functionName: dulwich.patch.write_tree_diff
    functionSourceFile: dulwich.patch
    functionUses: 8
    functionsReached:
    - dulwich.patch.is_binary
    - line_bytes.decode
    - dulwich.patch.write_object_diff.lines
    - obj.set_raw_string
    - difflib.SequenceMatcher
    - dulwich.patch.unified_diff_with_algorithm
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - content.splitlines
    - patiencediff.PatienceSequenceMatcher
    - dulwich.patch.shortid
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch._get_sequence_matcher
    - store.tree_changes
    - dulwich.diff.ColorizedDiffStream.write
    - io.BytesIO.writelines
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.gen_diff_header
    - dulwich.patch.write_object_diff
    - tofile.decode
    - <builtin>.isinstance
    - dulwich.patch.patch_filename
    - line.startswith
    - <builtin>.bytes
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - rich.console.Console.print
    - obj.as_raw_string
    - dulwich.objects.S_ISGITLINK
    - fromfile.decode
    - dulwich.diff.ColorizedDiffStream.writelines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: store.tree_changes
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaefed400>
    argNames:
    - f
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 596
    functionName: dulwich.patch.git_am_patch_split
    functionSourceFile: dulwich.patch
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - <builtin>.next
    - <builtin>.getattr
    - email.parser.BytesParser
    - msg.get_payload
    - uparser.parsestr
    - <builtin>.len
    - <builtin>.super
    - dulwich.objects.Commit.__init__
    - body.splitlines
    - dulwich.patch.parse_patch_message
    - email.parser.Parser
    - f.read
    - <builtin>.isinstance
    - line.startswith
    - body.encode
    - <builtin>.str
    - bparser.parsebytes
    - subject.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.parser.BytesParser
    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: bparser.parsebytes
    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: email.parser.Parser
    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: uparser.parsestr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf54bdc0>
    argNames:
    - msg
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 618
    functionName: dulwich.patch.parse_patch_message
    functionSourceFile: dulwich.patch
    functionUses: 1
    functionsReached:
    - line.startswith
    - <builtin>.iter
    - <builtin>.next
    - <builtin>.len
    - body.encode
    - <builtin>.super
    - <builtin>.str
    - <builtin>.isinstance
    - dulwich.objects.Commit.__init__
    - body.splitlines
    - subject.replace
    - msg.get_payload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subject.replace
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.get_payload
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: body.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: body.splitlines
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - diff_data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 676
    functionName: dulwich.patch.patch_id
    functionSourceFile: dulwich.patch
    functionUses: 3
    functionsReached:
    - line.startswith
    - re.match
    - hashlib.sha1
    - <builtin>.len
    - normalized_lines.append
    - diff_data.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: diff_data.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalized_lines.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - store
    - commit_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 757
    functionName: dulwich.patch.commit_patch_id
    functionSourceFile: dulwich.patch
    functionUses: 2
    functionsReached:
    - dulwich.patch.is_binary
    - hashlib.sha1
    - line_bytes.decode
    - dulwich.patch.write_object_diff.lines
    - obj.set_raw_string
    - diff_data.split
    - difflib.SequenceMatcher
    - dulwich.patch.unified_diff_with_algorithm
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - re.match
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - content.splitlines
    - patiencediff.PatienceSequenceMatcher
    - dulwich.patch.shortid
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch.write_tree_diff
    - io.BytesIO
    - dulwich.patch._get_sequence_matcher
    - store.tree_changes
    - dulwich.diff.ColorizedDiffStream.write
    - io.BytesIO.writelines
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.gen_diff_header
    - dulwich.patch.write_object_diff
    - tofile.decode
    - <builtin>.isinstance
    - dulwich.patch.patch_filename
    - line.startswith
    - <builtin>.bytes
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - dulwich.patch.patch_id
    - io.BytesIO.getvalue
    - normalized_lines.append
    - rich.console.Console.print
    - obj.as_raw_string
    - dulwich.objects.S_ISGITLINK
    - fromfile.decode
    - dulwich.diff.ColorizedDiffStream.writelines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - subject
    - keep_subject
    - keep_non_patch
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 813
    functionName: dulwich.patch._munge_subject
    functionSourceFile: dulwich.patch
    functionUses: 4
    functionsReached:
    - result.strip
    - re.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.sub
    functionSourceFile: re
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.strip
    functionSourceFile: <builtin>
    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:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 865
    functionName: dulwich.patch._find_scissors_line
    functionSourceFile: dulwich.patch
    functionUses: 4
    functionsReached:
    - scissors_pattern.match
    - re.compile
    - line.strip
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scissors_pattern.match
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 26
    ICount: 4
    IfCount: 18
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5fe5b0>
    - <ast.Constant object at 0x7febaf5fea60>
    - <ast.Constant object at 0x7febaf5fe100>
    - <ast.Constant object at 0x7febaf5fef70>
    - <ast.Constant object at 0x7febaf5fe3a0>
    argNames:
    - msg
    - keep_subject
    - keep_non_patch
    - encoding
    - scissors
    - message_id
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 886
    functionName: dulwich.patch.mailinfo
    functionSourceFile: dulwich.patch
    functionUses: 3
    functionsReached:
    - email.utils.parseaddr
    - line.strip
    - typing.cast.get
    - email.parser.BytesParser
    - <builtin>.enumerate
    - typing.cast.get_payload
    - typing.cast.get_content_charset
    - body.splitlines
    - dulwich.patch._find_scissors_line
    - scissors_pattern.match
    - typing.cast.read
    - re.compile
    - <builtin>.hasattr
    - email.parser.Parser
    - result.strip
    - commit_message.strip
    - <builtin>.isinstance
    - message_lines.append
    - sparser.parsestr
    - patch_lines.append
    - dulwich.patch._munge_subject
    - body.encode
    - <builtin>.str
    - re.sub
    - bparser.parsebytes
    - subject.replace
    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: sparser.parsestr
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.get_content_charset
    functionSourceFile: typing
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.get
    functionSourceFile: typing
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.utils.parseaddr
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.get_payload
    functionSourceFile: typing
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: patch_lines.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message_lines.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_message.strip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.server
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - os.environ.get
    - dulwich.log_utils.remove_null_handler
    - os.path.isdir
    - os.getpid
    - <builtin>.dict
    - parser.parse_args
    - os.fdopen
    - dulwich.server.TCPGitServer.__init__
    - os.path.isabs
    - <builtin>.len
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - <builtin>.super
    - dulwich.server.FileSystemBackend.__init__
    - sys.stderr.write
    - dulwich.server.main
    - _DULWICH_LOGGER.removeHandler
    - parser.add_option
    - logging.basicConfig
    - optparse.OptionParser
    - os.path.abspath
    - <builtin>.isinstance
    - logger.info
    - <builtin>.int
    - dulwich.log_utils._configure_logging_from_trace
    - socketserver.TCPServer.serve_forever
    - socketserver.TCPServer.__init__
    - trace_value.lower
    - dulwich.log_utils.default_logging_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: dulwich.server.Backend.open_repository
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 178
    functionName: dulwich.server.BackendRepo.get_refs
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: dulwich.server.BackendRepo.get_peeled
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - determine_wants
    - graph_walker
    - progress
    - get_tagged
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 197
    functionName: dulwich.server.BackendRepo.find_missing_objects
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - repos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 222
    functionName: dulwich.server.DictBackend.__init__
    functionSourceFile: dulwich.server
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 232
    functionName: dulwich.server.DictBackend.open_repository
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - path.decode
    - path.encode
    - logger.debug
    linkageType: pythonLinkage
    raised:
    - NotGitRepository
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7febaf88c790>
    argNames:
    - self
    - root
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 270
    functionName: dulwich.server.FileSystemBackend.__init__
    functionSourceFile: dulwich.server
    functionUses: 11
    functionsReached:
    - <builtin>.super
    - os.path.abspath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 279
    functionName: dulwich.server.FileSystemBackend.open_repository
    functionSourceFile: dulwich.server
    functionUses: 6
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - normcase_abspath.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - os.path.normcase
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - NotGitRepository
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.normcase
    functionSourceFile: os
    functionUses: 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: normcase_abspath.startswith
    functionSourceFile: <builtin>
    functionUses: 7
    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 0x7febadf50c10>
    argNames:
    - self
    - backend
    - proto
    - stateless_rpc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 304
    functionName: dulwich.server.Handler.__init__
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 318
    functionName: dulwich.server.Handler.handle
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadf508b0>
    argNames:
    - self
    - backend
    - proto
    - stateless_rpc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 326
    functionName: dulwich.server.PackHandler.__init__
    functionSourceFile: dulwich.server
    functionUses: 0
    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:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 343
    functionName: dulwich.server.PackHandler.capabilities
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 348
    functionName: dulwich.server.PackHandler.innocuous_capabilities
    functionSourceFile: dulwich.server
    functionUses: 13
    functionsReached:
    - dulwich.protocol.capability_agent
    - dulwich.protocol.agent_string
    - <builtin>.map
    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: 363
    functionName: dulwich.server.PackHandler.required_capabilities
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - caps
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 367
    functionName: dulwich.server.PackHandler.set_client_capabilities
    functionSourceFile: dulwich.server
    functionUses: 12
    functionsReached:
    - dulwich.protocol.capability_agent
    - dulwich.protocol.agent_string
    - dulwich.server.ReceivePackHandler.capabilities
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.server.PackHandler.innocuous_capabilities
    - cap.startswith
    - allowable_caps.update
    - <builtin>.map
    - dulwich.server.UploadPackHandler.capabilities
    - <builtin>.set
    - logger.info
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    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: 1298
    functionName: dulwich.server.ReceivePackHandler.capabilities
    functionSourceFile: ''
    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:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 442
    functionName: dulwich.server.UploadPackHandler.capabilities
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: allowable_caps.update
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 457
    functionName: dulwich.server.UploadPackHandler.required_capabilities
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger.info
    functionSourceFile: <builtin>
    functionUses: 90
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cap
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 392
    functionName: dulwich.server.PackHandler.has_capability
    functionSourceFile: dulwich.server
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: 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: 407
    functionName: dulwich.server.PackHandler.notify_done
    functionSourceFile: dulwich.server
    functionUses: 1
    functionsReached: []
    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 0x7febad9235b0>
    - <ast.Constant object at 0x7febad9230a0>
    argNames:
    - self
    - backend
    - args
    - proto
    - stateless_rpc
    - advertise_refs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 415
    functionName: dulwich.server.UploadPackHandler.__init__
    functionSourceFile: dulwich.server
    functionUses: 2
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - normcase_abspath.startswith
    - dulwich.server.FileSystemBackend.open_repository
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - os.path.normcase
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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: 0
    functionLinenumber: 465
    functionName: dulwich.server.UploadPackHandler.progress
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 472
    functionName: dulwich.server.UploadPackHandler._start_pack_send_phase
    functionSourceFile: dulwich.server
    functionUses: 3
    functionsReached:
    - functools.partial
    - dulwich.server.PackHandler.has_capability
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.get_peeled
    functionSourceFile: <builtin>
    functionUses: 12
    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: 13
    functionLinenumber: 529
    functionName: dulwich.server.UploadPackHandler.handle
    functionSourceFile: dulwich.server
    functionUses: 2
    functionsReached:
    - typing.Protocol.as_dict
    - queue.pop
    - dulwich.protocol.symref_capabilities
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - difflib.SequenceMatcher
    - data.find
    - symrefs.items
    - dulwich.refs.RefsContainer.keys
    - parents.get
    - pack_bitmap.has_commit
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - dulwich.pack.generate_unpacked_objects
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - <builtin>.setattr
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.subkeys
    - possible_bases.pop
    - binascii.crc32
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.repo.BaseRepo.get_refs
    - todo.extend
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - queue.extend
    - refs.keys
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - unpacked.sha
    - dulwich.server.PackHandler.innocuous_capabilities
    - shallow.add
    - dulwich.server._ProtocolGraphWalker.handle_done
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - <builtin>.open
    - dulwich.objects.Tree.from_path
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.frozenset
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - <builtin>.memoryview
    - typing.Protocol.get_peeled
    - dulwich.repo.BaseRepo.find_missing_objects
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - <builtin>.iter
    - pack_index.iterentries
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - todo.append
    - text.rstrip
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - not_shallow.add
    - dulwich.file._GitFile.seek
    - ret.append
    - cdifflib.CSequenceMatcher
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.object_store.peel_sha
    - binascii.unhexlify
    - key.startswith
    - dulwich.server._ProtocolGraphWalker.__init__
    - io.BytesIO.seek
    - struct.unpack
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.server.PackHandler.has_capability
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - graph_walker.shallow.update
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - new_packs.append
    - dulwich.reftable.ReftableReader.all_refs
    - object.as_raw_chunks
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.parse_symref_value
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs._split_ref_line
    - dulwich.objects.hex_to_sha
    - directory.replace
    - dulwich.protocol.agent_string
    - want_others.difference
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.pack._encode_copy_operation
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.protocol.ack_type
    - name.endswith
    - functools.partial
    - todo.keys
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - graph._read_from_file
    - logging.warning
    - stat.S_IFMT
    - _TYPE_MAP.get
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.sum
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - <builtin>.str
    - os.fsencode
    - collections.deque
    - ref.decode
    - dulwich.pack.find_reusable_deltas
    - os.fdopen
    - table_data.append
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - want_tags.difference
    - dulwich.objects.hex_to_filename
    - dulwich.pack.write_pack_data
    - bases.add
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - dulwich.repo.BaseRepo.get_peeled
    - <builtin>.isinstance
    - ret.read
    - magic.sort
    - others.add
    - typing.cast
    - typing.NewType
    - allowable_caps.update
    - dulwich.server.UploadPackHandler._start_pack_send_phase
    - dulwich.refs.RefsContainer.get_symrefs
    - <builtin>.getattr
    - <builtin>.min
    - compressor.compress
    - refs.get
    - scratch.append
    - heads.items
    - e.decode
    - dulwich.protocol.format_ref_line
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.object_store._collect_filetree_revs
    - <builtin>.bytes
    - possible_bases.appendleft
    - typing.cast.write
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.objects.S_ISGITLINK
    - remaining.remove
    - dulwich.pack.PackChunkGenerator.__init__
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.commit_graph.read_commit_graph
    - wants.extend
    - dulwich.object_store.<lambda2>
    - int.from_bytes
    - pack_bitmap.get_bitmap
    - dulwich.refs.is_per_worktree_ref
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - magic.append
    - contents.startswith
    - dulwich.objects.Blob.from_path
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.server.PackHandler.set_client_capabilities
    - o.as_raw_chunks
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - logger.info
    - hashlib.sha1
    - dulwich.object_store.MissingObjectFinder.__init__
    - <builtin>.callable
    - all_refs.pop
    - dulwich.pack.pack_object_header
    - store.get_commit_graph
    - dulwich.server._split_proto_line
    - refs.items
    - os.walk
    - line.startswith
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - dulwich.protocol.format_capability_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.objects.Tag.from_path
    - dulwich.protocol.format_unshallow_line
    - io.BytesIO
    - refname.endswith
    - result.add
    - files.append
    - f.read
    - ret.insert
    - want_revs.append
    - pack.index.iterentries
    - dulwich.object_store._split_commits_and_tags
    - dulwich.refs.read_packed_refs
    - dulwich.pack.pack_object_chunks
    - dulwich.server.UploadPackHandler.handle.wants_wrapper
    - first_line.startswith
    - typing.cast.encode
    - todo.pop
    - <builtin>.dict
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.protocol.capability_agent
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.bitmap.find_commit_bitmaps
    - repo.get_peeled
    - dulwich.object_store.BitmapReachability.__init__
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - delta.append
    - cap.startswith
    - commits.add
    - dulwich.repo.ParentsProvider.get_parents
    - json.loads
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.object_store.find_shallow.get_parents
    - kset.add
    - path.encode
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - <builtin>.enumerate
    - table_data.sort
    - name.startswith
    - dulwich.commit_graph.CommitGraph.__init__
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - <builtin>.list
    - heads.values
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - compressor.flush
    - header.append
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.refs.DiskRefsContainer.get_peeled
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - io.BytesIO.tell
    - filetree.iteritems
    - container.iter_unpacked_subset
    - <builtin>.next
    - dulwich.pack.write_pack_from_container
    - search_paths.append
    - dulwich.protocol.extract_want_line_capabilities
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.refs.DiskRefsContainer._iter_dir
    - commit_graph.get_parents
    - <builtin>.super
    - <builtin>.max
    - obj.raw_length
    - <builtin>.set
    - todo.remove
    - dulwich.objects.object_class
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - header.extend
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - all_refs.items
    - dulwich.pack._create_delta_py
    - dulwich.refs.check_ref_format
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.server.ReceivePackHandler.capabilities
    - dulwich.reftable.RefRecord.decode
    - dulwich.object_store.DiskObjectStore.close
    - sha.decode
    - os.open
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.object_store.GraphTraversalReachability.__init__
    - <builtin>.bytearray
    - zlib.compressobj
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - dulwich.reftable.ReftableReader.__init__
    - p.iterobjects_subset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - handler
    - object_store
    - get_peeled
    - get_symrefs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 737
    functionName: dulwich.server._ProtocolGraphWalker.__init__
    functionSourceFile: dulwich.server
    functionUses: 3
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 11
    IfCount: 8
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf501490>
    argNames:
    - self
    - heads
    - depth
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 768
    functionName: dulwich.server._ProtocolGraphWalker.determine_wants
    functionSourceFile: dulwich.server
    functionUses: 8
    functionsReached:
    - dulwich.protocol.symref_capabilities
    - dulwich.reftable.ReftableReader.all_refs
    - data.find
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.protocol.capability_symref
    - symrefs.items
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - cap.startswith
    - dulwich.refs._split_ref_line
    - parents.get
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - contents.startswith
    - directory.replace
    - dulwich.protocol.agent_string
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - dulwich.server.PackHandler.set_client_capabilities
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - <builtin>.sorted
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.object_store.find_shallow.get_parents
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - base.rstrip
    - <builtin>.map
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - logger.info
    - dulwich.protocol.ack_type
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - todo.extend
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - refs.keys
    - table_data.sort
    - <builtin>.len
    - all_refs.pop
    - dulwich.server.PackHandler.innocuous_capabilities
    - _TYPE_MAP.get
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - shallow.add
    - <builtin>.list
    - dulwich.protocol.format_shallow_line
    - heads.values
    - <builtin>.open
    - dulwich.object_store.find_shallow
    - dulwich.server._split_proto_line
    - dulwich.refs.RefsContainer.allkeys
    - store.get_commit_graph
    - refname.startswith
    - <builtin>.ord
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - refs.items
    - typing.Protocol.get_peeled
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - line.startswith
    - <builtin>.int
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.protocol.format_capability_line
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.protocol.extract_want_line_capabilities
    - block.refs.append
    - os.fdopen
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - todo.append
    - commit_graph.get_parents
    - dulwich.reftable._decode_reftable_suffix_and_type
    - text.rstrip
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.protocol.format_unshallow_line
    - not_shallow.add
    - io.BytesIO
    - <builtin>.set
    - refname.endswith
    - result.add
    - files.append
    - dulwich.objects.object_class
    - dulwich.repo.BaseRepo.get_peeled
    - f.read
    - want_revs.append
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - typing.NewType
    - dulwich.object_store.peel_sha
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.refs.RefsContainer.get_symrefs
    - todo.pop
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - heads.items
    - io.BytesIO.seek
    - os.open
    - struct.unpack
    - line.decode
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.enumerate
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wants.extend
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - done_required
    - done_received
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 980
    functionName: dulwich.server._ProtocolGraphWalker.handle_done
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - line
    - allowed
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 593
    functionName: dulwich.server._split_proto_line
    functionSourceFile: dulwich.server
    functionUses: 11
    functionsReached:
    - <builtin>.int
    - <builtin>.len
    - line.rstrip
    - <builtin>.list
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised:
    - UnexpectedCommandError
    - GitProtocolError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - store
    - haves
    - want
    - earliest
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 640
    functionName: dulwich.server._want_satisfied
    functionSourceFile: dulwich.server
    functionUses: 2
    functionsReached:
    - collections.deque
    - collections.deque.popleft
    - collections.deque.append
    - known.add
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: known.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - store
    - haves
    - wants
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 674
    functionName: dulwich.server._all_wants_satisfied
    functionSourceFile: dulwich.server
    functionUses: 1
    functionsReached:
    - collections.deque
    - collections.deque.popleft
    - collections.deque.append
    - <builtin>.min
    - known.add
    - dulwich.server._want_satisfied
    - <builtin>.isinstance
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - graph_walker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 702
    functionName: dulwich.server.AckGraphWalkerImpl.__init__
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - have_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 710
    functionName: dulwich.server.AckGraphWalkerImpl.ack
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - done_required
    - done_received
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 718
    functionName: dulwich.server.AckGraphWalkerImpl.handle_done
    functionSourceFile: dulwich.server
    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: heads.values
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: heads.items
    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: symrefs.items
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ack_type
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1010
    functionName: dulwich.server._ProtocolGraphWalker.set_ack_type
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: want_revs.append
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - allowed
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 906
    functionName: dulwich.server._ProtocolGraphWalker.read_proto_line
    functionSourceFile: dulwich.server
    functionUses: 10
    functionsReached:
    - dulwich.server._split_proto_line
    - <builtin>.int
    - <builtin>.len
    - line.rstrip
    - <builtin>.list
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - wants
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 992
    functionName: dulwich.server._ProtocolGraphWalker.set_wants
    functionSourceFile: ''
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - command
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 856
    functionName: dulwich.server._ProtocolGraphWalker.unread_proto_line
    functionSourceFile: dulwich.server
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - wants
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 920
    functionName: dulwich.server._ProtocolGraphWalker._handle_shallow_request
    functionSourceFile: dulwich.server
    functionUses: 9
    functionsReached:
    - todo.pop
    - todo.extend
    - <builtin>.len
    - todo.append
    - commit_graph.get_parents
    - line.rstrip
    - dulwich.protocol.format_unshallow_line
    - not_shallow.add
    - shallow.add
    - <builtin>.list
    - parents.get
    - <builtin>.set
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - store.get_commit_graph
    - dulwich.server._split_proto_line
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - <builtin>.sorted
    - <builtin>.isinstance
    - <builtin>.int
    - dulwich.object_store.find_shallow.get_parents
    - typing.NewType
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 867
    functionName: dulwich.server._ProtocolGraphWalker.nak
    functionSourceFile: dulwich.server
    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
    - have_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 870
    functionName: dulwich.server._ProtocolGraphWalker.ack
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 884
    functionName: dulwich.server._ProtocolGraphWalker.reset
    functionSourceFile: dulwich.server
    functionUses: 0
    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: 889
    functionName: dulwich.server._ProtocolGraphWalker.next
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.server._ProtocolGraphWalker.next
    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: 962
    functionName: dulwich.server._ProtocolGraphWalker.notify_done
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - dulwich.server.PackHandler.notify_done
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8d0610>
    argNames:
    - self
    - sha
    - ack_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 967
    functionName: dulwich.server._ProtocolGraphWalker.send_ack
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - dulwich.protocol.format_ack_line
    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: 976
    functionName: dulwich.server._ProtocolGraphWalker.send_nak
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - haves
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1000
    functionName: dulwich.server._ProtocolGraphWalker.all_wants_satisfied
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - dulwich.server._all_wants_satisfied
    - collections.deque
    - collections.deque.popleft
    - collections.deque.append
    - <builtin>.min
    - known.add
    - dulwich.server._want_satisfied
    - <builtin>.isinstance
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - walker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1030
    functionName: dulwich.server.SingleAckGraphWalkerImpl.__init__
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - have_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1039
    functionName: dulwich.server.SingleAckGraphWalkerImpl.ack
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1049
    functionName: dulwich.server.SingleAckGraphWalkerImpl.next
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - done_required
    - done_received
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1067
    functionName: dulwich.server.SingleAckGraphWalkerImpl.handle_done
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - walker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1100
    functionName: dulwich.server.MultiAckGraphWalkerImpl.__init__
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - have_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1110
    functionName: dulwich.server.MultiAckGraphWalkerImpl.ack
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1123
    functionName: dulwich.server.MultiAckGraphWalkerImpl.next
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - done_required
    - done_received
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1149
    functionName: dulwich.server.MultiAckGraphWalkerImpl.handle_done
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - walker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1185
    functionName: dulwich.server.MultiAckDetailedGraphWalkerImpl.__init__
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - have_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1194
    functionName: dulwich.server.MultiAckDetailedGraphWalkerImpl.ack
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1204
    functionName: dulwich.server.MultiAckDetailedGraphWalkerImpl.next
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.NewType
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - done_required
    - done_received
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1240
    functionName: dulwich.server.MultiAckDetailedGraphWalkerImpl.handle_done
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    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 0x7febafd43d90>
    - <ast.Constant object at 0x7febafd43df0>
    argNames:
    - self
    - backend
    - args
    - proto
    - stateless_rpc
    - advertise_refs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1276
    functionName: dulwich.server.ReceivePackHandler.__init__
    functionSourceFile: dulwich.server
    functionUses: 2
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - normcase_abspath.startswith
    - dulwich.server.FileSystemBackend.open_repository
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - os.path.normcase
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1313
    functionName: dulwich.server.ReceivePackHandler._apply_pack
    functionSourceFile: dulwich.server
    functionUses: 3
    functionsReached:
    - ref.encode
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - time.time
    - data.find
    - packed_refs.get
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - os.fsync
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - dulwich.reftable.ReftableRefsContainer.remove_if_equals
    - dulwich.refs._split_ref_line
    - os.close
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - os.makedirs
    - <builtin>.range
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - io.BytesIO.write
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - name.endswith
    - dulwich.file._GitFile.write
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - os.replace
    - value.hex
    - dulwich.reftable.ReftableWriter.__init__
    - os.remove
    - dulwich.refs.write_packed_refs
    - <builtin>.enumerate
    - ref_files.sort
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - dulwich.file._GitFile.close
    - table_data.sort
    - name.startswith
    - ref_offsets.append
    - <builtin>.len
    - all_refs.pop
    - os.rmdir
    - dulwich.reftable.ReftableWriter.delete_ref
    - <builtin>.open
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - refs.items
    - contextlib.suppress
    - line.startswith
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - io.BytesIO.tell
    - refnames.append
    - <builtin>.str
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - block.refs.append
    - dulwich.file._GitFile.abort
    - os.path.lexists
    - f.abort
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._remove_packed_ref
    - ref_files.append
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - table_data.append
    - packed_refs.keys
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - os.rename
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - files.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - random.randint
    - io.BytesIO.getvalue
    - dulwich.file._fancy_rename
    - f.write
    - typing.NewType
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - dulwich.objects.git_line
    - struct.unpack
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - parent.rsplit
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - dulwich.refs.DiskRefsContainer.remove_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - status
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1377
    functionName: dulwich.server.ReceivePackHandler._report_status
    functionSourceFile: dulwich.server
    functionUses: 3
    functionsReached:
    - io.BytesIO.write
    - dulwich.server.ReceivePackHandler._report_status.flush
    - dulwich.protocol.BufferedPktLineWriter.flush
    - io.BytesIO
    - <builtin>.len
    - io.BytesIO.getvalue
    - dulwich.protocol.pkt_line
    - dulwich.protocol.BufferedPktLineWriter.__init__
    - dulwich.protocol.BufferedPktLineWriter.write
    - dulwich.server.PackHandler.has_capability
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.server.ReceivePackHandler._report_status.<lambda1>
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1396
    functionName: dulwich.server.ReceivePackHandler._report_status.flush
    functionSourceFile: dulwich.server
    functionUses: 4
    functionsReached:
    - io.BytesIO
    - io.BytesIO.getvalue
    - dulwich.protocol.BufferedPktLineWriter.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - client_refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1409
    functionName: dulwich.server.ReceivePackHandler._on_post_receive
    functionSourceFile: dulwich.server
    functionUses: 3
    functionsReached:
    - <builtin>.str
    - hook.execute
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hook.execute
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 9
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 1425
    functionName: dulwich.server.ReceivePackHandler.handle
    functionSourceFile: dulwich.server
    functionUses: 2
    functionsReached:
    - typing.Protocol.as_dict
    - ref.encode
    - dulwich.protocol.symref_capabilities
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - time.time
    - data.find
    - packed_refs.get
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - os.fsync
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - dulwich.refs.RefsContainer.keys
    - dulwich.reftable.ReftableRefsContainer.remove_if_equals
    - cap.startswith
    - dulwich.refs._split_ref_line
    - os.close
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - directory.replace
    - dulwich.protocol.agent_string
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server.PackHandler.set_client_capabilities
    - os.makedirs
    - <builtin>.range
    - dulwich.server.ReceivePackHandler._report_status
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.protocol.BufferedPktLineWriter.__init__
    - dulwich.protocol.BufferedPktLineWriter.write
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - io.BytesIO.write
    - dulwich.reftable.RefBlock.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - base.rstrip
    - <builtin>.map
    - dulwich.protocol.extract_capabilities
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - logger.info
    - name.endswith
    - dulwich.file._GitFile.write
    - dulwich.server.ReceivePackHandler._apply_pack
    - dulwich.reftable.RefBlock.decode
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - os.replace
    - dulwich.reftable.ReftableWriter.__init__
    - value.hex
    - os.remove
    - dulwich.refs.write_packed_refs
    - capabilities.strip
    - <builtin>.enumerate
    - ref_files.sort
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - os.fspath
    - refs.keys
    - table_data.sort
    - dulwich.file._GitFile.close
    - name.startswith
    - ref_offsets.append
    - dulwich.protocol.BufferedPktLineWriter.flush
    - <builtin>.len
    - all_refs.pop
    - dulwich.server.PackHandler.innocuous_capabilities
    - os.rmdir
    - dulwich.reftable.ReftableWriter.delete_ref
    - <builtin>.list
    - <builtin>.open
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - client_refs.append
    - refs.items
    - contextlib.suppress
    - os.walk
    - line.startswith
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - refnames.append
    - <builtin>.str
    - dulwich.protocol.format_capability_line
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - os.fsencode
    - <builtin>.next
    - search_paths.append
    - block.refs.append
    - f.abort
    - dulwich.file._GitFile.abort
    - os.path.lexists
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._remove_packed_ref
    - ref_files.append
    - dulwich.server.ReceivePackHandler._report_status.flush
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - packed_refs.keys
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - dulwich.protocol.pkt_line
    - text.rstrip
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - os.rename
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - result.add
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - files.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - dulwich.server.ReceivePackHandler._on_post_receive
    - ref_line.split
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - random.randint
    - io.BytesIO.getvalue
    - dulwich.file._fancy_rename
    - f.write
    - typing.NewType
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.refs.RefsContainer.get_symrefs
    - key.startswith
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - refs.get
    - io.BytesIO.seek
    - os.open
    - hook.execute
    - dulwich.objects.git_line
    - struct.unpack
    - line.decode
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - parent.rsplit
    - dulwich.server.PackHandler.has_capability
    - dulwich.reftable.ReftableWriter.add_ref
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - zlib.crc32
    - dulwich.refs.DiskRefsContainer.remove_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - dulwich.reftable.RefBlock.encode
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_line.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client_refs.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaef5e280>
    argNames:
    - self
    - backend
    - args
    - proto
    - stateless_rpc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1479
    functionName: dulwich.server.UploadArchiveHandler.__init__
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - backend.open_repository
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: backend.open_repository
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1497
    functionName: dulwich.server.UploadArchiveHandler.handle
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - blob.as_raw_string
    - dulwich.server.UploadArchiveHandler.handle.write
    - time.time
    - stat.S_ISDIR
    - entry_abspath.decode
    - dulwich.archive.tar_stream
    - tree.iteritems
    - io.BytesIO.read
    - io.BytesIO.seek
    - posixpath.join
    - pkt.split
    - <builtin>.len
    - dulwich.archive._walk_tree
    - io.BytesIO
    - tar.addfile
    - <builtin>.hasattr
    - tarfile.TarInfo
    - struct.pack
    - io.BytesIO.truncate
    - <builtin>.isinstance
    - dulwich.archive.ChunkedBytesIO.__init__
    - arguments.append
    - value.rstrip
    - <builtin>.int
    - contextlib.closing
    - io.BytesIO.write
    - io.BytesIO.getvalue
    - typing.cast
    - typing.NewType
    - blob.raw_length
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1500
    functionName: dulwich.server.UploadArchiveHandler.handle.write
    functionSourceFile: dulwich.server
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: arguments.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febae4ac040>
    - <ast.Constant object at 0x7febae4ac790>
    argNames:
    - store
    - tree
    - mtime
    - prefix
    - format
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 98
    functionName: dulwich.archive.tar_stream
    functionSourceFile: dulwich.archive
    functionUses: 3
    functionsReached:
    - blob.as_raw_string
    - stat.S_ISDIR
    - entry_abspath.decode
    - tree.iteritems
    - io.BytesIO.read
    - posixpath.join
    - io.BytesIO.seek
    - dulwich.archive._walk_tree
    - io.BytesIO
    - tar.addfile
    - <builtin>.hasattr
    - tarfile.TarInfo
    - struct.pack
    - io.BytesIO.truncate
    - <builtin>.isinstance
    - dulwich.archive.ChunkedBytesIO.__init__
    - io.BytesIO.write
    - contextlib.closing
    - io.BytesIO.getvalue
    - typing.cast
    - blob.raw_length
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - handlers
    - request
    - client_address
    - server
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1553
    functionName: dulwich.server.TCPGitRequestHandler.__init__
    functionSourceFile: dulwich.server
    functionUses: 1
    functionsReached:
    - socketserver.StreamRequestHandler.__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: socketserver.StreamRequestHandler.__init__
    functionSourceFile: socketserver
    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: 5
    functionLinenumber: 1573
    functionName: dulwich.server.TCPGitRequestHandler.handle
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - h.handle
    - sys.stdin.buffer.read
    - <builtin>.next
    - socketserver.TCPServer.handlers.get
    - dulwich.protocol.ReceivableProtocol.read
    - io.BytesIO.read
    - io.BytesIO.seek
    - <builtin>.callable
    - dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func
    - io.BufferedReader.read
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO
    - <builtin>.sum
    - dulwich.protocol.ReceivableProtocol.__init__
    - socketserver.StreamRequestHandler.connection.recv
    - dulwich.web.ChunkReader.read
    - dulwich.protocol.Protocol.read_pkt_line
    - dulwich.protocol.parse_cmd_pkt
    - dulwich.protocol.Protocol.read_cmd
    - <builtin>.int
    - io.BytesIO.write
    - io.BytesIO.tell
    - <builtin>.map
    - line.find
    - logger.info
    linkageType: pythonLinkage
    raised:
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socketserver.TCPServer.handlers.get
    functionSourceFile: socketserver
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h.handle
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - client_address
    - server
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1592
    functionName: dulwich.server.TCPGitServer._make_handler
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - dulwich.server.TCPGitRequestHandler.__init__
    - socketserver.StreamRequestHandler.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Name object at 0x7febaefb38e0>
    - <ast.Constant object at 0x7febaefb3430>
    argNames:
    - self
    - backend
    - listen_addr
    - port
    - handlers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1610
    functionName: dulwich.server.TCPGitServer.__init__
    functionSourceFile: dulwich.server
    functionUses: 5
    functionsReached:
    - <builtin>.dict
    - logger.info
    - socketserver.TCPServer.__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: socketserver.TCPServer.__init__
    functionSourceFile: socketserver
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - client_address
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1632
    functionName: dulwich.server.TCPGitServer.verify_request
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - client_address
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1649
    functionName: dulwich.server.TCPGitServer.handle_error
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - logger.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger.exception
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Attribute object at 0x7febaebf84c0>
    argNames:
    - argv
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1666
    functionName: dulwich.server.main
    functionSourceFile: dulwich.server
    functionUses: 1
    functionsReached:
    - os.environ.get
    - dulwich.log_utils.remove_null_handler
    - os.path.isdir
    - os.getpid
    - <builtin>.dict
    - parser.parse_args
    - os.fdopen
    - dulwich.server.TCPGitServer.__init__
    - os.path.isabs
    - <builtin>.len
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - <builtin>.super
    - dulwich.server.FileSystemBackend.__init__
    - sys.stderr.write
    - _DULWICH_LOGGER.removeHandler
    - parser.add_option
    - logging.basicConfig
    - optparse.OptionParser
    - os.path.abspath
    - <builtin>.isinstance
    - logger.info
    - <builtin>.int
    - dulwich.log_utils._configure_logging_from_trace
    - socketserver.TCPServer.serve_forever
    - socketserver.TCPServer.__init__
    - trace_value.lower
    - dulwich.log_utils.default_logging_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: optparse.OptionParser
    functionSourceFile: optparse
    functionUses: 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: parser.add_option
    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: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 112
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 155
    functionName: dulwich.log_utils.default_logging_config
    functionSourceFile: dulwich.log_utils
    functionUses: 7
    functionsReached:
    - <builtin>.int
    - logging.basicConfig
    - os.path.isabs
    - dulwich.log_utils._configure_logging_from_trace
    - os.path.join
    - os.environ.get
    - os.path.isdir
    - dulwich.log_utils.remove_null_handler
    - os.getpid
    - dulwich.log_utils._get_trace_target
    - sys.stderr.write
    - trace_value.lower
    - <builtin>.isinstance
    - _DULWICH_LOGGER.removeHandler
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socketserver.TCPServer.serve_forever
    functionSourceFile: socketserver
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Attribute object at 0x7febadd3b460>
    - <ast.Constant object at 0x7febaf29f070>
    - <ast.Constant object at 0x7febaf29f130>
    - <ast.Constant object at 0x7febaf29fe50>
    argNames:
    - handler_cls
    - argv
    - backend
    - inf
    - outf
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1699
    functionName: dulwich.server.serve_command
    functionSourceFile: dulwich.server
    functionUses: 0
    functionsReached:
    - dulwich.protocol.Protocol.__init__
    - handler.handle
    - <builtin>.super
    - dulwich.server.FileSystemBackend.__init__
    - 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: sys.stdout.buffer.flush
    functionSourceFile: sys
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler.handle
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1738
    functionName: dulwich.server.generate_info_refs
    functionSourceFile: dulwich.server
    functionUses: 4
    functionsReached:
    - typing.cast.get_refs
    - dulwich.objects.object_class
    - dulwich.protocol.write_info_refs
    - refs.items
    - dulwich.object_store.peel_sha
    - _TYPE_MAP.get
    - <builtin>.sorted
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.get_refs
    functionSourceFile: typing
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1744
    functionName: dulwich.server.generate_objects_info_packs
    functionSourceFile: dulwich.server
    functionUses: 4
    functionsReached:
    - os.fsencode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1750
    functionName: dulwich.server.update_server_info
    functionSourceFile: dulwich.server
    functionUses: 2
    functionsReached:
    - typing.cast.get_refs
    - os.fsencode
    - dulwich.server.generate_info_refs
    - <builtin>.sorted
    - dulwich.objects.object_class
    - repo._put_named_file
    - dulwich.protocol.write_info_refs
    - os.path.join
    - refs.items
    - dulwich.object_store.peel_sha
    - _TYPE_MAP.get
    - dulwich.server.generate_objects_info_packs
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo._put_named_file
    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: dulwich.archive
    functionSourceFile: dulwich.archive
    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
    - contents
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: dulwich.archive.ChunkedBytesIO.__init__
    functionSourceFile: dulwich.archive
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1b2580>
    argNames:
    - self
    - maxbytes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: dulwich.archive.ChunkedBytesIO.read
    functionSourceFile: dulwich.archive
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - buf.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: buf.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadf50250>
    argNames:
    - store
    - tree
    - root
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 168
    functionName: dulwich.archive._walk_tree
    functionSourceFile: dulwich.archive
    functionUses: 4
    functionsReached:
    - stat.S_ISDIR
    - dulwich.archive._walk_tree
    - <builtin>.isinstance
    - tree.iteritems
    - posixpath.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blob.as_raw_string
    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: tarfile.TarInfo
    functionSourceFile: tarfile
    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: entry_abspath.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blob.raw_length
    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: tar.addfile
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.log_utils
    functionSourceFile: dulwich.log_utils
    functionUses: 0
    functionsReached:
    - logging.getLogger
    - _DULWICH_LOGGER.addHandler
    - logging.Handler.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: dulwich.log_utils._NullHandler.emit
    functionSourceFile: dulwich.log_utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.Handler.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _DULWICH_LOGGER.addHandler
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: dulwich.log_utils._should_trace
    functionSourceFile: dulwich.log_utils
    functionUses: 0
    functionsReached:
    - os.environ.get
    - trace_value.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: trace_value.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: dulwich.log_utils._get_trace_target
    functionSourceFile: dulwich.log_utils
    functionUses: 13
    functionsReached:
    - <builtin>.int
    - os.path.isabs
    - os.environ.get
    - trace_value.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 108
    functionName: dulwich.log_utils._configure_logging_from_trace
    functionSourceFile: dulwich.log_utils
    functionUses: 12
    functionsReached:
    - <builtin>.int
    - logging.basicConfig
    - os.path.isabs
    - os.path.join
    - os.environ.get
    - os.path.isdir
    - dulwich.log_utils._get_trace_target
    - os.getpid
    - sys.stderr.write
    - trace_value.lower
    - <builtin>.isinstance
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.basicConfig
    functionSourceFile: logging
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.write
    functionSourceFile: sys
    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: os.getpid
    functionSourceFile: os
    functionUses: 13
    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: 176
    functionName: dulwich.log_utils.remove_null_handler
    functionSourceFile: dulwich.log_utils
    functionUses: 8
    functionsReached:
    - _DULWICH_LOGGER.removeHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _DULWICH_LOGGER.removeHandler
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.stripspace
    functionSourceFile: dulwich.stripspace
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 5
    IfCount: 10
    argCount: 4
    argDefaultValues: []
    argNames:
    - text
    - strip_comments
    - comment_char
    - comment_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 27
    functionName: dulwich.stripspace.stripspace
    functionSourceFile: dulwich.stripspace
    functionUses: 2
    functionsReached:
    - line.lstrip
    - line.endswith
    - line.strip
    - processed_lines.append
    - processed_lines.pop
    - result.endswith
    - collapsed_lines.append
    - line.rstrip
    - text.splitlines
    - dulwich.stripspace.stripspace.is_blank
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: processed_lines.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: dulwich.stripspace.stripspace.is_blank
    functionSourceFile: dulwich.stripspace
    functionUses: 3
    functionsReached:
    - line.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: processed_lines.pop
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collapsed_lines.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.endswith
    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: dulwich.whitespace
    functionSourceFile: dulwich.whitespace
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 5
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: dulwich.whitespace.parse_whitespace_config
    functionSourceFile: dulwich.whitespace
    functionUses: 0
    functionsReached:
    - enabled.discard
    - part.strip
    - <builtin>.int
    - part.startswith
    - p.strip
    - enabled.add
    - value.split
    - <builtin>.any
    - DEFAULT_WHITESPACE_ERRORS.copy
    - <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: DEFAULT_WHITESPACE_ERRORS.copy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.strip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: part.strip
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: enabled.discard
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: enabled.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae4e8130>
    argNames:
    - self
    - enabled_errors
    - tab_width
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 115
    functionName: dulwich.whitespace.WhitespaceChecker.__init__
    functionSourceFile: dulwich.whitespace
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 6
    IfCount: 13
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - line
    - line_num
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 125
    functionName: dulwich.whitespace.WhitespaceChecker.check_line
    functionSourceFile: dulwich.whitespace
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - errors.append
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: errors.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - content
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 186
    functionName: dulwich.whitespace.WhitespaceChecker.check_content
    functionSourceFile: dulwich.whitespace
    functionUses: 0
    functionsReached:
    - errors.extend
    - line.endswith
    - content.split
    - <builtin>.len
    - <builtin>.range
    - errors.append
    - <builtin>.enumerate
    - dulwich.whitespace.WhitespaceChecker.check_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: content.split
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: errors.extend
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 5
    IfCount: 9
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaefd4340>
    argNames:
    - content
    - errors
    - fix_types
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 227
    functionName: dulwich.whitespace.fix_whitespace_errors
    functionSourceFile: dulwich.whitespace
    functionUses: 0
    functionsReached:
    - line.endswith
    - content.split
    - <builtin>.len
    - has_crlf.remove
    - has_crlf.append
    - errors_by_line.items
    - <builtin>.enumerate
    - lines.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: has_crlf.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: errors_by_line.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: has_crlf.remove
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.annotate
    functionSourceFile: dulwich.annotate
    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:
    - annotated_lines
    - new_history_data
    - new_blob
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: dulwich.annotate.update_lines
    functionSourceFile: dulwich.annotate
    functionUses: 4
    functionsReached:
    - matcher.get_opcodes
    - difflib.SequenceMatcher
    - ret.extend
    - new_blob.splitlines
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_blob.splitlines
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matcher.get_opcodes
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Name object at 0x7febaf57f7c0>
    - <ast.Constant object at 0x7febaf57f790>
    - <ast.Constant object at 0x7febaf57f190>
    argNames:
    - store
    - commit_id
    - path
    - order
    - lines
    - follow
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 77
    functionName: dulwich.annotate.annotate_lines
    functionSourceFile: dulwich.annotate
    functionUses: 3
    functionsReached:
    - <builtin>.iter
    - collections.deque
    - heapq.heappush
    - dulwich.walk.<lambda1>
    - dulwich.walk._CommitTimeQueue._push
    - difflib.SequenceMatcher
    - <builtin>.reversed
    - todo.append
    - pending.pop
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.list
    - dulwich.diff_tree.RenameDetector.__init__
    - ret.extend
    - <builtin>.set
    - todo.popleft
    - dulwich.annotate.update_lines
    - dulwich.walk.Walker._reorder
    - itertools.chain
    - collections.defaultdict
    - <builtin>.isinstance
    - revs.append
    - new_blob.splitlines
    - dulwich.walk._CommitTimeQueue.__init__
    - dulwich.walk.Walker.__init__
    - matcher.get_opcodes
    - todo.appendleft
    - dulwich.walk._topo_reorder
    - dulwich.walk.Walker.__iter__
    - log_entry.changes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log_entry.changes
    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: revs.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.ignore
    functionSourceFile: dulwich.ignore
    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:
    - pattern
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: dulwich.ignore._pattern_to_str
    functionSourceFile: dulwich.ignore
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - pattern_data.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern_data.decode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - matching_patterns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 61
    functionName: dulwich.ignore._check_parent_exclusion
    functionSourceFile: dulwich.ignore
    functionUses: 3
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - path.encode
    - dulwich.ignore._pattern_to_str
    - <builtin>.next
    - pattern_str.encode
    - dulwich.ignore._handle_leading_patterns
    - path.startswith
    - dulwich.ignore.translate
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - path.rsplit
    - <builtin>.len
    - pattern_str.endswith
    - dulwich.ignore.Pattern.match
    - re.compile
    - pat.startswith
    - pattern_str.startswith
    - <builtin>.range
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.ignore._pattern_excludes_parent
    - pattern.startswith
    - final_pattern_str.startswith
    - re.escape
    - <builtin>.bool
    - dulwich.ignore.Pattern.__init__
    - path.split
    - pat.split
    - path.endswith
    - pattern_data.decode
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - pattern_str
    - path
    - final_pattern_str
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 88
    functionName: dulwich.ignore._pattern_excludes_parent
    functionSourceFile: dulwich.ignore
    functionUses: 4
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - path.encode
    - pattern_str.encode
    - dulwich.ignore._handle_leading_patterns
    - path.startswith
    - dulwich.ignore.translate
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - path.rsplit
    - <builtin>.len
    - pattern_str.endswith
    - dulwich.ignore.Pattern.match
    - re.compile
    - pat.startswith
    - pattern_str.startswith
    - <builtin>.range
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - <builtin>.any
    - pattern.startswith
    - final_pattern_str.startswith
    - re.escape
    - <builtin>.bool
    - dulwich.ignore.Pattern.__init__
    - path.split
    - pat.split
    - path.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.endswith
    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: final_pattern_str.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae48dfd0>
    argNames:
    - self
    - pattern
    - ignorecase
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 321
    functionName: dulwich.ignore.Pattern.__init__
    functionSourceFile: dulwich.ignore
    functionUses: 35
    functionsReached:
    - pat.endswith
    - pattern.startswith
    - <builtin>.all
    - re.compile
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - <builtin>.len
    - re.escape
    - pat.split
    - pat.startswith
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - dulwich.ignore.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 392
    functionName: dulwich.ignore.Pattern.match
    functionSourceFile: dulwich.ignore
    functionUses: 6
    functionsReached:
    - path.endswith
    - <builtin>.bool
    - path.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 1
    IfCount: 11
    argCount: 1
    argDefaultValues: []
    argNames:
    - segment
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: dulwich.ignore._translate_segment
    functionSourceFile: dulwich.ignore
    functionUses: 37
    functionsReached:
    - re.escape
    - <builtin>.len
    - stuff.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - segments
    - i
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: dulwich.ignore._handle_double_asterisk
    functionSourceFile: dulwich.ignore
    functionUses: 37
    functionsReached:
    - <builtin>.len
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - pat
    - res
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 210
    functionName: dulwich.ignore._handle_leading_patterns
    functionSourceFile: dulwich.ignore
    functionUses: 37
    functionsReached:
    - pat.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: pat.startswith
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - pat
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 225
    functionName: dulwich.ignore.translate
    functionSourceFile: dulwich.ignore
    functionUses: 36
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - dulwich.ignore._translate_segment
    - re.escape
    - <builtin>.len
    - pat.split
    - pat.startswith
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore._handle_double_asterisk
    - stuff.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: pat.split
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pat.endswith
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 279
    functionName: dulwich.ignore.read_ignore_patterns
    functionSourceFile: dulwich.ignore
    functionUses: 28
    functionsReached:
    - line.startswith
    - line.endswith
    - line.strip
    - line.replace
    - line.rstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.replace
    functionSourceFile: <builtin>
    functionUses: 29
    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 0x7febaf20aeb0>
    argNames:
    - path
    - pattern
    - ignorecase
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 305
    functionName: dulwich.ignore.match_pattern
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore.translate
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - path.rsplit
    - <builtin>.len
    - dulwich.ignore.Pattern.match
    - re.compile
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - pattern.startswith
    - <builtin>.bool
    - re.escape
    - dulwich.ignore.Pattern.__init__
    - pat.split
    - path.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: 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: dulwich.ignore.Pattern.__bytes__
    functionSourceFile: dulwich.ignore
    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: 361
    functionName: dulwich.ignore.Pattern.__str__
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - os.fsdecode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 369
    functionName: dulwich.ignore.Pattern.__eq__
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 384
    functionName: dulwich.ignore.Pattern.__repr__
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - <builtin>.type
    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 0x7febadfcdb50>
    - <ast.Constant object at 0x7febadfcd040>
    argNames:
    - self
    - patterns
    - ignorecase
    - path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 426
    functionName: dulwich.ignore.IgnoreFilter.__init__
    functionSourceFile: dulwich.ignore
    functionUses: 28
    functionsReached:
    - pat.endswith
    - pattern.startswith
    - <builtin>.all
    - pattern.endswith
    - re.compile
    - dulwich.ignore._translate_segment
    - re.escape
    - dulwich.ignore.Pattern.__init__
    - <builtin>.len
    - pat.split
    - pat.startswith
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - dulwich.ignore.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 445
    functionName: dulwich.ignore.IgnoreFilter.append_pattern
    functionSourceFile: dulwich.ignore
    functionUses: 29
    functionsReached:
    - pat.endswith
    - pattern.startswith
    - <builtin>.all
    - pattern.endswith
    - re.compile
    - dulwich.ignore._translate_segment
    - re.escape
    - dulwich.ignore.Pattern.__init__
    - <builtin>.len
    - pat.split
    - pat.startswith
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - dulwich.ignore.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 449
    functionName: dulwich.ignore.IgnoreFilter.find_matching
    functionSourceFile: dulwich.ignore
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - os.fsencode
    - pattern.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 463
    functionName: dulwich.ignore.IgnoreFilter.is_ignored
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - pat.endswith
    - os.fsencode
    - <builtin>.all
    - path.encode
    - dulwich.ignore._pattern_to_str
    - <builtin>.next
    - pattern_str.encode
    - dulwich.ignore._handle_leading_patterns
    - path.startswith
    - dulwich.ignore.translate
    - path.decode
    - dulwich.ignore._check_parent_exclusion
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - path.rsplit
    - <builtin>.len
    - pattern_str.endswith
    - dulwich.ignore.Pattern.match
    - pattern.match
    - dulwich.ignore.IgnoreFilter.find_matching
    - <builtin>.list
    - re.compile
    - pat.startswith
    - pattern_str.startswith
    - <builtin>.range
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.ignore._pattern_excludes_parent
    - pattern.startswith
    - final_pattern_str.startswith
    - re.escape
    - <builtin>.bool
    - dulwich.ignore.Pattern.__init__
    - path.split
    - pat.split
    - path.endswith
    - pattern_data.decode
    - dulwich.ignore.IgnoreFilter._apply_parent_exclusion_rule
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - matching_patterns
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 487
    functionName: dulwich.ignore.IgnoreFilter._apply_parent_exclusion_rule
    functionSourceFile: dulwich.ignore
    functionUses: 1
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - path.encode
    - dulwich.ignore._pattern_to_str
    - <builtin>.next
    - pattern_str.encode
    - dulwich.ignore._handle_leading_patterns
    - path.startswith
    - dulwich.ignore.translate
    - dulwich.ignore._check_parent_exclusion
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - path.rsplit
    - <builtin>.len
    - pattern_str.endswith
    - dulwich.ignore.Pattern.match
    - re.compile
    - pat.startswith
    - pattern_str.startswith
    - <builtin>.range
    - dulwich.ignore._handle_double_asterisk
    - stuff.startswith
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.ignore._pattern_excludes_parent
    - pattern.startswith
    - final_pattern_str.startswith
    - re.escape
    - <builtin>.bool
    - dulwich.ignore.Pattern.__init__
    - path.split
    - pat.split
    - path.endswith
    - pattern_data.decode
    - <builtin>.reversed
    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 0x7febaf9064c0>
    argNames:
    - cls
    - path
    - ignorecase
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 497
    functionName: dulwich.ignore.IgnoreFilter.from_path
    functionSourceFile: dulwich.ignore
    functionUses: 27
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - line.strip
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore.translate
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - <builtin>.len
    - line.rstrip
    - <builtin>.open
    - re.compile
    - pat.startswith
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - stuff.startswith
    - line.startswith
    - pattern.startswith
    - line.endswith
    - re.escape
    - dulwich.ignore.read_ignore_patterns
    - dulwich.ignore.Pattern.__init__
    - pat.split
    - <builtin>.str
    - dulwich.ignore.IgnoreFilter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 512
    functionName: dulwich.ignore.IgnoreFilter.__repr__
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filters
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 524
    functionName: dulwich.ignore.IgnoreFilterStack.__init__
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 532
    functionName: dulwich.ignore.IgnoreFilterStack.is_ignored
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - filter.is_ignored
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filter.is_ignored
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 547
    functionName: dulwich.ignore.IgnoreFilterStack.__repr__
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 556
    functionName: dulwich.ignore.default_user_ignore_filter_path
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - os.path.expanduser
    - os.path.join
    - os.environ.get
    - config.get
    - value.decode
    - <builtin>.isinstance
    - dulwich.config.get_xdg_config_home_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - top_path
    - global_filters
    - ignorecase
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 581
    functionName: dulwich.ignore.IgnoreFilterManager.__init__
    functionSourceFile: dulwich.ignore
    functionUses: 23
    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: 599
    functionName: dulwich.ignore.IgnoreFilterManager.__repr__
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 603
    functionName: dulwich.ignore.IgnoreFilterManager._load_path
    functionSourceFile: dulwich.ignore
    functionUses: 3
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - line.strip
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore.translate
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - <builtin>.len
    - os.path.join
    - line.rstrip
    - <builtin>.open
    - re.compile
    - dulwich.ignore.IgnoreFilter.from_path
    - pat.startswith
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - stuff.startswith
    - line.startswith
    - pattern.startswith
    - line.endswith
    - re.escape
    - dulwich.ignore.read_ignore_patterns
    - dulwich.ignore.Pattern.__init__
    - pat.split
    - <builtin>.str
    - dulwich.ignore.IgnoreFilter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 623
    functionName: dulwich.ignore.IgnoreFilterManager.find_matching
    functionSourceFile: dulwich.ignore
    functionUses: 2
    functionsReached:
    - pat.endswith
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore.translate
    - pattern.endswith
    - os.path.isabs
    - dulwich.ignore._translate_segment
    - <builtin>.len
    - os.path.join
    - line.rstrip
    - <builtin>.list
    - <builtin>.open
    - re.compile
    - dulwich.ignore.IgnoreFilter.from_path
    - dulwich.ignore.IgnoreFilterManager._load_path
    - pat.startswith
    - <builtin>.range
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - stuff.startswith
    - line.startswith
    - pattern.startswith
    - line.endswith
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - path.split
    - dulwich.ignore.Pattern.__init__
    - re.escape
    - f.find_matching
    - pat.split
    - filters.insert
    - <builtin>.str
    - dulwich.ignore.IgnoreFilter.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.replace
    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: f.find_matching
    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: filters.insert
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 652
    functionName: dulwich.ignore.IgnoreFilterManager.is_ignored
    functionSourceFile: dulwich.ignore
    functionUses: 0
    functionsReached:
    - pat.endswith
    - <builtin>.iter
    - <builtin>.all
    - path.encode
    - line.strip
    - dulwich.ignore._pattern_to_str
    - <builtin>.next
    - pattern_str.encode
    - dulwich.ignore._handle_leading_patterns
    - last_excluding_pattern.pattern.endswith
    - path.startswith
    - dulwich.ignore.translate
    - dulwich.ignore._check_parent_exclusion
    - dulwich.ignore.IgnoreFilterManager._apply_directory_traversal_rule
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - path.rsplit
    - <builtin>.len
    - pattern_str.endswith
    - dulwich.ignore.Pattern.match
    - os.path.isabs
    - os.path.join
    - line.rstrip
    - dulwich.ignore.IgnoreFilterManager.find_matching
    - <builtin>.list
    - <builtin>.open
    - re.compile
    - dulwich.ignore.IgnoreFilter.from_path
    - pat.startswith
    - pattern_str.startswith
    - dulwich.ignore.IgnoreFilterManager._load_path
    - <builtin>.range
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - stuff.startswith
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.ignore._pattern_excludes_parent
    - pattern.startswith
    - line.startswith
    - final_pattern_str.startswith
    - line.endswith
    - re.escape
    - <builtin>.bool
    - dulwich.ignore.Pattern.__init__
    - path.split
    - pat.split
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - f.find_matching
    - path.endswith
    - filters.insert
    - <builtin>.str
    - pattern_data.decode
    - <builtin>.reversed
    - dulwich.ignore.IgnoreFilter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - matches
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 679
    functionName: dulwich.ignore.IgnoreFilterManager._apply_directory_traversal_rule
    functionSourceFile: dulwich.ignore
    functionUses: 1
    functionsReached:
    - pat.endswith
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.ignore._handle_leading_patterns
    - last_excluding_pattern.pattern.endswith
    - dulwich.ignore.translate
    - pattern.endswith
    - os.path.isabs
    - dulwich.ignore._translate_segment
    - <builtin>.len
    - os.path.join
    - line.rstrip
    - dulwich.ignore.IgnoreFilterManager.find_matching
    - <builtin>.list
    - <builtin>.open
    - re.compile
    - dulwich.ignore.IgnoreFilter.from_path
    - dulwich.ignore.IgnoreFilterManager._load_path
    - pat.startswith
    - <builtin>.range
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - stuff.startswith
    - line.startswith
    - pattern.startswith
    - line.endswith
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - path.split
    - dulwich.ignore.Pattern.__init__
    - re.escape
    - f.find_matching
    - pat.split
    - filters.insert
    - <builtin>.str
    - dulwich.ignore.IgnoreFilter.__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: last_excluding_pattern.pattern.endswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 710
    functionName: dulwich.ignore.IgnoreFilterManager.from_repo
    functionSourceFile: dulwich.ignore
    functionUses: 22
    functionsReached:
    - pat.endswith
    - <builtin>.all
    - line.strip
    - os.path.expanduser
    - repo.get_config_stack
    - dulwich.ignore._handle_leading_patterns
    - dulwich.ignore.translate
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - <builtin>.len
    - line.rstrip
    - <builtin>.open
    - config.get_boolean
    - re.compile
    - dulwich.ignore.IgnoreFilter.from_path
    - pat.startswith
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - stuff.startswith
    - contextlib.suppress
    - dulwich.ignore.IgnoreFilterManager.__init__
    - line.startswith
    - pattern.startswith
    - line.endswith
    - re.escape
    - dulwich.ignore.read_ignore_patterns
    - dulwich.ignore.Pattern.__init__
    - pat.split
    - global_filters.append
    - <builtin>.str
    - dulwich.ignore.IgnoreFilter.__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: global_filters.append
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.get_config_stack
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.sparse_patterns
    functionSourceFile: dulwich.sparse_patterns
    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:
    - index
    - lines
    - cone
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 53
    functionName: dulwich.sparse_patterns.determine_included_paths
    functionSourceFile: dulwich.sparse_patterns
    functionUses: 4
    functionsReached:
    - line.startswith
    - dulwich.sparse_patterns.compute_included_paths_full
    - line.endswith
    - raw_line.strip
    - dulwich.sparse_patterns.parse_sparse_patterns
    - pat.startswith
    - pat.strip
    - path_bytes.decode
    - fnmatch.fnmatch
    - included.add
    - path_str.split
    - reinclude_dirs.add
    - index.items
    - dulwich.sparse_patterns.match_gitignore_patterns
    - path_str.startswith
    - dulwich.sparse_patterns.compute_included_paths_cone
    - results.append
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 5
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - index
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: dulwich.sparse_patterns.compute_included_paths_cone
    functionSourceFile: dulwich.sparse_patterns
    functionUses: 5
    functionsReached:
    - pat.startswith
    - pat.strip
    - path_bytes.decode
    - path_str.split
    - included.add
    - reinclude_dirs.add
    - index.items
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - index
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 72
    functionName: dulwich.sparse_patterns.compute_included_paths_full
    functionSourceFile: dulwich.sparse_patterns
    functionUses: 5
    functionsReached:
    - line.startswith
    - line.endswith
    - raw_line.strip
    - dulwich.sparse_patterns.parse_sparse_patterns
    - fnmatch.fnmatch
    - path_bytes.decode
    - included.add
    - dulwich.sparse_patterns.match_gitignore_patterns
    - index.items
    - path_str.startswith
    - results.append
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - lines
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 243
    functionName: dulwich.sparse_patterns.parse_sparse_patterns
    functionSourceFile: dulwich.sparse_patterns
    functionUses: 6
    functionsReached:
    - line.startswith
    - results.append
    - line.endswith
    - raw_line.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: index.items
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 1
    IfCount: 12
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2cef70>
    argNames:
    - path_str
    - parsed_patterns
    - path_is_dir
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 292
    functionName: dulwich.sparse_patterns.match_gitignore_patterns
    functionSourceFile: dulwich.sparse_patterns
    functionUses: 6
    functionsReached:
    - path_str.startswith
    - fnmatch.fnmatch
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: included.add
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pat.strip
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reinclude_dirs.add
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_str.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 7
    IfCount: 10
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad907d00>
    argNames:
    - repo
    - included_paths
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 151
    functionName: dulwich.sparse_patterns.apply_included_paths
    functionSourceFile: dulwich.sparse_patterns
    functionUses: 4
    functionsReached:
    - index.write
    - normalizer.checkout_normalize
    - os.path.exists
    - os.remove
    - obj.set_raw_string
    - entry.set_skip_worktree
    - dulwich.sparse_patterns.apply_included_paths.local_modifications_exist
    - dulwich.objects.ShaFile.from_string
    - os.path.join
    - index.items
    - dulwich.objects.ShaFile.__init__
    - <builtin>.list
    - <builtin>.open
    - repo.get_blob_normalizer
    - dulwich.file.ensure_dir_exists
    - full_path.encode
    - os.path.dirname
    - os.makedirs
    - path_bytes.decode
    - f.read
    - <builtin>.isinstance
    - <builtin>.bool
    - repo.open_index
    - f.write
    - normalizer.checkin_normalize
    linkageType: pythonLinkage
    raised:
    - SparseCheckoutConflictError
    - BlobNotFoundError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.get_blob_normalizer
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - full_path
    - index_entry
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 172
    functionName: dulwich.sparse_patterns.apply_included_paths.local_modifications_exist
    functionSourceFile: dulwich.sparse_patterns
    functionUses: 5
    functionsReached:
    - <builtin>.open
    - <builtin>.bool
    - full_path.encode
    - dulwich.objects.ShaFile.from_string
    - os.path.exists
    - normalizer.checkin_normalize
    - f.read
    - obj.set_raw_string
    - dulwich.objects.ShaFile.__init__
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: full_path.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalizer.checkin_normalize
    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: entry.set_skip_worktree
    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: normalizer.checkout_normalize
    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: raw_line.strip
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.filter_branch
    functionSourceFile: dulwich.filter_branch
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 13
    argDefaultValues: []
    argNames:
    - self
    - object_store
    - filter_fn
    - filter_author
    - filter_committer
    - filter_message
    - tree_filter
    - index_filter
    - parent_filter
    - commit_filter
    - subdirectory_filter
    - prune_empty
    - tag_name_filter
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: dulwich.filter_branch.CommitFilter.__init__
    functionSourceFile: dulwich.filter_branch
    functionUses: 2
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - tree_sha
    - subdirectory
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 114
    functionName: dulwich.filter_branch.CommitFilter._filter_tree_with_subdirectory
    functionSourceFile: dulwich.filter_branch
    functionUses: 4
    functionsReached:
    - dulwich.objects.Tree.__init__
    - current_tree.items
    - <builtin>.super
    - <builtin>.isinstance
    - subdirectory.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subdirectory.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: current_tree.items
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tree_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 162
    functionName: dulwich.filter_branch.CommitFilter._apply_tree_filter
    functionSourceFile: dulwich.filter_branch
    functionUses: 4
    functionsReached:
    - tempfile.TemporaryDirectory
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - tree_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 190
    functionName: dulwich.filter_branch.CommitFilter._apply_index_filter
    functionSourceFile: dulwich.filter_branch
    functionUses: 4
    functionsReached:
    - filter_driver.smudge
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.validate_path_element_default
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - hashlib.sha1.update
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.objects.format_time_entry
    - binascii.hexlify
    - os.fsync
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.index.write_index
    - os.close
    - os.unlink
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - value.this.serialize
    - dulwich.index.cleanup_mode
    - <builtin>.sorted
    - <builtin>.any
    - attributes.get
    - ext.to_bytes
    - dulwich.objects.ShaFile._serialize
    - dulwich.pack.SHA1Writer.tell
    - io.BytesIO.write
    - dulwich.pack.SHA1Reader.check_sha
    - mergetag.as_raw_string
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - dulwich.index.Index.clear
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - dulwich.pack.SHA1Writer.write
    - filter_name.decode
    - dulwich.index.Index.update
    - os.path.exists
    - os.replace
    - dulwich.index.commit_tree.add_tree
    - os.remove
    - todo.extend
    - os.mkdir
    - meaningful_extensions.append
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.objects.Tree.__init__
    - dulwich.index.read_index_dict_with_version
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.len
    - threading.Lock
    - sep_corrected_path.decode
    - dulwich.index.ResolveUndoExtension.from_bytes
    - enum.Enum.__init__
    - <builtin>.list
    - dulwich.index.TreeExtension.__init__
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.index.write_cache_entry
    - <builtin>.open
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - normalized.lower
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.index.Index.iterobjects
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - dulwich.pack.SHA1Writer.write_sha
    - element.decode
    - dulwich.index.Index.__iter__
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - <builtin>.reversed
    - <builtin>.iter
    - os.fsencode
    - <builtin>.all
    - entries_list.append
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.index._normalize_path_element_default
    - dulwich.file._GitFile.abort
    - tree.iteritems
    - os.fdopen
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - path.rsplit
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - object_store.add_object
    - dulwich.pack.SHA1Reader.__init__
    - extra.append
    - <builtin>.set
    - subprocess.run
    - os.rename
    - subentry.in_path
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - contents.decode
    - tempfile.NamedTemporaryFile
    - target_path.decode
    - f.read
    - struct.pack
    - <builtin>.isinstance
    - tree_path.replace
    - dulwich.pack.SHA1Writer.__init__
    - stat.S_ISLNK
    - dulwich.index.TreeExtension.from_bytes
    - clean_cmd_raw.decode
    - dulwich.file._GitFile.read
    - dulwich.index._normalize_path_element_hfs
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - path.split
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - f.write
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - value.split
    - binascii.unhexlify
    - dulwich.pack.SHA1Reader.seek
    - dulwich._objects.sorted_tree_items
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.index.build_index_from_tree
    - todo.pop
    - headers.extend
    - <builtin>.divmod
    - unicodedata.normalize
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - st.__class__
    - os.kill
    - dulwich.index.Index.read
    - dulwich.index.Index.commit
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - dulwich.objects.Tree._serialize
    - struct.unpack
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - headers.append
    - dulwich.objects.Tree.add
    - dulwich.pack.SHA1Reader.read
    - dulwich.filters.CompositeFilterDriver.smudge
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - dulwich.index.commit_tree.build_tree
    - value.lower
    - dulwich.file.GitFile
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index.IndexExtension.from_raw
    - dulwich.objects.Commit._serialize
    - os.chmod
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.objects.Blob._serialize
    - entries.items
    - dulwich.pack.SHA1Writer.close
    - dulwich.objects.S_ISGITLINK
    - dulwich.index.pathjoin
    - dulwich.attrs.GitAttributes.match_path
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 40
    ICount: 6
    IfCount: 28
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - commit_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 226
    functionName: dulwich.filter_branch.CommitFilter.process_commit
    functionSourceFile: dulwich.filter_branch
    functionUses: 3
    functionsReached:
    - filter_driver.smudge
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.validate_path_element_default
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - hashlib.sha1.update
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.objects.format_time_entry
    - binascii.hexlify
    - os.fsync
    - dulwich.file._GitFile.tell
    - env.copy
    - dulwich.index._remove_file_with_readonly_handling
    - dulwich.filter_branch.CommitFilter.process_commit
    - os.path.join
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.index.write_index
    - os.close
    - os.unlink
    - dulwich.objects.Commit.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - value.this.serialize
    - dulwich.index.cleanup_mode
    - <builtin>.sorted
    - <builtin>.any
    - attributes.get
    - ext.to_bytes
    - dulwich.objects.ShaFile._serialize
    - dulwich.pack.SHA1Writer.tell
    - io.BytesIO.write
    - dulwich.pack.SHA1Reader.check_sha
    - mergetag.as_raw_string
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - dulwich.index.Index.clear
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - dulwich.pack.SHA1Writer.write
    - new_data.update
    - filter_name.decode
    - dulwich.index.Index.update
    - os.path.exists
    - os.replace
    - dulwich.index.commit_tree.add_tree
    - os.remove
    - todo.extend
    - os.mkdir
    - meaningful_extensions.append
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.cli.cmd_filter_branch.run.filter_message
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.objects.Tree.__init__
    - dulwich.index.read_index_dict_with_version
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index.Index.__init__
    - <builtin>.len
    - stat.S_IFMT
    - threading.Lock
    - sep_corrected_path.decode
    - dulwich.index.ResolveUndoExtension.from_bytes
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - dulwich.objects.ShaFile.as_raw_string
    - new_data.get
    - dulwich.index.write_cache_entry
    - <builtin>.open
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - normalized.lower
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.filter_branch.CommitFilter._apply_index_filter
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.index.Index.iterobjects
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - dulwich.pack.SHA1Writer.write_sha
    - element.decode
    - tempfile.TemporaryDirectory
    - dulwich.index.Index.__iter__
    - dulwich.index.read_cache_entry
    - value.ancestor.serialize
    - <builtin>.reversed
    - <builtin>.iter
    - os.fsencode
    - <builtin>.all
    - typing.NamedTuple.__init__
    - entries_list.append
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.index._normalize_path_element_default
    - dulwich.file._GitFile.abort
    - tree.iteritems
    - os.fdopen
    - dulwich.filter_branch.CommitFilter._apply_tree_filter
    - dulwich.index.ConflictedIndexEntry.__init__
    - current_tree.items
    - dulwich.index._tree_to_fs_path
    - path.rsplit
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - object_store.add_object
    - dulwich.pack.SHA1Reader.__init__
    - extra.append
    - <builtin>.set
    - subprocess.run
    - os.rename
    - subentry.in_path
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - contents.decode
    - tempfile.NamedTemporaryFile
    - target_path.decode
    - f.read
    - struct.pack
    - <builtin>.isinstance
    - tree_path.replace
    - dulwich.pack.SHA1Writer.__init__
    - stat.S_ISLNK
    - dulwich.index.TreeExtension.from_bytes
    - new_parents.append
    - clean_cmd_raw.decode
    - dulwich.index._normalize_path_element_hfs
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - path.split
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - f.write
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - value.split
    - binascii.unhexlify
    - dulwich.pack.SHA1Reader.seek
    - dulwich._objects.sorted_tree_items
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.index.build_index_from_tree
    - todo.pop
    - headers.extend
    - <builtin>.divmod
    - unicodedata.normalize
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - st.__class__
    - os.kill
    - dulwich.index.Index.read
    - dulwich.index.Index.commit
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - dulwich.objects.Tree._serialize
    - struct.unpack
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - headers.append
    - dulwich.objects.Tree.add
    - dulwich.pack.SHA1Reader.read
    - dulwich.filters.CompositeFilterDriver.smudge
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - dulwich.index.commit_tree.build_tree
    - dulwich.filter_branch.CommitFilter._filter_tree_with_subdirectory
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index.IndexExtension.from_raw
    - dulwich.objects.Commit._serialize
    - subdirectory.split
    - os.chmod
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.objects.Blob._serialize
    - filter_env.update
    - entries.items
    - dulwich.pack.SHA1Writer.close
    - dulwich.objects.S_ISGITLINK
    - dulwich.index.pathjoin
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_parents.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: new_data.update
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5389
    functionName: dulwich.cli.cmd_filter_branch.run.filter_message
    functionSourceFile: dulwich.cli
    functionUses: 4
    functionsReached:
    - filter_env.update
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - subprocess.run
    - env.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_data.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 375
    functionName: dulwich.filter_branch.CommitFilter.get_mapping
    functionSourceFile: dulwich.filter_branch
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 7
    IfCount: 17
    argCount: 7
    argDefaultValues: []
    argNames:
    - refs
    - object_store
    - ref_names
    - commit_filter
    - keep_original
    - force
    - tag_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 384
    functionName: dulwich.filter_branch.filter_refs
    functionSourceFile: dulwich.filter_branch
    functionUses: 2
    functionsReached:
    - filter_driver.smudge
    - dulwich.pack.SHA1Reader.tell
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.SparseDirExtension.from_bytes
    - refs.allkeys
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_default
    - dulwich.index.validate_path_element_ntfs
    - hashlib.sha1.update
    - ret.setdefault
    - dulwich.filters.ProcessFilterDriver.__init__
    - dulwich.objects.format_time_entry
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - env.copy
    - dulwich.filter_branch.CommitFilter.get_mapping
    - dulwich.index._remove_file_with_readonly_handling
    - dulwich.filter_branch.CommitFilter.process_commit
    - os.path.join
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.index.write_index
    - os.unlink
    - dulwich.objects.Commit.__init__
    - os.close
    - warnings.warn
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - dulwich.objects.hex_to_sha
    - extensions.append
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.write_cache_time
    - os.makedirs
    - <builtin>.range
    - extension.to_bytes
    - value.this.serialize
    - dulwich.index.cleanup_mode
    - <builtin>.sorted
    - <builtin>.any
    - attributes.get
    - ext.to_bytes
    - dulwich.objects.ShaFile._serialize
    - dulwich.pack.SHA1Writer.tell
    - io.BytesIO.write
    - dulwich.pack.SHA1Reader.check_sha
    - mergetag.as_raw_string
    - result.append
    - dulwich.index.Index.write
    - dulwich.index.write_index_dict
    - dulwich.index.Index.clear
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - dulwich.pack.SHA1Writer.write
    - new_data.update
    - filter_name.decode
    - dulwich.index.commit_tree.add_tree
    - dulwich.index.Index.update
    - os.path.exists
    - os.replace
    - os.remove
    - todo.extend
    - os.mkdir
    - meaningful_extensions.append
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.cli.cmd_filter_branch.run.filter_message
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.objects.Tree.__init__
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - dulwich.index.read_index_dict_with_version
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index.Index.__init__
    - <builtin>.len
    - threading.Lock
    - stat.S_IFMT
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - dulwich.index.ResolveUndoExtension.from_bytes
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.index.TreeExtension.__init__
    - ref.startswith
    - new_data.get
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.index.write_cache_entry
    - <builtin>.open
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - normalized.lower
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.filter_branch.CommitFilter._apply_index_filter
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - mapping.get
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.index.Index.iterobjects
    - io.BytesIO.tell
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - dulwich.pack.SHA1Writer.write_sha
    - element.decode
    - tempfile.TemporaryDirectory
    - dulwich.index.read_cache_entry
    - <builtin>.reversed
    - dulwich.index.Index.__iter__
    - value.ancestor.serialize
    - os.fsencode
    - <builtin>.iter
    - <builtin>.all
    - entries_list.append
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.index._normalize_path_element_default
    - dulwich.file._GitFile.abort
    - tree.iteritems
    - os.fdopen
    - dulwich.filter_branch.CommitFilter._apply_tree_filter
    - dulwich.index.ConflictedIndexEntry.__init__
    - current_tree.items
    - dulwich.index._tree_to_fs_path
    - path.rsplit
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - object_store.add_object
    - dulwich.pack.SHA1Reader.__init__
    - extra.append
    - <builtin>.set
    - subprocess.run
    - os.rename
    - dulwich.objects.Tag.__init__
    - subentry.in_path
    - value.other.serialize
    - dulwich.index.UntrackedExtension.from_bytes
    - contents.decode
    - tempfile.NamedTemporaryFile
    - target_path.decode
    - f.read
    - struct.pack
    - <builtin>.isinstance
    - tree_path.replace
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.index._normalize_path_element_hfs
    - dulwich.index.TreeExtension.from_bytes
    - new_parents.append
    - clean_cmd_raw.decode
    - stat.S_ISLNK
    - dulwich.file._GitFile.read
    - dulwich.filters.CompositeFilterDriver.__init__
    - tempfile.mkstemp
    - path.split
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - f.write
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - value.split
    - binascii.unhexlify
    - dulwich.pack.SHA1Reader.seek
    - dulwich._objects.sorted_tree_items
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - todo.pop
    - headers.extend
    - <builtin>.divmod
    - unicodedata.normalize
    - dulwich.index._encode_varint
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - st.__class__
    - os.kill
    - dulwich.index.Index.read
    - dulwich.index.Index.commit
    - os.open
    - dulwich.index.read_index_header
    - value.serialize
    - dulwich.objects.Tree._serialize
    - struct.unpack
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - headers.append
    - dulwich.objects.Tree.add
    - dulwich.pack.SHA1Reader.read
    - dulwich.filters.CompositeFilterDriver.smudge
    - dulwich.index._compress_path
    - os.lstat
    - hashlib.sha1.digest
    - typing.cast.id.startswith
    - dulwich.index.commit_tree.build_tree
    - dulwich.filter_branch.CommitFilter._filter_tree_with_subdirectory
    - typing.cast.startswith
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.index.IndexExtension.from_raw
    - dulwich.objects.Commit._serialize
    - subdirectory.split
    - os.chmod
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.objects.Blob._serialize
    - filter_env.update
    - entries.items
    - dulwich.pack.SHA1Writer.close
    - dulwich.objects.S_ISGITLINK
    - dulwich.index.pathjoin
    - dulwich.attrs.GitAttributes.match_path
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mapping.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: refs.allkeys
    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: dulwich.gc
    functionSourceFile: dulwich.gc
    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: dataclasses.field
    functionSourceFile: dataclasses
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.gc.GCStats
    functionSourceFile: dulwich.gc
    functionUses: 0
    functionsReached:
    - dataclasses.field
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 13
    IfCount: 10
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadfbfe20>
    - <ast.Constant object at 0x7febadfbf250>
    argNames:
    - object_store
    - refs_container
    - include_reflogs
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: dulwich.gc.find_reachable_objects
    functionSourceFile: dulwich.gc
    functionUses: 4
    functionsReached:
    - collections.deque
    - refs_container.allkeys
    - ref.decode
    - reachable.add
    - pending.popleft
    - pending.append
    - <builtin>.isinstance
    - obj.items
    - sha.decode
    - <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: refs_container.allkeys
    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: pending.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: reachable.add
    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: pending.popleft
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadf68550>
    - <ast.Constant object at 0x7febadf68910>
    argNames:
    - object_store
    - refs_container
    - include_reflogs
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 125
    functionName: dulwich.gc.find_unreachable_objects
    functionSourceFile: dulwich.gc
    functionUses: 3
    functionsReached:
    - collections.deque
    - dulwich.gc.find_reachable_objects
    - refs_container.allkeys
    - ref.decode
    - reachable.add
    - pending.popleft
    - pending.append
    - unreachable.add
    - <builtin>.isinstance
    - obj.items
    - sha.decode
    - <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: unreachable.add
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 6
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadf683d0>
    - <ast.Constant object at 0x7febadf68c70>
    - <ast.Constant object at 0x7febadf689d0>
    argNames:
    - object_store
    - refs_container
    - grace_period
    - dry_run
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 154
    functionName: dulwich.gc.prune_unreachable_objects
    functionSourceFile: dulwich.gc
    functionUses: 0
    functionsReached:
    - collections.deque
    - ref.decode
    - time.time
    - sha.decode
    - dulwich.gc.find_reachable_objects
    - <builtin>.len
    - pruned.add
    - obj.items
    - <builtin>.set
    - pending.popleft
    - pending.append
    - unreachable.add
    - <builtin>.isinstance
    - object_store.delete_loose_object
    - refs_container.allkeys
    - dulwich.gc.find_unreachable_objects
    - obj.as_raw_string
    - reachable.add
    - object_store.get_object_mtime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_store.get_object_mtime
    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: object_store.delete_loose_object
    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: pruned.add
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 12
    IfCount: 14
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5f6190>
    - <ast.Constant object at 0x7febaf5f6d30>
    - <ast.Constant object at 0x7febaf5f6490>
    - <ast.Constant object at 0x7febaf5f6fa0>
    - <ast.Constant object at 0x7febaf5f6250>
    - <ast.Constant object at 0x7febaf5f6370>
    argNames:
    - repo
    - auto
    - aggressive
    - prune
    - grace_period
    - dry_run
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 222
    functionName: dulwich.gc.garbage_collect
    functionSourceFile: dulwich.gc
    functionUses: 1
    functionsReached:
    - collections.deque
    - ref.decode
    - time.time
    - unreachable_to_prune.add
    - object_store.contains_loose
    - object_store.repack
    - sha.decode
    - dulwich.gc.find_reachable_objects
    - <builtin>.len
    - object_store.count_loose_objects
    - <builtin>.list
    - obj.items
    - <builtin>.set
    - repo.refs.pack_refs
    - pending.popleft
    - pending.append
    - unreachable.add
    - <builtin>.isinstance
    - object_store.delete_loose_object
    - object_store.prune
    - refs_container.allkeys
    - dulwich.gc.find_unreachable_objects
    - obj.as_raw_string
    - reachable.add
    - object_store.get_object_mtime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_store.count_loose_objects
    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: unreachable_to_prune.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.refs.pack_refs
    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: object_store.contains_loose
    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: object_store.repack
    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: object_store.prune
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf28cdf0>
    argNames:
    - repo
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 328
    functionName: dulwich.gc.should_run_gc
    functionSourceFile: dulwich.gc
    functionUses: 1
    functionsReached:
    - <builtin>.int
    - repo.get_config
    - object_store.count_pack_files
    - <builtin>.getattr
    - object_store.count_loose_objects
    - os.environ.get
    - config.get
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_store.count_pack_files
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf164f10>
    - <ast.Constant object at 0x7febaf164ac0>
    argNames:
    - repo
    - config
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 385
    functionName: dulwich.gc.maybe_auto_gc
    functionSourceFile: dulwich.gc
    functionUses: 0
    functionsReached:
    - log_expiry.split
    - collections.deque
    - object_store.count_pack_files
    - <builtin>.getattr
    - os.path.exists
    - ref.decode
    - os.environ.get
    - time.time
    - unreachable_to_prune.add
    - log_expiry.endswith
    - dulwich.gc.should_run_gc
    - object_store.contains_loose
    - object_store.repack
    - sha.decode
    - dulwich.gc.find_reachable_objects
    - <builtin>.len
    - object_store.count_loose_objects
    - os.path.join
    - os.unlink
    - <builtin>.list
    - obj.items
    - os.stat
    - <builtin>.set
    - <builtin>.open
    - dulwich.gc.garbage_collect
    - <builtin>.hasattr
    - f.read
    - repo.refs.pack_refs
    - pending.popleft
    - pending.append
    - unreachable.add
    - <builtin>.isinstance
    - logging.info
    - object_store.delete_loose_object
    - object_store.prune
    - <builtin>.int
    - refs_container.allkeys
    - repo.get_config
    - dulwich.gc.find_unreachable_objects
    - f.write
    - obj.as_raw_string
    - reachable.add
    - config.get
    - object_store.get_object_mtime
    - repo.controldir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log_expiry.endswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log_expiry.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.info
    functionSourceFile: logging
    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: dulwich.rerere
    functionSourceFile: dulwich.rerere
    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:
    - preimage
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: dulwich.rerere._compute_conflict_id
    functionSourceFile: dulwich.rerere
    functionUses: 1
    functionsReached:
    - hashlib.sha1
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: dulwich.rerere._normalize_conflict_markers
    functionSourceFile: dulwich.rerere
    functionUses: 1
    functionsReached:
    - line.startswith
    - content.split
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: dulwich.rerere._extract_conflict_regions
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - conflicts.append
    - content.split
    - <builtin>.len
    - theirs_lines.append
    - ours_lines.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ours_lines.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: theirs_lines.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 120
    functionName: dulwich.rerere._has_conflict_markers
    functionSourceFile: dulwich.rerere
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - content
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 132
    functionName: dulwich.rerere._remove_conflict_markers
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - line.startswith
    - content.split
    - result.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - rr_cache_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 167
    functionName: dulwich.rerere.RerereCache.__init__
    functionSourceFile: dulwich.rerere
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - os.fsdecode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 179
    functionName: dulwich.rerere.RerereCache.from_repo
    functionSourceFile: dulwich.rerere
    functionUses: 8
    functionsReached:
    - os.path.join
    - os.fsdecode
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.isinstance
    - repo.controldir
    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: 191
    functionName: dulwich.rerere.RerereCache._ensure_cache_dir
    functionSourceFile: dulwich.rerere
    functionUses: 1
    functionsReached:
    - os.makedirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 195
    functionName: dulwich.rerere.RerereCache._get_conflict_dir
    functionSourceFile: dulwich.rerere
    functionUses: 11
    functionsReached:
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 206
    functionName: dulwich.rerere.RerereCache._get_preimage_path
    functionSourceFile: dulwich.rerere
    functionUses: 2
    functionsReached:
    - os.path.join
    - dulwich.rerere.RerereCache._get_conflict_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 217
    functionName: dulwich.rerere.RerereCache._get_postimage_path
    functionSourceFile: dulwich.rerere
    functionUses: 6
    functionsReached:
    - os.path.join
    - dulwich.rerere.RerereCache._get_conflict_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - path
    - content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 228
    functionName: dulwich.rerere.RerereCache.record_conflict
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - line.startswith
    - dulwich.rerere.RerereCache._get_preimage_path
    - hashlib.sha1
    - dulwich.rerere._compute_conflict_id
    - dulwich.rerere.RerereCache._get_conflict_dir
    - content.split
    - dulwich.rerere.RerereCache._ensure_cache_dir
    - f.write
    - os.makedirs
    - os.path.join
    - result.append
    - dulwich.rerere._normalize_conflict_markers
    - dulwich.rerere._has_conflict_markers
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    - content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 258
    functionName: dulwich.rerere.RerereCache.record_resolution
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - dulwich.rerere.RerereCache._get_conflict_dir
    - dulwich.rerere.RerereCache._get_postimage_path
    - os.makedirs
    - os.path.join
    - f.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 275
    functionName: dulwich.rerere.RerereCache.has_resolution
    functionSourceFile: dulwich.rerere
    functionUses: 1
    functionsReached:
    - dulwich.rerere.RerereCache._get_postimage_path
    - os.path.exists
    - os.path.join
    - dulwich.rerere.RerereCache._get_conflict_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 287
    functionName: dulwich.rerere.RerereCache.get_resolution
    functionSourceFile: dulwich.rerere
    functionUses: 1
    functionsReached:
    - <builtin>.open
    - dulwich.rerere.RerereCache._get_conflict_dir
    - dulwich.rerere.RerereCache._get_postimage_path
    - os.path.join
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    - content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 304
    functionName: dulwich.rerere.RerereCache.apply_resolution
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - dulwich.rerere.RerereCache._get_conflict_dir
    - dulwich.rerere.RerereCache._get_postimage_path
    - os.path.join
    - f.read
    - dulwich.rerere.RerereCache.get_resolution
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 323
    functionName: dulwich.rerere.RerereCache.forget
    functionSourceFile: dulwich.rerere
    functionUses: 1
    functionsReached:
    - os.remove
    - os.path.join
    - os.rmdir
    - dulwich.rerere.RerereCache._get_conflict_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 345
    functionName: dulwich.rerere.RerereCache.clear
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - os.listdir
    - os.path.exists
    - os.path.join
    - os.path.isdir
    - os.remove
    - os.rmdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaeb41ca0>
    argNames:
    - self
    - max_age_days
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 359
    functionName: dulwich.rerere.RerereCache.gc
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - os.listdir
    - os.path.getmtime
    - dulwich.rerere.RerereCache._get_conflict_dir
    - os.path.exists
    - os.path.join
    - os.path.isdir
    - time.time
    - os.remove
    - os.rmdir
    - dulwich.rerere.RerereCache.forget
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 383
    functionName: dulwich.rerere.RerereCache.status
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - os.listdir
    - dulwich.rerere.RerereCache._get_conflict_dir
    - dulwich.rerere.RerereCache._get_postimage_path
    - dulwich.rerere.RerereCache.has_resolution
    - os.path.exists
    - os.path.join
    - result.append
    - os.path.isdir
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 401
    functionName: dulwich.rerere.RerereCache.diff
    functionSourceFile: dulwich.rerere
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - dulwich.rerere.RerereCache._get_preimage_path
    - dulwich.rerere.RerereCache._get_conflict_dir
    - dulwich.rerere.RerereCache._get_postimage_path
    - os.path.join
    - f.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 431
    functionName: dulwich.rerere.is_rerere_enabled
    functionSourceFile: dulwich.rerere
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - config.get
    - enabled.lower
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: enabled.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 451
    functionName: dulwich.rerere.is_rerere_autoupdate
    functionSourceFile: dulwich.rerere
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - config.get
    - autoupdate.lower
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: autoupdate.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - repo
    - working_tree_path
    - conflicts
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 471
    functionName: dulwich.rerere.rerere_auto
    functionSourceFile: dulwich.rerere
    functionUses: 2
    functionsReached:
    - repo.get_config_stack
    - cache.record_conflict
    - dulwich.rerere.is_rerere_enabled
    - os.path.join
    - autoupdate.lower
    - os.fsdecode
    - <builtin>.open
    - recorded.append
    - f.read
    - dulwich.rerere.RerereCache.from_repo
    - cache.get_resolution
    - <builtin>.isinstance
    - <builtin>.bool
    - resolved.append
    - enabled.lower
    - f.write
    - config.get
    - dulwich.rerere.is_rerere_autoupdate
    - cache.has_resolution
    - dulwich.rerere.RerereCache.__init__
    - repo.controldir
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.record_conflict
    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: recorded.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cache.has_resolution
    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: cache.get_resolution
    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: resolved.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.cli
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - parser.print_help
    - <builtin>.getattr
    - os.environ.get
    - os.path.isdir
    - os.getpid
    - logging.getLogger
    - sys.stdout.isatty
    - os.fdopen
    - os.path.isabs
    - dulwich.cli._should_auto_flush
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - parser.parse_known_args
    - argparse.ArgumentParser
    - sys.stderr.write
    - sys.exit
    - signal.signal
    - dulwich.cli.AutoFlushTextIOWrapper.__init__
    - dulwich.cli.enable_pager
    - parser.add_argument
    - logging.basicConfig
    - dulwich.cli.main
    - <builtin>.hasattr
    - logging.fatal
    - <builtin>.sorted
    - <builtin>.isinstance
    - dulwich.cli.AutoFlushTextIOWrapper.env
    - <builtin>.int
    - dulwich.cli.disable_pager
    - trace_value.lower
    - dulwich.log_utils._configure_logging_from_trace
    - commands.keys
    - dulwich.cli._main
    - sys.stderr.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: dulwich.cli.to_display_str
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - value.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febac9d8490>
    argNames:
    - stream
    - env
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: dulwich.cli._should_auto_flush
    functionSourceFile: dulwich.cli
    functionUses: 6
    functionsReached:
    - sys.stdout.isatty
    - sys.stderr.isatty
    - <builtin>.hasattr
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.isatty
    functionSourceFile: sys
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.isatty
    functionSourceFile: sys
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 146
    functionName: dulwich.cli.AutoFlushTextIOWrapper.__init__
    functionSourceFile: dulwich.cli
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae0abac0>
    argNames:
    - cls
    - stream
    - env
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 155
    functionName: dulwich.cli.AutoFlushTextIOWrapper.env
    functionSourceFile: dulwich.cli
    functionUses: 4
    functionsReached:
    - dulwich.cli._should_auto_flush
    - <builtin>.hasattr
    - sys.stdout.isatty
    - os.environ.get
    - dulwich.cli.AutoFlushTextIOWrapper.__init__
    - sys.stderr.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: dulwich.cli.AutoFlushTextIOWrapper.write
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    - sys.stderr.write
    - sys.stderr.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.flush
    functionSourceFile: sys
    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: sys.stderr.flush
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 190
    functionName: dulwich.cli.AutoFlushTextIOWrapper.writelines
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stderr.writelines
    - sys.stdout.writelines
    - sys.stdout.flush
    - sys.stderr.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.writelines
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.writelines
    functionSourceFile: sys
    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: 199
    functionName: dulwich.cli.AutoFlushTextIOWrapper.flush
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stdout.flush
    - sys.stderr.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 203
    functionName: dulwich.cli.AutoFlushTextIOWrapper.__getattr__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 207
    functionName: dulwich.cli.AutoFlushTextIOWrapper.__enter__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 211
    functionName: dulwich.cli.AutoFlushTextIOWrapper.__exit__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stdout.__exit__
    - <builtin>.hasattr
    - sys.stderr.__exit__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.__exit__
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.__exit__
    functionSourceFile: sys
    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
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 229
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.__init__
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febadf3b880>
    argNames:
    - cls
    - stream
    - env
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 238
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.env
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.cli._should_auto_flush
    - <builtin>.hasattr
    - os.environ.get
    - dulwich.cli.AutoFlushBinaryIOWrapper.__init__
    - sys.stdout.isatty
    - sys.stderr.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 260
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.write
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 273
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.writelines
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 282
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.flush
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 286
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.__getattr__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 290
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.__enter__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 294
    functionName: dulwich.cli.AutoFlushBinaryIOWrapper.__exit__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - signal
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 309
    functionName: dulwich.cli.signal_int
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - signal
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 319
    functionName: dulwich.cli.signal_quit
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - pdb.set_trace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pdb.set_trace
    functionSourceFile: pdb
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - time_spec
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 331
    functionName: dulwich.cli.parse_time_to_timestamp
    functionSourceFile: dulwich.cli
    functionUses: 2
    functionsReached:
    - <builtin>.int
    - normalized.endswith
    - time_spec.decode
    - <builtin>.len
    - dt.replace
    - time.time
    - dulwich.approxidate.parse_approxidate
    - dt.timestamp
    - <builtin>.str
    - datetime.datetime.strptime
    - dulwich.approxidate.parse_relative_time
    - <builtin>.isinstance
    - datetime.datetime.fromtimestamp
    - time_str.replace
    - time_spec.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - bytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 364
    functionName: dulwich.cli.format_bytes
    functionSourceFile: dulwich.cli
    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: 411
    functionName: dulwich.cli.detect_terminal_width
    functionSourceFile: dulwich.cli
    functionUses: 6
    functionsReached:
    - os.get_terminal_size
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.get_terminal_size
    functionSourceFile: os
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febafdc4040>
    argNames:
    - items
    - out
    - width
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 423
    functionName: dulwich.cli.write_columns
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - os.get_terminal_size
    - dulwich.cli.detect_terminal_width
    - branch_name.ljust
    - lines.append
    - <builtin>.len
    - <builtin>.min
    - item.decode
    - col_widths.append
    - out.write
    - <builtin>.range
    - <builtin>.max
    - <builtin>.sum
    - dulwich.cli.write_columns.columns
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: item.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - names
    - width
    - num_cols
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 446
    functionName: dulwich.cli.write_columns.columns
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - col_widths.append
    - <builtin>.range
    - <builtin>.max
    - <builtin>.sum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: col_widths.append
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: branch_name.ljust
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: out.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 29
    ICount: 4
    IfCount: 20
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf62d640>
    - <ast.Constant object at 0x7febaf62d340>
    - <ast.Constant object at 0x7febaf62d550>
    - <ast.Constant object at 0x7febaf62d1c0>
    - <ast.Constant object at 0x7febaf62dfa0>
    argNames:
    - items
    - width
    - mode
    - padding
    - indent
    - nl
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 499
    functionName: dulwich.cli.format_columns
    functionSourceFile: dulwich.cli
    functionUses: 4
    functionsReached:
    - item.ljust
    - dulwich.cli.detect_terminal_width
    - os.get_terminal_size
    - part.strip
    - lines.append
    - <builtin>.len
    - <builtin>.min
    - col_widths.append
    - mode.split
    - <builtin>.range
    - line_parts.append
    - <builtin>.max
    - <builtin>.sum
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mode.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: item.ljust
    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: line_parts.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pager
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 644
    functionName: dulwich.cli.PagerBuffer.__init__
    functionSourceFile: dulwich.cli
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 652
    functionName: dulwich.cli.PagerBuffer.write
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - subprocess.Popen
    - <builtin>.bytes
    - <builtin>.len
    - dulwich.cli.Pager._ensure_pager_started
    - dulwich.cli.Pager.write
    - sys.stdout.write
    - <builtin>.isinstance
    - dulwich.cli.Pager._get_pager_command
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 800
    functionName: dulwich.cli.Pager.write
    functionSourceFile: dulwich.cli
    functionUses: 3
    functionsReached:
    - subprocess.Popen
    - <builtin>.len
    - dulwich.cli.Pager._ensure_pager_started
    - sys.stdout.write
    - <builtin>.isinstance
    - dulwich.cli.Pager._get_pager_command
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 658
    functionName: dulwich.cli.PagerBuffer.flush
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.cli.Pager.flush
    - sys.stdout.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 824
    functionName: dulwich.cli.Pager.flush
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - sys.stdout.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 662
    functionName: dulwich.cli.PagerBuffer.writelines
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.cli.PagerBuffer.write
    - subprocess.Popen
    - <builtin>.bytes
    - <builtin>.len
    - dulwich.cli.Pager._ensure_pager_started
    - dulwich.cli.Pager.write
    - sys.stdout.write
    - <builtin>.isinstance
    - dulwich.cli.Pager._get_pager_command
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 667
    functionName: dulwich.cli.PagerBuffer.readable
    functionSourceFile: dulwich.cli
    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: 671
    functionName: dulwich.cli.PagerBuffer.writable
    functionSourceFile: dulwich.cli
    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: 675
    functionName: dulwich.cli.PagerBuffer.seekable
    functionSourceFile: dulwich.cli
    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: 679
    functionName: dulwich.cli.PagerBuffer.close
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - dulwich.cli.Pager.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 837
    functionName: dulwich.cli.Pager.close
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 684
    functionName: dulwich.cli.PagerBuffer.closed
    functionSourceFile: dulwich.cli
    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: 689
    functionName: dulwich.cli.PagerBuffer.mode
    functionSourceFile: dulwich.cli
    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: 694
    functionName: dulwich.cli.PagerBuffer.name
    functionSourceFile: dulwich.cli
    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: 698
    functionName: dulwich.cli.PagerBuffer.fileno
    functionSourceFile: dulwich.cli
    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: 702
    functionName: dulwich.cli.PagerBuffer.isatty
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf03b700>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 706
    functionName: dulwich.cli.PagerBuffer.read
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febadd4cf10>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 710
    functionName: dulwich.cli.PagerBuffer.read1
    functionSourceFile: dulwich.cli
    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
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 714
    functionName: dulwich.cli.PagerBuffer.readinto
    functionSourceFile: dulwich.cli
    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
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 718
    functionName: dulwich.cli.PagerBuffer.readinto1
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febadd4cd60>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 722
    functionName: dulwich.cli.PagerBuffer.readline
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febadd4cbb0>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 726
    functionName: dulwich.cli.PagerBuffer.readlines
    functionSourceFile: dulwich.cli
    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 0x7febaf504760>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 730
    functionName: dulwich.cli.PagerBuffer.seek
    functionSourceFile: dulwich.cli
    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: 734
    functionName: dulwich.cli.PagerBuffer.tell
    functionSourceFile: dulwich.cli
    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 0x7febaf504430>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 738
    functionName: dulwich.cli.PagerBuffer.truncate
    functionSourceFile: dulwich.cli
    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: 742
    functionName: dulwich.cli.PagerBuffer.__iter__
    functionSourceFile: dulwich.cli
    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: 746
    functionName: dulwich.cli.PagerBuffer.__next__
    functionSourceFile: dulwich.cli
    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: 750
    functionName: dulwich.cli.PagerBuffer.__enter__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 754
    functionName: dulwich.cli.PagerBuffer.__exit__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.cli.Pager.close
    - dulwich.cli.PagerBuffer.close
    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 0x7febadd58070>
    argNames:
    - self
    - pager_cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 767
    functionName: dulwich.cli.Pager.__init__
    functionSourceFile: dulwich.cli
    functionUses: 10
    functionsReached:
    - dulwich.cli.PagerBuffer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 779
    functionName: dulwich.cli.Pager._get_pager_command
    functionSourceFile: dulwich.cli
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 783
    functionName: dulwich.cli.Pager._ensure_pager_started
    functionSourceFile: dulwich.cli
    functionUses: 4
    functionsReached:
    - subprocess.Popen
    - dulwich.cli.Pager._get_pager_command
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 852
    functionName: dulwich.cli.Pager.__enter__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 856
    functionName: dulwich.cli.Pager.__exit__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.cli.Pager.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - lines
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 866
    functionName: dulwich.cli.Pager.writelines
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - subprocess.Popen
    - <builtin>.len
    - dulwich.cli.Pager._ensure_pager_started
    - dulwich.cli.Pager.write
    - sys.stdout.write
    - <builtin>.isinstance
    - dulwich.cli.Pager._get_pager_command
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 874
    functionName: dulwich.cli.Pager.closed
    functionSourceFile: dulwich.cli
    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: 878
    functionName: dulwich.cli.Pager.readable
    functionSourceFile: dulwich.cli
    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: 882
    functionName: dulwich.cli.Pager.writable
    functionSourceFile: dulwich.cli
    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: 886
    functionName: dulwich.cli.Pager.seekable
    functionSourceFile: dulwich.cli
    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: 891
    functionName: dulwich.cli.Pager.buffer
    functionSourceFile: dulwich.cli
    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: 896
    functionName: dulwich.cli.Pager.encoding
    functionSourceFile: dulwich.cli
    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: 901
    functionName: dulwich.cli.Pager.errors
    functionSourceFile: dulwich.cli
    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: 905
    functionName: dulwich.cli.Pager.fileno
    functionSourceFile: dulwich.cli
    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: 909
    functionName: dulwich.cli.Pager.isatty
    functionSourceFile: dulwich.cli
    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: 914
    functionName: dulwich.cli.Pager.line_buffering
    functionSourceFile: dulwich.cli
    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: 919
    functionName: dulwich.cli.Pager.mode
    functionSourceFile: dulwich.cli
    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: 924
    functionName: dulwich.cli.Pager.name
    functionSourceFile: dulwich.cli
    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: 929
    functionName: dulwich.cli.Pager.newlines
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf2b42b0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 933
    functionName: dulwich.cli.Pager.read
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf2687c0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 937
    functionName: dulwich.cli.Pager.readline
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf268af0>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 941
    functionName: dulwich.cli.Pager.readlines
    functionSourceFile: dulwich.cli
    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 0x7febaf2689d0>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 945
    functionName: dulwich.cli.Pager.seek
    functionSourceFile: dulwich.cli
    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: 949
    functionName: dulwich.cli.Pager.tell
    functionSourceFile: dulwich.cli
    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 0x7febaf268790>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 953
    functionName: dulwich.cli.Pager.truncate
    functionSourceFile: dulwich.cli
    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: 957
    functionName: dulwich.cli.Pager.__iter__
    functionSourceFile: dulwich.cli
    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: 961
    functionName: dulwich.cli.Pager.__next__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 969
    functionName: dulwich.cli._StreamContextAdapter.__init__
    functionSourceFile: dulwich.cli
    functionUses: 10
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 977
    functionName: dulwich.cli._StreamContextAdapter.__enter__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 981
    functionName: dulwich.cli._StreamContextAdapter.__exit__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 990
    functionName: dulwich.cli._StreamContextAdapter.__getattr__
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 1
    IfCount: 13
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadac7040>
    - <ast.Constant object at 0x7febadac7610>
    argNames:
    - config
    - cmd_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 994
    functionName: dulwich.cli.get_pager
    functionSourceFile: dulwich.cli
    functionUses: 9
    functionsReached:
    - dulwich.cli.PagerBuffer.__init__
    - shutil.which
    - <builtin>.getattr
    - dulwich.cli.Pager.__init__
    - <builtin>.hasattr
    - sys.stdout.isatty
    - os.environ.get
    - cmd_name.encode
    - config.get
    - pager_value.decode
    - <builtin>.isinstance
    - core_pager.decode
    - dulwich.cli._StreamContextAdapter.__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: cmd_name.encode
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pager_value.decode
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: core_pager.decode
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shutil.which
    functionSourceFile: shutil
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1079
    functionName: dulwich.cli.disable_pager
    functionSourceFile: dulwich.cli
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1084
    functionName: dulwich.cli.enable_pager
    functionSourceFile: dulwich.cli
    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
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1092
    functionName: dulwich.cli.Command.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1100
    functionName: dulwich.cli.cmd_archive.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - dulwich.client.BundleClient.__init__
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.archive.tar_stream
    - dulwich.config.iter_instead_of
    - io.BytesIO.read
    - user_host.rsplit
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - orig_url.startswith
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.client._win32_url_to_path
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - parser.add_argument
    - tar.addfile
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - io.BytesIO.truncate
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - io.BytesIO.write
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.client.TCPGitClient.__init__
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - urllib.parse.urlparse._replace
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - parsed_args.committish.encode
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.porcelain.archive
    - dulwich.client.GitClient.__init__
    - replacement.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - config.get
    - outstream.write
    - blob.raw_length
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob.as_raw_string
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - entry_abspath.decode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - dulwich.archive._walk_tree
    - io.BytesIO
    - <builtin>.set
    - base_parsed._replace
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - struct.pack
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - f.readline
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - io.BytesIO.getvalue
    - urllib.parse.urlunparse.rstrip
    - f.write
    - typing.cast
    - typing.NewType
    - nturl2path.url2pathname
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - client.archive
    - dulwich.client.SSHGitClient.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - config.get_multivar
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - location.split
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - <builtin>.hasattr
    - tarfile.TarInfo
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.archive.ChunkedBytesIO.__init__
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.issubclass
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - urllib.parse.unquote
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 110
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 95
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1117
    functionName: dulwich.cli.cmd_archive.run.stdout_write
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stdout.buffer.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1120
    functionName: dulwich.cli.cmd_archive.run.stderr_write
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stderr.buffer.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.buffer.write
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parsed_args.committish.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.archive
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf26f9a0>
    - <ast.Name object at 0x7febaf26f0a0>
    - <ast.Name object at 0x7febaf26feb0>
    argNames:
    - repo
    - committish
    - outstream
    - errstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 744
    functionName: dulwich.porcelain.archive
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.archive.tar_stream
    - io.BytesIO.read
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - tar.addfile
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - io.BytesIO.truncate
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - io.BytesIO.write
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - outstream.write
    - blob.raw_length
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob.as_raw_string
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - entry_abspath.decode
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - dulwich.archive._walk_tree
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - struct.pack
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - io.BytesIO.getvalue
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - <builtin>.hasattr
    - tarfile.TarInfo
    - dulwich.repo.BaseRepo.__init__
    - dulwich.archive.ChunkedBytesIO.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1146
    functionName: dulwich.cli.cmd_add.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - pathlib.Path.is_absolute
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - future.result
    - <builtin>.any
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - name.startswith
    - subsection.encode
    - unstaged_path.decode
    - os.path.isfile
    - dulwich.index.blob_from_path_and_mode
    - dulwich.config._check_variable_name
    - executor.submit
    - <builtin>.len
    - index.iteritems
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - dulwich.objects.Blob.__init__
    - value.endswith
    - pathlib.Path.resolve
    - <builtin>.ord
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - os.path.relpath
    - tree_path.replace
    - c.isalnum
    - dulwich.porcelain.get_untracked_paths
    - stat.S_ISLNK
    - line.endswith
    - ignored.add
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - pat.endswith
    - relpaths.append
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - <builtin>.hasattr
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - resolved_path.is_dir
    - <builtin>.bytes
    - p.decode
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.add
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 10
    IfCount: 13
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2ce9a0>
    - <ast.Constant object at 0x7febaf2ceaf0>
    argNames:
    - repo
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1444
    functionName: dulwich.porcelain.add
    functionSourceFile: dulwich.porcelain
    functionUses: 7
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - pathlib.Path.is_absolute
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - future.result
    - <builtin>.any
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - name.startswith
    - subsection.encode
    - unstaged_path.decode
    - os.path.isfile
    - dulwich.index.blob_from_path_and_mode
    - dulwich.config._check_variable_name
    - executor.submit
    - index.iteritems
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - dulwich.objects.Blob.__init__
    - value.endswith
    - pathlib.Path.resolve
    - <builtin>.ord
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - os.path.relpath
    - tree_path.replace
    - c.isalnum
    - dulwich.porcelain.get_untracked_paths
    - stat.S_ISLNK
    - line.endswith
    - ignored.add
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - pat.endswith
    - relpaths.append
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - <builtin>.hasattr
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - resolved_path.is_dir
    - <builtin>.bytes
    - p.decode
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1167
    functionName: dulwich.cli.cmd_annotate.run
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.walk._CommitTimeQueue._push
    - dulwich.objectspec.parse_commit
    - dulwich.annotate.annotate_lines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - sys.stdout.isatty
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - todo.popleft
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - dulwich.walk.Walker._reorder
    - collections.defaultdict
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.walk._topo_reorder
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.walk.Walker.__iter__
    - commit_hash.decode
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - cmd_name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - pending.pop
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - itertools.chain
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.walk.Walker.__init__
    - outstream.write
    - config.get
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - log_entry.changes
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - os.fsencode
    - collections.deque
    - dulwich.walk.<lambda1>
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - todo.append
    - typing.cast.id.encode
    - dulwich.cli.get_pager
    - <builtin>.super
    - pager_value.decode
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - revs.append
    - dulwich.walk._CommitTimeQueue.__init__
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - todo.appendleft
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.cli.PagerBuffer.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - heapq.heappush
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.porcelain.annotate
    - whitespace.append
    - dulwich.config._parse_string
    - line.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.diff_tree.RenameDetector.__init__
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.annotate.update_lines
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - new_blob.splitlines
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - matcher.get_opcodes
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7feba9f47b20>
    argNames:
    - repo
    - path
    - committish
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7495
    functionName: dulwich.porcelain.annotate
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.walk._CommitTimeQueue._push
    - dulwich.annotate.annotate_lines
    - dulwich.objectspec.parse_commit
    - difflib.SequenceMatcher
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - todo.popleft
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - dulwich.walk.Walker._reorder
    - collections.defaultdict
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.walk._topo_reorder
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.walk.Walker.__iter__
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - pending.pop
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - itertools.chain
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.walk.Walker.__init__
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - log_entry.changes
    - <builtin>.reversed
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - os.fsencode
    - collections.deque
    - dulwich.walk.<lambda1>
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - todo.append
    - typing.cast.id.encode
    - <builtin>.super
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - revs.append
    - dulwich.walk._CommitTimeQueue.__init__
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - todo.appendleft
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - heapq.heappush
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.diff_tree.RenameDetector.__init__
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.annotate.update_lines
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - new_blob.splitlines
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - matcher.get_opcodes
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_hash.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: outstream.write
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1191
    functionName: dulwich.cli.cmd_blame.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.walk._CommitTimeQueue._push
    - dulwich.objectspec.parse_commit
    - dulwich.annotate.annotate_lines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - sys.stdout.isatty
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - dulwich.cli.cmd_annotate.run
    - todo.popleft
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - dulwich.walk.Walker._reorder
    - collections.defaultdict
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.walk._topo_reorder
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.walk.Walker.__iter__
    - commit_hash.decode
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - cmd_name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - pending.pop
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - itertools.chain
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.walk.Walker.__init__
    - outstream.write
    - config.get
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - log_entry.changes
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - os.fsencode
    - collections.deque
    - dulwich.walk.<lambda1>
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - todo.append
    - typing.cast.id.encode
    - dulwich.cli.get_pager
    - <builtin>.super
    - pager_value.decode
    - dulwich.walk.Walker.<lambda1>
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - revs.append
    - dulwich.walk._CommitTimeQueue.__init__
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - todo.appendleft
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.cli.PagerBuffer.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - heapq.heappush
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.porcelain.annotate
    - whitespace.append
    - dulwich.config._parse_string
    - line.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.diff_tree.RenameDetector.__init__
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.annotate.update_lines
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - new_blob.splitlines
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - matcher.get_opcodes
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1204
    functionName: dulwich.cli.cmd_rm.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - blob_normalizer.checkin_normalize
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - value.endswith
    - tree.lookup_path
    - pathlib.Path.resolve
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - dulwich.porcelain.remove
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - os.readlink
    - binascii.unhexlify
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - os.lstat
    - ret.extend
    - dulwich.object_store.tree_lookup_path
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febadf33310>
    - <ast.List object at 0x7febadf33070>
    - <ast.Constant object at 0x7febadf339a0>
    argNames:
    - repo
    - paths
    - cached
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1643
    functionName: dulwich.porcelain.remove
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - blob_normalizer.checkin_normalize
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - os.path.dirname
    - dulwich.objects.Blob.__init__
    - value.endswith
    - tree.lookup_path
    - pathlib.Path.resolve
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - os.lstat
    - ret.extend
    - dulwich.object_store.tree_lookup_path
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1223
    functionName: dulwich.cli.cmd_mv.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - destination.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.porcelain.mv
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - source.decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - os.rename
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - ret.extend
    - ret._values.setdefault
    - os.path.basename
    - sys.getfilesystemencoding
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 5
    IfCount: 13
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febad9073a0>
    argNames:
    - repo
    - source
    - destination
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1717
    functionName: dulwich.porcelain.mv
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - destination.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - source.decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - os.rename
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - ret.extend
    - ret._values.setdefault
    - os.path.basename
    - sys.getfilesystemencoding
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1246
    functionName: dulwich.cli.cmd_fetch_pack.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - dulwich.client.BundleClient.__init__
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - orig_url.startswith
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.client._win32_url_to_path
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - os.makedirs
    - <builtin>.range
    - value.decode
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.client.TCPGitClient.__init__
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - dulwich.client.get_transport_and_path
    - value.startswith
    - os.environ.get
    - urllib.parse.urlparse._replace
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - <builtin>.list
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.client.TCPGitClient.from_parsedurl
    - <builtin>.open
    - line.lstrip
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.client.GitClient.__init__
    - replacement.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - <builtin>.set
    - base_parsed._replace
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - f.readline
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - urllib.parse.urlunparse.rstrip
    - f.write
    - nturl2path.url2pathname
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.client.SSHGitClient.__init__
    - config.get_multivar
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - location.split
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - client.fetch
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.issubclass
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - urllib.parse.unquote
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadd06310>
    argNames:
    - refs
    - depth
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1263
    functionName: dulwich.cli.cmd_fetch_pack.run.determine_wants
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - typing.NewType
    - y.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: y.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.fetch
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 13
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1278
    functionName: dulwich.cli.cmd_fetch.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - stripped_refs.items
    - dulwich.client.BundleClient.__init__
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - n.startswith
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - location_group.add_argument
    - encoded_location.decode
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - ref.endswith
    - dulwich.repo.Repo.__init__
    - n.endswith
    - orig_url.startswith
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.client._win32_url_to_path
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - os.makedirs
    - <builtin>.range
    - value.decode
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - dulwich.porcelain.fetch
    - urllib.parse.urlparse
    - contextlib.closing
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.client.TCPGitClient.__init__
    - logger.info
    - gc.maybe_auto_gc
    - dulwich.config.ConfigDict.sections
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - value.startswith
    - urllib.parse.urlparse._replace
    - os.fspath
    - active_ref.startswith
    - parser.parse_args
    - path.decode
    - dulwich.config._check_section_name
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - remote_location.encode
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.client.GitClient.__init__
    - replacement.decode
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - remote_name.encode
    - dulwich.porcelain.get_remote_repo
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.refs.extract_tag_name
    - cs.startswith
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - <builtin>.set
    - base_parsed._replace
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - logger.warning
    - tag_group.add_argument
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - f.readline
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - dulwich.refs._import_remote_refs
    - urllib.parse.urlunparse.rstrip
    - f.write
    - typing.NewType
    - nturl2path.url2pathname
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.client.SSHGitClient.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - config.get_multivar
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - config.has_section
    - dulwich.client.LocalGitClient.from_parsedurl
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client._get_transport_and_path_from_url
    - parser.add_mutually_exclusive_group
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.get_branch_remote
    - location.split
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - client.fetch
    - value.lower
    - remotes.add
    - dulwich.repo.BaseRepo.__init__
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.issubclass
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.protocol.strip_peeled_refs
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - refs_container.import_refs
    - urllib.parse.unquote
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_mutually_exclusive_group
    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: location_group.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tag_group.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1324
    functionName: dulwich.cli.cmd_fetch.run.progress
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stdout.buffer.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remotes.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 20
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2b4100>
    - <ast.Attribute object at 0x7febaf2b4fa0>
    - <ast.Name object at 0x7febaf2b4640>
    - <ast.Constant object at 0x7febaf2b4a30>
    - <ast.Constant object at 0x7febaf2b4220>
    - <ast.Constant object at 0x7febaf2b4d90>
    - <ast.Constant object at 0x7febaf2b47c0>
    - <ast.Constant object at 0x7febaf2b4160>
    - <ast.Constant object at 0x7febaf2b4820>
    - <ast.Constant object at 0x7febaf2b4610>
    - <ast.Constant object at 0x7febaf2b4e50>
    - <ast.Constant object at 0x7febaf2b4040>
    - <ast.Constant object at 0x7febaf2b4460>
    - <ast.Constant object at 0x7febaf2b4670>
    - <ast.Constant object at 0x7febaf2b4970>
    - <ast.Constant object at 0x7febaf2b4f40>
    - <ast.Constant object at 0x7febaf2b40d0>
    - <ast.Constant object at 0x7febaf2b4f10>
    - <ast.Constant object at 0x7febaf2b4d30>
    argNames:
    - repo
    - remote_location
    - outstream
    - errstream
    - message
    - depth
    - prune
    - prune_tags
    - force
    - operation
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - username
    - password
    - key_filename
    - ssh_command
    - shallow_since
    - shallow_exclude
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4407
    functionName: dulwich.porcelain.fetch
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - stripped_refs.items
    - dulwich.client.BundleClient.__init__
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - n.startswith
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - encoded_location.decode
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - ref.endswith
    - orig_url.startswith
    - n.endswith
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.client._win32_url_to_path
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - os.makedirs
    - <builtin>.range
    - value.decode
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.client.TCPGitClient.__init__
    - gc.maybe_auto_gc
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - value.startswith
    - urllib.parse.urlparse._replace
    - active_ref.startswith
    - os.fspath
    - path.decode
    - dulwich.config._check_section_name
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - remote_location.encode
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.client.GitClient.__init__
    - replacement.decode
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - remote_name.encode
    - dulwich.porcelain.get_remote_repo
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.refs.extract_tag_name
    - cs.startswith
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - <builtin>.set
    - base_parsed._replace
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - f.readline
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - dulwich.refs._import_remote_refs
    - f.write
    - urllib.parse.urlunparse.rstrip
    - typing.NewType
    - nturl2path.url2pathname
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.client.SSHGitClient.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - config.get_multivar
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - config.has_section
    - dulwich.client.LocalGitClient.from_parsedurl
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.get_branch_remote
    - location.split
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - client.fetch
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.issubclass
    - <builtin>.bytearray
    - dulwich.protocol.strip_peeled_refs
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - refs_container.import_refs
    - urllib.parse.unquote
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1372
    functionName: dulwich.cli.cmd_for_each_ref.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - ref.split
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - <builtin>.zip
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - object_type.decode
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - fnmatch.fnmatchcase
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - pattern.split
    - dulwich.porcelain._noop_context_manager
    - r.get_object
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - ref.decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - r.get_refs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - sha.decode
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain.for_each_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febad91c3d0>
    - <ast.Constant object at 0x7febad91c730>
    argNames:
    - repo
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4503
    functionName: dulwich.porcelain.for_each_ref
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.split
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - <builtin>.zip
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - fnmatch.fnmatchcase
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - pattern.split
    - dulwich.porcelain._noop_context_manager
    - r.get_object
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - r.get_refs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_type.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1388
    functionName: dulwich.cli.cmd_fsck.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.porcelain.fsck
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - obj.decode
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - o.check
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6058
    functionName: dulwich.porcelain.fsck
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - o.check
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1403
    functionName: dulwich.cli.cmd_log.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.log.decode_wrapper
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - sys.stdout.isatty
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - p.encode
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - time.gmtime
    - commit.id.decode
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.porcelain.print_name_status
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - cmd_name.encode
    - <builtin>.enumerate
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - time.strftime
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - outstream.writelines
    - <builtin>.len
    - c.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - data.encode
    - path1.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - r.get_walker
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - commit.encoding.decode
    - entry.changes
    - dulwich.porcelain.log
    - dulwich.config._parse_section_header_line
    - dulwich.porcelain.commit_decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - dulwich.cli.get_pager
    - <builtin>.super
    - pager_value.decode
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - contents.decode
    - ret.append
    - f.read
    - path2.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.cli.PagerBuffer.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - dulwich.porcelain.print_commit
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.show_commit._StreamWrapper.write
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febae4a9af0>
    - <ast.Constant object at 0x7febae4a9e20>
    - <ast.Attribute object at 0x7febae4a9160>
    - <ast.Constant object at 0x7febae4a9700>
    - <ast.Constant object at 0x7febae4a9670>
    - <ast.Constant object at 0x7febae4a90d0>
    argNames:
    - repo
    - paths
    - outstream
    - max_entries
    - reverse
    - name_status
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2074
    functionName: dulwich.porcelain.log
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.porcelain.log.decode_wrapper
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - p.encode
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - commit.id.decode
    - time.gmtime
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.porcelain.print_name_status
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - time.strftime
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - outstream.writelines
    - <builtin>.len
    - c.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - path1.decode
    - data.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - r.get_walker
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - commit.encoding.decode
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - entry.changes
    - dulwich.config._parse_section_header_line
    - dulwich.porcelain.commit_decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.porcelain.show_commit._StreamWrapper.write
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - contents.decode
    - ret.append
    - f.read
    - path2.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.porcelain.print_commit
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 19
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1438
    functionName: dulwich.cli.cmd_diff.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - blob.splitlines
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - outstream.buffer.write
    - dulwich.objectspec.parse_commit
    - diff_data.split
    - difflib.SequenceMatcher
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - obj.set_raw_string
    - sys.stdout.isatty
    - parser.error
    - tree_path.decode
    - io.TextIOWrapper
    - counts.append
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - p.encode
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.patch.shortid
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.patch._get_sequence_matcher
    - dulwich.object_store.DiskObjectStore.__init__
    - <builtin>.float
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.diff.ColorizedDiffStream.is_available
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - io.BytesIO.writelines
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - index.paths
    - r.object_store.tree_changes
    - dulwich.repo.parse_graftpoints
    - repo.object_store.tree_changes
    - dulwich.patch._format_range_unified
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.patch.write_blob_diff.lines
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - cmd_name.encode
    - dulwich.index.commit_tree.add_tree
    - todo.extend
    - dulwich.porcelain.diff
    - dulwich.patch.write_blob_diff
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - logging.warning
    - insert.append
    - subsection.encode
    - os.path.isfile
    - dulwich.objects.Tree.__init__
    - dulwich.config._check_variable_name
    - <builtin>.len
    - index.iteritems
    - dulwich.objects.ShaFile.from_string
    - stat.S_IFMT
    - patiencediff.PatienceSequenceMatcher
    - dulwich.refs.local_tag_name
    - extension.lower
    - <builtin>.tuple
    - path.lstrip
    - stat.S_ISSOCK
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - repo.get_blob_normalizer
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - dulwich.diff.ColorizedDiffStream.write
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.diff.ColorizedDiffStream.flush
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.cli.cmd_diff.run._should_use_color
    - repo.open_index
    - obj.as_raw_string
    - config.get
    - <builtin>.str
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - _git_header_name.search
    - dulwich.diff.ColorizedDiffStream.writelines
    - rich.console.Console
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - importlib.util.find_spec
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - os.fsencode
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.diffstat.parse_patch
    - dulwich.objectspec.to_bytes
    - path.rsplit
    - difflib.SequenceMatcher.get_grouped_opcodes
    - cs.startswith
    - typing.cast.id.encode
    - path_to_check.startswith
    - dulwich.cli.get_pager
    - <builtin>.super
    - <builtin>.max
    - pager_value.decode
    - object_store.add_object
    - io.BytesIO
    - sys.exit
    - <builtin>.set
    - extra.append
    - subentry.in_path
    - dulwich.config.ConfigDict.items
    - logger.warning
    - ret.append
    - f.read
    - dulwich.cli.cmd_diff.run._create_output_stream
    - tofile.decode
    - object_store.iter_prefix
    - index.iterobjects
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - dulwich.index.commit_index
    - line.endswith
    - included_paths.copy
    - f.write
    - dulwich.diff.should_include_path
    - typing.NewType
    - nametypes.append
    - m.group
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - args.index
    - typing.cast.encode
    - dulwich.cli.PagerBuffer.__init__
    - todo.pop
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - line_bytes.decode
    - os.path.isdir
    - dulwich.patch.write_object_diff.lines
    - dulwich.patch.unified_diff_with_algorithm
    - dulwich.diff.ColorizedDiffStream.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.diff.diff_working_tree_to_index
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - dulwich.objects.Tree.add
    - delete.append
    - sys.stderr.write
    - os.lstat
    - dulwich.diff.diff_index_to_tree
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.index.commit_tree.build_tree
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - <builtin>.hasattr
    - value.lower
    - byte_paths.append
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - diff_buffer.getvalue
    - stat.S_ISFIFO
    - dulwich.diffstat.diffstat
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.diff.diff_working_tree_to_tree
    - <builtin>.bytearray
    - rich.console.Console.print
    - names.append
    - processed_paths.add
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.index.pathjoin
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.index
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1495
    functionName: dulwich.cli.cmd_diff.run._should_use_color
    functionSourceFile: dulwich.cli
    functionUses: 2
    functionsReached:
    - sys.stdout.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - outstream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1503
    functionName: dulwich.cli.cmd_diff.run._create_output_stream
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - logging.warning
    - dulwich.diff.ColorizedDiffStream.is_available
    - io.TextIOWrapper
    - dulwich.cli.cmd_diff.run._should_use_color
    - sys.stdout.isatty
    - importlib.util.find_spec
    - rich.console.Console
    - dulwich.diff.ColorizedDiffStream.__init__
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 549
    functionName: dulwich.diff.ColorizedDiffStream.is_available
    functionSourceFile: dulwich.diff
    functionUses: 4
    functionsReached:
    - importlib.util.find_spec
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - output_stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 562
    functionName: dulwich.diff.ColorizedDiffStream.__init__
    functionSourceFile: dulwich.diff
    functionUses: 4
    functionsReached:
    - io.TextIOWrapper
    - rich.console.Console
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 7
    IfCount: 11
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaf60f310>
    - <ast.Constant object at 0x7febaf60f3d0>
    - <ast.Constant object at 0x7febaf60f6a0>
    - <ast.Constant object at 0x7febaf60f940>
    - <ast.Constant object at 0x7febaf60f460>
    - <ast.Name object at 0x7febaf60f130>
    - <ast.Constant object at 0x7febaf60fd30>
    argNames:
    - repo
    - commit
    - commit2
    - staged
    - paths
    - outstream
    - diff_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2191
    functionName: dulwich.porcelain.diff
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - blob.splitlines
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - obj.set_raw_string
    - tree_path.decode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - p.encode
    - dulwich.repo.Repo.__init__
    - dulwich.patch.shortid
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.patch._get_sequence_matcher
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - io.BytesIO.writelines
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - index.paths
    - r.object_store.tree_changes
    - dulwich.repo.parse_graftpoints
    - repo.object_store.tree_changes
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.patch.write_blob_diff.lines
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.index.commit_tree.add_tree
    - todo.extend
    - dulwich.patch.write_blob_diff
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - index.iteritems
    - stat.S_IFMT
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - patiencediff.PatienceSequenceMatcher
    - dulwich.refs.local_tag_name
    - extension.lower
    - <builtin>.tuple
    - path.lstrip
    - stat.S_ISSOCK
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - repo.get_blob_normalizer
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - dulwich.diff.ColorizedDiffStream.write
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - repo.open_index
    - obj.as_raw_string
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.diff.ColorizedDiffStream.writelines
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.objectspec.to_bytes
    - path.rsplit
    - difflib.SequenceMatcher.get_grouped_opcodes
    - cs.startswith
    - typing.cast.id.encode
    - path_to_check.startswith
    - <builtin>.super
    - object_store.add_object
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.config.ConfigDict.items
    - logger.warning
    - ret.append
    - f.read
    - tofile.decode
    - object_store.iter_prefix
    - index.iterobjects
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - dulwich.index.commit_index
    - line.endswith
    - included_paths.copy
    - f.write
    - dulwich.diff.should_include_path
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - todo.pop
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - line_bytes.decode
    - dulwich.patch.write_object_diff.lines
    - os.path.isdir
    - dulwich.patch.unified_diff_with_algorithm
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.diff.diff_working_tree_to_index
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - dulwich.objects.Tree.add
    - os.lstat
    - dulwich.diff.diff_index_to_tree
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.index.commit_tree.build_tree
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - byte_paths.append
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - stat.S_ISFIFO
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.diff.diff_working_tree_to_tree
    - <builtin>.bytearray
    - rich.console.Console.print
    - processed_paths.add
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.index.pathjoin
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.error
    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: diff_buffer.getvalue
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: outstream.buffer.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 634
    functionName: dulwich.diff.ColorizedDiffStream.flush
    functionSourceFile: dulwich.diff
    functionUses: 3
    functionsReached:
    - line.startswith
    - rich.console.Console.print
    - <builtin>.hasattr
    - line_bytes.decode
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 9
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1593
    functionName: dulwich.cli.cmd_dump_pack.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - dulwich.pack.Pack.get_stored_checksum
    - name.decode
    - dulwich.objects.sha_to_hex
    - parser.parse_args
    - binascii.hexlify
    - <builtin>.len
    - logger.error
    - argparse.ArgumentParser
    - parser.add_argument
    - os.path.splitext
    - dulwich.pack.Pack.__init__
    - dulwich.pack.Pack.check
    - logger.info
    - obj.check
    - dulwich.pack.Pack.iterobjects
    - dulwich.pack.Pack.name
    - typing.NewType
    - dulwich.pack.Pack.__iter__
    - PackInflater.for_pack_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger.error
    functionSourceFile: <builtin>
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 1629
    functionName: dulwich.cli.cmd_dump_index.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - dulwich.pack.SHA1Reader.tell
    - <builtin>.all
    - hashlib.sha1
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.Index.update
    - os.path.exists
    - <builtin>.getattr
    - os.replace
    - os.remove
    - hashlib.sha1.update
    - dulwich.index.Index.read
    - os.fspath
    - dulwich.objects.sha_to_hex
    - parser.parse_args
    - dulwich.index.ResolveUndoExtension.__init__
    - ret.setdefault
    - dulwich.file._GitFile.abort
    - dulwich.file._GitFile.close
    - os.fdopen
    - binascii.hexlify
    - os.fsync
    - dulwich.index.ConflictedIndexEntry.__init__
    - os.open
    - dulwich.index.read_index_dict_with_version
    - dulwich.file._GitFile.tell
    - dulwich.index.read_index_header
    - dulwich.index.Index.__init__
    - <builtin>.len
    - struct.unpack
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.index.read_cache_time
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.index.ResolveUndoExtension.from_bytes
    - argparse.ArgumentParser
    - dulwich.file._GitFile.seek
    - dulwich.pack.SHA1Reader.read
    - os.close
    - enum.Enum.__init__
    - dulwich.pack.SHA1Reader.__init__
    - dulwich.index.TreeExtension.__init__
    - hashlib.sha1.digest
    - dulwich.index.UntrackedExtension.__init__
    - os.rename
    - <builtin>.open
    - parser.add_argument
    - extensions.append
    - dulwich.index.Index.__iter__
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.index.UntrackedExtension.from_bytes
    - dulwich.file.GitFile
    - <builtin>.range
    - dulwich.index.IndexExtension.from_raw
    - <builtin>.isinstance
    - dulwich.index.TreeExtension.from_bytes
    - <builtin>.bytes
    - tempfile.mkstemp
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - entries.items
    - typing.NewType
    - <builtin>.str
    - dulwich.index.Index.clear
    - dulwich.pack.SHA1Reader.seek
    - dulwich.index.read_cache_entry
    - dulwich.file._GitFile.read
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 13
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1648
    functionName: dulwich.cli.cmd_interpret_trailers.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stdin.buffer.read
    - result_message.endswith
    - message.decode
    - sys.stdout.buffer.write
    - c.isspace
    - parser.parse_args
    - dulwich.trailers.Trailer.__init__
    - dulwich.porcelain.interpret_trailers
    - t.value.strip
    - stripped.split
    - <builtin>.len
    - stripped.lstrip
    - argparse.ArgumentParser
    - line.rstrip
    - message.encode
    - value.strip
    - <builtin>.open
    - trailer.value.split
    - parser.add_argument
    - message_without_trailers.endswith
    - dulwich.trailers._parse_trailer_lines
    - f.read
    - dulwich.trailers.parse_trailers
    - <builtin>.range
    - message_without_trailers.encode
    - trailer_spec.split
    - text.splitlines
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.trailers._is_trailer_block
    - updated_trailers.append
    - dulwich.trailers.add_trailer_to_message
    - key.strip
    - result.insert
    - result.append
    - dulwich.trailers.format_trailers
    - <builtin>.str
    - message_lines.pop
    - line.split
    - <builtin>.enumerate
    - trailer_list.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: trailer_spec.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.strip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: trailer_list.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 11
    argDefaultValues: []
    argNames:
    - message
    - trailers
    - trim_empty
    - only_trailers
    - only_input
    - unfold
    - parse
    - where
    - if_exists
    - if_missing
    - separators
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1112
    functionName: dulwich.porcelain.interpret_trailers
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - result_message.endswith
    - message.decode
    - <builtin>.enumerate
    - c.isspace
    - dulwich.trailers.Trailer.__init__
    - t.value.strip
    - <builtin>.len
    - stripped.lstrip
    - line.rstrip
    - message.encode
    - trailer.value.split
    - message_without_trailers.endswith
    - dulwich.trailers._parse_trailer_lines
    - <builtin>.range
    - dulwich.trailers.parse_trailers
    - message_without_trailers.encode
    - text.splitlines
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.trailers._is_trailer_block
    - updated_trailers.append
    - dulwich.trailers.add_trailer_to_message
    - result.insert
    - result.append
    - dulwich.trailers.format_trailers
    - <builtin>.str
    - message_lines.pop
    - line.split
    - stripped.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1758
    functionName: dulwich.cli.cmd_stripspace.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sys.stdin.buffer.read
    - dulwich.stripspace.stripspace
    - line.strip
    - dulwich.porcelain.stripspace
    - result.endswith
    - sys.stdout.buffer.write
    - parser.parse_args
    - processed_lines.append
    - argparse.ArgumentParser
    - line.rstrip
    - <builtin>.open
    - line.lstrip
    - parser.add_argument
    - text.encode
    - f.read
    - collapsed_lines.append
    - dulwich.stripspace.stripspace.is_blank
    - text.splitlines
    - <builtin>.isinstance
    - line.endswith
    - processed_lines.pop
    - comment_char.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - text
    - strip_comments
    - comment_char
    - comment_lines
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1214
    functionName: dulwich.porcelain.stripspace
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - line.lstrip
    - dulwich.stripspace.stripspace
    - text.encode
    - line.endswith
    - processed_lines.append
    - line.strip
    - processed_lines.pop
    - comment_char.encode
    - result.endswith
    - line.rstrip
    - collapsed_lines.append
    - text.splitlines
    - dulwich.stripspace.stripspace.is_blank
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 8
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1811
    functionName: dulwich.cli.cmd_column.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - item.ljust
    - part.strip
    - dulwich.cli.format_columns
    - lines.append
    - <builtin>.min
    - mode.split
    - parser.parse_args
    - sys.stdin.rstrip
    - <builtin>.len
    - argparse.ArgumentParser
    - <builtin>.max
    - sys.stdout.write
    - <builtin>.sum
    - os.get_terminal_size
    - parser.add_argument
    - <builtin>.range
    - dulwich.cli.detect_terminal_width
    - col_widths.append
    - line_parts.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdin.rstrip
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1874
    functionName: dulwich.cli.cmd_init.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - backends.append
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - os.getcwd
    - dulwich.config.StackedConfig.default_backends
    - dulwich.config._find_git_in_win_path
    - dulwich.worktree.WorkTreeContainer.__init__
    - platform.machine
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - paths.append
    - os.mkdir
    - os.environ.get
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - parser.parse_args
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.porcelain.init
    - backend.get
    - line.startswith
    - <builtin>.int
    - dulwich.config.StackedConfig.default
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - ret.refs.set_symbolic_ref
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - dulwich.repo.Repo.init
    - <builtin>.super
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - dulwich.repo.Repo.init_bare
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - ctypes.WINFUNCTYPE
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - ret._init_files
    - os.path.isdir
    - dulwich.object_store.DiskObjectStore.init
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.Repo._init_maybe_bare
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - os.chmod
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo._set_filesystem_hidden
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getcwd
    functionSourceFile: os
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf0556d0>
    argNames:
    - path
    - bare
    - symlinks
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1275
    functionName: dulwich.porcelain.init
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - backends.append
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - dulwich.config._find_git_in_win_path
    - dulwich.worktree.WorkTreeContainer.__init__
    - platform.machine
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - paths.append
    - os.mkdir
    - os.environ.get
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - contextlib.suppress
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.config.StackedConfig.default
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - ret.refs.set_symbolic_ref
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - dulwich.repo.Repo.init
    - <builtin>.super
    - os.path.split
    - <builtin>.set
    - dulwich.config.get_xdg_config_home_path
    - dulwich.repo.Repo.init_bare
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - ctypes.WINFUNCTYPE
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - ret._init_files
    - os.path.isdir
    - dulwich.object_store.DiskObjectStore.init
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - winreg.OpenKey
    - ret.extend
    - ret._values.setdefault
    - dulwich.repo.Repo._init_maybe_bare
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - os.chmod
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo._set_filesystem_hidden
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 12
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 1895
    functionName: dulwich.cli.cmd_clone.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.client.BundleClient.__init__
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.index.write_cache_time
    - <builtin>.range
    - new_rename_changes.append
    - urllib.parse.urlparse
    - contextlib.closing
    - r.controldir
    - dulwich.pack.SHA1Reader.check_sha
    - platform.machine
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - logger.debug
    - todo.extend
    - os.fspath
    - dulwich.porcelain.submodule_init
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - subsection.encode
    - threading.Lock
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - os.listdir
    - dulwich.config.StackedConfig.default
    - dulwich.index.build_file_from_blob
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - client.clone
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - dulwich.file._GitFile.seek
    - base_parsed._replace
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - os.readlink
    - dulwich._objects.sorted_tree_items
    - filter_path.startswith
    - dulwich.index._encode_varint
    - st.__class__
    - dulwich.index._check_symlink_matches
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - dulwich.index.detect_case_only_renames
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - logging.exception
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - hashlib.sha1.digest
    - branch.decode
    - typing.cast.id.startswith
    - location.split
    - dulwich.porcelain.submodule_update
    - dulwich.repo.read_gitfile
    - client.fetch
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.issubclass
    - dulwich.index._transition_to_submodule
    - entries.items
    - dulwich.submodule.ensure_submodule_placeholder
    - urllib.parse.unquote
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - backends.append
    - dulwich.objectspec.parse_commit
    - dulwich.config.iter_instead_of
    - dulwich.filters.ProcessFilterDriver.__init__
    - user_host.rsplit
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - orig_url.startswith
    - argparse.ArgumentParser
    - os.close
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.protocol.agent_string
    - dulwich.refs.local_branch_name
    - value.decode
    - value.this.serialize
    - os.path.abspath
    - needle.decode
    - <builtin>.sorted
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.StackedConfig.default_backends
    - dulwich.pack.SHA1Writer.tell
    - dulwich.index.Index.write
    - <builtin>.map
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - filter_name.decode
    - dulwich.index.Index.update
    - os.replace
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - os.mkdir
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - parser.parse_args
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.diff_tree.walk_trees
    - dulwich.index.write_cache_entry
    - dulwich.objects.ShaFile.as_raw_string
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.diff_tree.tree_changes
    - dulwich.client.GitClient.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - index.commit
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - dulwich.index.read_cache_entry
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - source.decode
    - dulwich.filters.FilterRegistry.get_driver
    - path.startswith
    - smudge_cmd_raw.decode
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - errstream.write
    - subprocess.run
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - sub_repo.index_path
    - sub_config.write_to_path
    - <builtin>.isinstance
    - r.get_config
    - os.path.relpath
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - submodule_name.encode
    - dulwich.filters.CompositeFilterDriver.__init__
    - f.write
    - urllib.parse.urlunparse.rstrip
    - typing.cast
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.config._strip_comments
    - dulwich.client.SSHGitClient.__init__
    - current_target.encode
    - <builtin>.getattr
    - config.get_multivar
    - <builtin>.min
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - whitespace.append
    - path_segments.encode
    - dulwich.objects.Tree._serialize
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.porcelain.reset
    - typing.cast.startswith
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - kwargs.items
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - dulwich.object_store.iter_tree_contents
    - dulwich.filters.FilterRegistry._create_from_config
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - ret.setdefault
    - dulwich.porcelain.clone
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - warnings.warn
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - parser.add_argument
    - extensions.append
    - dulwich.repo.Repo.get_config
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - extension.to_bytes
    - index.clear
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.index.write_index_dict
    - dulwich.client.TCPGitClient.__init__
    - hashlib.sha1
    - commondir.read
    - urllib.parse.urlparse._replace
    - value.startswith
    - os.remove
    - meaningful_extensions.append
    - dulwich.config._check_section_name
    - dulwich.config.StackedConfig.__init__
    - path.decode
    - dulwich.diff_tree._skip_tree
    - config.sections
    - dulwich.objects.Tree.__init__
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index._check_file_matches
    - urllib.parse.urlunparse
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.submodule.iter_cached_submodules
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.client.LocalGitClient.__init__
    - os.path.dirname
    - config_ssh_command.decode
    - dulwich.objects.serialize_tree
    - env_action.encode
    - line.startswith
    - logging.debug
    - dulwich.index.index_entry_from_stat
    - backend.get
    - dulwich.objectspec.parse_commit.dereference_tag
    - config.get
    - value.ancestor.serialize
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - config.write_to_path
    - section_dict.items
    - dulwich.objectspec.to_bytes
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - sub_config.set
    - blob_obj.as_raw_string
    - extra.append
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - subentry.in_path
    - dulwich.index._transition_to_file
    - f.read
    - tree_path.replace
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - nturl2path.url2pathname
    - dulwich.config.read_submodules
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - <builtin>.divmod
    - os.kill
    - dulwich.config._parse_string
    - headers.append
    - dulwich.filters.CompositeFilterDriver.smudge
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.objects.Commit._serialize
    - os.chmod
    - r.head
    - dulwich.protocol.capability_agent
    - dulwich.porcelain._filter_transport_kwargs
    - dulwich.objects.Blob._serialize
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.file._GitFile.read
    - filter_driver.smudge
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - sub_repo.get_config
    - os.path.join
    - shutil.rmtree
    - dulwich.index.write_index
    - os.unlink
    - branch.encode
    - dulwich.client._win32_url_to_path
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - submodules_to_update.append
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - ext.to_bytes
    - attributes.get
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - dulwich.config._find_git_in_win_path
    - result.append
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.pack.SHA1Writer.write
    - os.path.expanduser
    - os.path.exists
    - paths.append
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - <builtin>.ord
    - value.endswith
    - dulwich.index.validate_path_element_hfs
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - replacement.decode
    - <builtin>.int
    - typing.cast.id.hex
    - repo.open_index
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - entries_list.append
    - dulwich.index._normalize_path_element_default
    - sub_repo.close
    - url_value.decode
    - <builtin>.super
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - dulwich.config.parse_submodules
    - <builtin>.set
    - value.other.serialize
    - blob_obj.raw_length
    - contents.decode
    - struct.pack
    - object_store.iter_prefix
    - f.readline
    - dulwich.pack.SHA1Writer.__init__
    - clean_cmd_raw.decode
    - filter_spec.encode
    - line.endswith
    - value.split
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - source.split
    - unicodedata.normalize
    - dulwich.index.Index.read
    - os.open
    - value.serialize
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - winreg.OpenKey
    - dulwich.client.BundleClient._is_bundle_file
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.IndexExtension.from_raw
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - treeish.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 7
    IfCount: 12
    argCount: 14
    argDefaultValues:
    - <ast.Constant object at 0x7febae4e8eb0>
    - <ast.Constant object at 0x7febae4e8730>
    - <ast.Constant object at 0x7febae4e8f10>
    - <ast.Name object at 0x7febae4e8df0>
    - <ast.Constant object at 0x7febae4e8bb0>
    - <ast.Constant object at 0x7febae4e82b0>
    - <ast.Constant object at 0x7febae4e8c40>
    - <ast.Constant object at 0x7febae4e8040>
    - <ast.Constant object at 0x7febae4e83d0>
    - <ast.Constant object at 0x7febae4e8580>
    - <ast.Constant object at 0x7febae4e8ee0>
    - <ast.Constant object at 0x7febae4e80a0>
    argNames:
    - source
    - target
    - bare
    - checkout
    - errstream
    - outstream
    - origin
    - depth
    - branch
    - config
    - filter_spec
    - protocol_version
    - recurse_submodules
    - 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
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 1322
    functionName: dulwich.porcelain.clone
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.client.BundleClient.__init__
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.index.write_cache_time
    - <builtin>.range
    - new_rename_changes.append
    - urllib.parse.urlparse
    - contextlib.closing
    - r.controldir
    - dulwich.pack.SHA1Reader.check_sha
    - platform.machine
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - logger.debug
    - todo.extend
    - os.fspath
    - dulwich.porcelain.submodule_init
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - subsection.encode
    - threading.Lock
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - os.listdir
    - dulwich.config.StackedConfig.default
    - dulwich.index.build_file_from_blob
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - client.clone
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - dulwich.file._GitFile.seek
    - base_parsed._replace
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - os.readlink
    - dulwich._objects.sorted_tree_items
    - filter_path.startswith
    - dulwich.index._encode_varint
    - st.__class__
    - dulwich.index._check_symlink_matches
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - dulwich.index.detect_case_only_renames
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - hashlib.sha1.digest
    - branch.decode
    - typing.cast.id.startswith
    - location.split
    - dulwich.porcelain.submodule_update
    - dulwich.repo.read_gitfile
    - client.fetch
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.issubclass
    - dulwich.index._transition_to_submodule
    - entries.items
    - dulwich.submodule.ensure_submodule_placeholder
    - urllib.parse.unquote
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - backends.append
    - dulwich.objectspec.parse_commit
    - dulwich.config.iter_instead_of
    - dulwich.filters.ProcessFilterDriver.__init__
    - user_host.rsplit
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - orig_url.startswith
    - os.close
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.protocol.agent_string
    - dulwich.refs.local_branch_name
    - value.decode
    - value.this.serialize
    - os.path.abspath
    - needle.decode
    - <builtin>.sorted
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.StackedConfig.default_backends
    - dulwich.pack.SHA1Writer.tell
    - dulwich.index.Index.write
    - <builtin>.map
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - filter_name.decode
    - dulwich.index.Index.update
    - os.replace
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - os.mkdir
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.diff_tree.walk_trees
    - dulwich.index.write_cache_entry
    - dulwich.objects.ShaFile.as_raw_string
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.diff_tree.tree_changes
    - dulwich.client.GitClient.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - index.commit
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - dulwich.index.read_cache_entry
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - source.decode
    - dulwich.filters.FilterRegistry.get_driver
    - path.startswith
    - smudge_cmd_raw.decode
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - errstream.write
    - subprocess.run
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - sub_repo.index_path
    - sub_config.write_to_path
    - <builtin>.isinstance
    - r.get_config
    - os.path.relpath
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - submodule_name.encode
    - dulwich.filters.CompositeFilterDriver.__init__
    - f.write
    - urllib.parse.urlunparse.rstrip
    - typing.cast
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.config._strip_comments
    - dulwich.client.SSHGitClient.__init__
    - current_target.encode
    - <builtin>.getattr
    - config.get_multivar
    - <builtin>.min
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - whitespace.append
    - path_segments.encode
    - dulwich.objects.Tree._serialize
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.porcelain.reset
    - typing.cast.startswith
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - kwargs.items
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - dulwich.object_store.iter_tree_contents
    - dulwich.filters.FilterRegistry._create_from_config
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - ret.setdefault
    - dulwich.porcelain.clone
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - warnings.warn
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - config.get_boolean
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - extension.to_bytes
    - index.clear
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.index.write_index_dict
    - dulwich.client.TCPGitClient.__init__
    - hashlib.sha1
    - commondir.read
    - urllib.parse.urlparse._replace
    - value.startswith
    - os.remove
    - meaningful_extensions.append
    - dulwich.config._check_section_name
    - dulwich.config.StackedConfig.__init__
    - path.decode
    - dulwich.diff_tree._skip_tree
    - config.sections
    - dulwich.objects.Tree.__init__
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index._check_file_matches
    - urllib.parse.urlunparse
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.submodule.iter_cached_submodules
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.client.LocalGitClient.__init__
    - os.path.dirname
    - config_ssh_command.decode
    - dulwich.objects.serialize_tree
    - env_action.encode
    - line.startswith
    - logging.debug
    - dulwich.index.index_entry_from_stat
    - backend.get
    - dulwich.objectspec.parse_commit.dereference_tag
    - config.get
    - value.ancestor.serialize
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - config.write_to_path
    - section_dict.items
    - dulwich.objectspec.to_bytes
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - sub_config.set
    - blob_obj.as_raw_string
    - extra.append
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - subentry.in_path
    - dulwich.index._transition_to_file
    - f.read
    - tree_path.replace
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - nturl2path.url2pathname
    - dulwich.config.read_submodules
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - <builtin>.divmod
    - os.kill
    - dulwich.config._parse_string
    - headers.append
    - dulwich.filters.CompositeFilterDriver.smudge
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.objects.Commit._serialize
    - os.chmod
    - r.head
    - dulwich.protocol.capability_agent
    - dulwich.porcelain._filter_transport_kwargs
    - dulwich.objects.Blob._serialize
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.file._GitFile.read
    - filter_driver.smudge
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - sub_repo.get_config
    - os.path.join
    - shutil.rmtree
    - dulwich.index.write_index
    - os.unlink
    - branch.encode
    - dulwich.client._win32_url_to_path
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - submodules_to_update.append
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - ext.to_bytes
    - attributes.get
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - dulwich.config._find_git_in_win_path
    - result.append
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.pack.SHA1Writer.write
    - os.path.expanduser
    - os.path.exists
    - paths.append
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - <builtin>.ord
    - value.endswith
    - dulwich.index.validate_path_element_hfs
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - replacement.decode
    - <builtin>.int
    - typing.cast.id.hex
    - repo.open_index
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - entries_list.append
    - dulwich.index._normalize_path_element_default
    - sub_repo.close
    - url_value.decode
    - <builtin>.super
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - dulwich.config.parse_submodules
    - <builtin>.set
    - value.other.serialize
    - blob_obj.raw_length
    - contents.decode
    - struct.pack
    - object_store.iter_prefix
    - f.readline
    - dulwich.pack.SHA1Writer.__init__
    - clean_cmd_raw.decode
    - filter_spec.encode
    - line.endswith
    - value.split
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - source.split
    - unicodedata.normalize
    - dulwich.index.Index.read
    - os.open
    - value.serialize
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - winreg.OpenKey
    - dulwich.client.BundleClient._is_bundle_file
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.IndexExtension.from_raw
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - treeish.decode
    linkageType: pythonLinkage
    raised:
    - ValueError
    - Error
    returnType: N/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.exception
    functionSourceFile: logging
    functionUses: 2
    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 0x7febaf94e130>
    - <ast.Constant object at 0x7febaf94e640>
    argNames:
    - initial_message
    - repo
    - commit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1956
    functionName: dulwich.cli._get_commit_message_with_template
    functionSourceFile: dulwich.cli
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - line.strip
    - content.split
    - f.write
    - ref_path.startswith
    - f.read
    - tempfile.NamedTemporaryFile
    - os.environ.get
    - repo.refs.follow
    - template.endswith
    - os.unlink
    - dulwich.cli.launch_editor
    - subprocess.run
    linkageType: pythonLinkage
    raised:
    - CommitMessageError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: template.endswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.refs.follow
    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: ref_path.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 26
    ICount: 28
    IfCount: 18
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 2005
    functionName: dulwich.cli.cmd_config.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config._escape_value
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - key.decode
    - dulwich.config.ConfigDict.sections
    - parser.print_help
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - parsed_args.key.split
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - s.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.config.ConfigDict.set
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.set
    - config._values.get
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.config.ConfigDict.get_multivar
    - section_dict.set
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - values.items
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - value.replace
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - s.encode
    - value.encode
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.config.ConfigFile.write_to_path
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.config._format_string
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parsed_args.key.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config._values.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: parser.print_help
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 2221
    functionName: dulwich.cli.cmd_commit.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - email.utils.parsedate_tz
    - pathlib.Path.is_absolute
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - re.match
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - re.search
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - encoding.decode
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - future.result
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - modified_files.append
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.porcelain.get_user_timezones
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - match.groups
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - author.encode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - name.startswith
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - unstaged_path.decode
    - dulwich.porcelain.parse_timezone_format
    - <builtin>.len
    - executor.submit
    - index.iteritems
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dirnames.remove
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - committer.encode
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.porcelain.commit
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - dulwich.objects.parse_timezone
    - section_dict.items
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.abs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - tz_str.split
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - content.endswith
    - dulwich.porcelain.path_to_tree_path
    - c.isalnum
    - tree_path.replace
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.porcelain.get_untracked_paths
    - line.endswith
    - ignored.add
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - time.localtime
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - pat.endswith
    - relpaths.append
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - dulwich.config._parse_string
    - pathlib.Path
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - logging.exception
    - line.rstrip
    - os.lstat
    - ret.extend
    - r.refs.set_if_equals
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - r.head
    - resolved_path.is_dir
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - p.decode
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.add
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - commit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2248
    functionName: dulwich.cli.cmd_commit.run.get_amend_message
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - repo.head
    - line.strip
    - content.split
    - f.write
    - ref_path.startswith
    - f.read
    - tempfile.NamedTemporaryFile
    - os.environ.get
    - repo.refs.follow
    - template.endswith
    - dulwich.cli._get_commit_message_with_template
    - os.unlink
    - <builtin>.isinstance
    - dulwich.cli.launch_editor
    - subprocess.run
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.head
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - commit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 2264
    functionName: dulwich.cli.cmd_commit.run.get_regular_message
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - line.strip
    - content.split
    - f.write
    - ref_path.startswith
    - f.read
    - tempfile.NamedTemporaryFile
    - os.environ.get
    - repo.refs.follow
    - template.endswith
    - dulwich.cli._get_commit_message_with_template
    - os.unlink
    - dulwich.cli.launch_editor
    - subprocess.run
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 5
    IfCount: 15
    argCount: 12
    argDefaultValues:
    - <ast.Constant object at 0x7febaefb3f40>
    - <ast.Constant object at 0x7febaefb3cd0>
    - <ast.Constant object at 0x7febadab5bb0>
    - <ast.Constant object at 0x7febadab5a90>
    - <ast.Constant object at 0x7febadab5dc0>
    - <ast.Constant object at 0x7febadab5d00>
    - <ast.Constant object at 0x7febadab5730>
    - <ast.Constant object at 0x7febadab5430>
    - <ast.Constant object at 0x7febadab5520>
    - <ast.Constant object at 0x7febadab5910>
    - <ast.Constant object at 0x7febadab55e0>
    - <ast.Constant object at 0x7febadab51c0>
    argNames:
    - repo
    - message
    - author
    - author_timezone
    - committer
    - commit_timezone
    - encoding
    - no_verify
    - signoff
    - all
    - amend
    - sign
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 947
    functionName: dulwich.porcelain.commit
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - email.utils.parsedate_tz
    - pathlib.Path.is_absolute
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - re.match
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - re.search
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - encoding.decode
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - future.result
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - modified_files.append
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.porcelain.get_user_timezones
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - match.groups
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - author.encode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - name.startswith
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - unstaged_path.decode
    - dulwich.porcelain.parse_timezone_format
    - <builtin>.len
    - executor.submit
    - index.iteritems
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dirnames.remove
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - committer.encode
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - dulwich.objects.parse_timezone
    - section_dict.items
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.abs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - tz_str.split
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - content.endswith
    - dulwich.porcelain.path_to_tree_path
    - c.isalnum
    - tree_path.replace
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.porcelain.get_untracked_paths
    - line.endswith
    - ignored.add
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - time.localtime
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - pat.endswith
    - relpaths.append
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - dulwich.config._parse_string
    - pathlib.Path
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - r.refs.set_if_equals
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - r.head
    - resolved_path.is_dir
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - p.decode
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.add
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2282
    functionName: dulwich.cli.cmd_commit_tree.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - message.encode
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - r.get_worktree
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.porcelain.commit_tree
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf331460>
    - <ast.Constant object at 0x7febaf3312b0>
    - <ast.Constant object at 0x7febaf331730>
    argNames:
    - repo
    - tree
    - message
    - author
    - committer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1088
    functionName: dulwich.porcelain.commit_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - message.encode
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - r.get_worktree
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2298
    functionName: dulwich.cli.cmd_update_server_info.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.porcelain.update_server_info
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - repo._put_named_file
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - _TYPE_MAP.get
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - typing.cast.get_refs
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.server.update_server_info
    - dulwich.server.generate_info_refs
    - dulwich.config.ConfigDict.items
    - dulwich.objects.object_class
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - dulwich.object_store.peel_sha
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.server.generate_objects_info_packs
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.protocol.write_info_refs
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6c40>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 768
    functionName: dulwich.porcelain.update_server_info
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - repo._put_named_file
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - _TYPE_MAP.get
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - typing.cast.get_refs
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.server.update_server_info
    - dulwich.server.generate_info_refs
    - dulwich.config.ConfigDict.items
    - dulwich.objects.object_class
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - dulwich.object_store.peel_sha
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.server.generate_objects_info_packs
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.protocol.write_info_refs
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2310
    functionName: dulwich.cli.cmd_symbolic_ref.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - repo.refs.read_ref
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - target.startswith
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - target.decode
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - parsed_args.ref.encode
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - parsed_args.name.encode
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - repo.refs.set_symbolic_ref
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parsed_args.name.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parsed_args.ref.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.refs.set_symbolic_ref
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.refs.read_ref
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2359
    functionName: dulwich.cli.cmd_pack_refs.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.porcelain.pack_refs
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - repo_obj.refs.pack_refs
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febadba4490>
    argNames:
    - repo
    - all
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 813
    functionName: dulwich.porcelain.pack_refs
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - repo_obj.refs.pack_refs
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 2378
    functionName: dulwich.cli.cmd_var.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - repo_obj.get_config_stack
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - parser.print_help
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.porcelain.var
    - cs.startswith
    - <builtin>.super
    - dulwich.porcelain._get_variables
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - variable_callbacks.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - variables.items
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.porcelain.var_list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febaf044eb0>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 915
    functionName: dulwich.porcelain.var_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - repo_obj.get_config_stack
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.porcelain._get_variables
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - variable_callbacks.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: variables.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf044610>
    - <ast.Constant object at 0x7febaf0447c0>
    argNames:
    - repo
    - variable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 927
    functionName: dulwich.porcelain.var
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - repo_obj.get_config_stack
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.porcelain._get_variables
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - variable_callbacks.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2423
    functionName: dulwich.cli.cmd_show.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.porcelain.show_object
    - handlers.get
    - time.time
    - dulwich.cli.cmd_show.run._should_use_color
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - sys.stdout.isatty
    - io.TextIOWrapper
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.diff.ColorizedDiffStream.is_available
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.porcelain.show
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - cmd_name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - logging.warning
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_str.replace
    - time_spec.strip
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - config.get
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - importlib.util.find_spec
    - dulwich.repo.Repo.commondir
    - rich.console.Console
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.cli.get_pager
    - <builtin>.super
    - datetime.datetime.strptime
    - pager_value.decode
    - <builtin>.set
    - dulwich.cli.cmd_show.run._create_output_stream
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - typing.cast.encode
    - dulwich.cli.PagerBuffer.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - dt.timestamp
    - dulwich.diff.ColorizedDiffStream.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - dulwich.repo.parse_graftpoints
    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: 2440
    functionName: dulwich.cli.cmd_show.run._should_use_color
    functionSourceFile: dulwich.cli
    functionUses: 2
    functionsReached:
    - sys.stdout.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - outstream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2448
    functionName: dulwich.cli.cmd_show.run._create_output_stream
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - logging.warning
    - dulwich.diff.ColorizedDiffStream.is_available
    - io.TextIOWrapper
    - dulwich.cli.cmd_show.run._should_use_color
    - sys.stdout.isatty
    - importlib.util.find_spec
    - rich.console.Console
    - dulwich.diff.ColorizedDiffStream.__init__
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.TextIOWrapper
    functionSourceFile: io
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf501f10>
    - <ast.Constant object at 0x7febaf501340>
    - <ast.Attribute object at 0x7febaf5012b0>
    - <ast.Name object at 0x7febaf5016a0>
    argNames:
    - repo
    - objects
    - outstream
    - default_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2123
    functionName: dulwich.porcelain.show
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.porcelain.show_object
    - handlers.get
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 17
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2482
    functionName: dulwich.cli.cmd_show_ref.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - ref.split
    - k.startswith
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - repo.get_refs
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - result.append
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - prefixes.append
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - pattern.split
    - dulwich.porcelain._noop_context_manager
    - r.get_object
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - ref.decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - r.get_refs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - sha.decode
    - whitespace.append
    - dulwich.refs.filter_ref_prefix
    - filtered_refs.items
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.porcelain.show_ref
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.get_refs
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 5
    IfCount: 12
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febae44dc70>
    - <ast.Constant object at 0x7febae44d7f0>
    - <ast.Constant object at 0x7febae44d820>
    - <ast.Constant object at 0x7febae44dd60>
    - <ast.Constant object at 0x7febae44d3d0>
    - <ast.Constant object at 0x7febae44dee0>
    - <ast.Constant object at 0x7febae44d970>
    argNames:
    - repo
    - patterns
    - head
    - branches
    - tags
    - dereference
    - verify
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4556
    functionName: dulwich.porcelain.show_ref
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.split
    - k.startswith
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - result.append
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - prefixes.append
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - pattern.split
    - dulwich.porcelain._noop_context_manager
    - r.get_object
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - r.get_refs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.refs.filter_ref_prefix
    - filtered_refs.items
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 13
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2614
    functionName: dulwich.cli.cmd_show_branch.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - k.startswith
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - independent_commits.append
    - branch_commits.append
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - markers.append
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - next_lcas.extend
    - branch_contains.append
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.lru_cache.LRUCache._remove_node
    - branch_refs.items
    - dulwich.refs.shorten_ref_name
    - output_lines.append
    - dulwich.graph.independent
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.porcelain.show_branch.collect_commits
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - visited.add
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.repo.Repo.commondir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - cands.append
    - <builtin>.next
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.porcelain.show_branch.mark_reachable
    - cs.startswith
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - r.get_refs
    - parents_provider.get_parents
    - <builtin>.set
    - all_commits.items
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - content.endswith
    - commit.message.decode
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - reachable.add
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - sha.decode
    - whitespace.append
    - dulwich.refs.filter_ref_prefix
    - dulwich.config._parse_string
    - dulwich.porcelain.show_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - <builtin>.hasattr
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.graph.find_octopus_base
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 26
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 37
    ICount: 15
    IfCount: 26
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febadd4c2e0>
    - <ast.Constant object at 0x7febadd4caf0>
    - <ast.Constant object at 0x7febadd4cb80>
    - <ast.Constant object at 0x7febadd4c670>
    - <ast.Constant object at 0x7febadd4ca90>
    - <ast.Constant object at 0x7febaf03b5b0>
    - <ast.Constant object at 0x7febaf03b100>
    - <ast.Constant object at 0x7febaf03b160>
    - <ast.Constant object at 0x7febaf03b4c0>
    - <ast.Constant object at 0x7febaf03b700>
    argNames:
    - repo
    - branches
    - all_branches
    - remotes
    - current
    - topo_order
    - more
    - list_branches
    - independent_branches
    - merge_base
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4659
    functionName: dulwich.porcelain.show_branch
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - k.startswith
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - independent_commits.append
    - branch_commits.append
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - markers.append
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - next_lcas.extend
    - branch_contains.append
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.lru_cache.LRUCache._remove_node
    - branch_refs.items
    - dulwich.refs.shorten_ref_name
    - output_lines.append
    - dulwich.graph.independent
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.porcelain.show_branch.collect_commits
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - visited.add
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.repo.Repo.commondir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - cands.append
    - <builtin>.next
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.porcelain.show_branch.mark_reachable
    - cs.startswith
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - r.get_refs
    - parents_provider.get_parents
    - <builtin>.set
    - all_commits.items
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - content.endswith
    - commit.message.decode
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - reachable.add
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - sha.decode
    - whitespace.append
    - dulwich.refs.filter_ref_prefix
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - <builtin>.hasattr
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.graph.find_octopus_base
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2710
    functionName: dulwich.cli.cmd_diff_tree.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - old_tree.encode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - obj.set_raw_string
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.patch.shortid
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch.write_tree_diff
    - dulwich.config.Config.get_boolean
    - dulwich.patch._get_sequence_matcher
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - parser.add_argument
    - store.tree_changes
    - dulwich.repo.Repo.get_config
    - io.BytesIO.writelines
    - os.makedirs
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - patiencediff.PatienceSequenceMatcher
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.diff.ColorizedDiffStream.write
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - new_tree.encode
    - obj.as_raw_string
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.diff.ColorizedDiffStream.writelines
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - tofile.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - line_bytes.decode
    - os.path.isdir
    - dulwich.patch.write_object_diff.lines
    - dulwich.patch.unified_diff_with_algorithm
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - dulwich.porcelain.diff_tree
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - rich.console.Console.print
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7febaf1b2f40>
    argNames:
    - repo
    - old_tree
    - new_tree
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2159
    functionName: dulwich.porcelain.diff_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - old_tree.encode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - obj.set_raw_string
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.patch.shortid
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch.write_tree_diff
    - dulwich.config.Config.get_boolean
    - dulwich.patch._get_sequence_matcher
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - store.tree_changes
    - dulwich.repo.Repo.get_config
    - io.BytesIO.writelines
    - os.makedirs
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - patiencediff.PatienceSequenceMatcher
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.diff.ColorizedDiffStream.write
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - new_tree.encode
    - obj.as_raw_string
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.diff.ColorizedDiffStream.writelines
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - tofile.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - line_bytes.decode
    - os.path.isdir
    - dulwich.patch.write_object_diff.lines
    - dulwich.patch.unified_diff_with_algorithm
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - rich.console.Console.print
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2726
    functionName: dulwich.cli.cmd_rev_list.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - c.encode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - dulwich.porcelain.rev_list
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - outstream.write
    - r.get_walker
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febaf5fabe0>
    argNames:
    - repo
    - commits
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2300
    functionName: dulwich.porcelain.rev_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - c.encode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - outstream.write
    - r.get_walker
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2741
    functionName: dulwich.cli.cmd_tag.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - tag_timezone.encode
    - email.utils.parsedate_tz
    - r.object_store.add_object
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objects.format_time_entry
    - re.match
    - socket.gethostname
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - re.search
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - os.getuid
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - parser.add_argument
    - config.get_boolean
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - default_user.encode
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.porcelain.get_user_timezones
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - match.groups
    - dulwich.objects.Tag.sign
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - gpg.Context
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - dulwich.objects.ShaFile.as_raw_chunks
    - <builtin>.type
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - author.encode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.porcelain.parse_timezone_format
    - <builtin>.len
    - entry.pw_gecos.split
    - dulwich.refs.local_tag_name
    - <builtin>.tuple
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - extension.lower
    - path.lstrip
    - message.encode
    - dulwich.porcelain._noop_context_manager
    - c.sign
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - time_str.replace
    - time_spec.strip
    - email.startswith
    - dulwich.hooks.CommitMsgShellHook.__init__
    - backend.get
    - line.startswith
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - dulwich.porcelain.tag_create
    - config.get
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - c.get_key
    - name.encode
    - dulwich.objects.parse_timezone
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - dulwich.repo._get_default_identity
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.abs
    - datetime.datetime.strptime
    - default_email.encode
    - <builtin>.set
    - dulwich.objects.Tag.__init__
    - email.endswith
    - dulwich.config.ConfigDict.items
    - tz_str.split
    - dulwich.porcelain._make_tag_ref
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - time.localtime
    - dulwich.config._strip_comments
    - line.split
    - value.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - keyid_bytes.decode
    - dulwich.repo.get_user_identity
    - typing.cast.encode
    - headers.extend
    - ctx.sign
    - dulwich.hooks.PostCommitShellHook.__init__
    - tag.encode
    - <builtin>.getattr
    - os.path.isdir
    - dt.timestamp
    - dulwich.hooks.ShellHook.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - user_uc.encode
    - ret.extend
    - ret._values.setdefault
    - pwd.getpwuid
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - typing.cast.id.endswith
    - dulwich.objects.Tag._serialize
    - email_uc.encode
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objectspec._parse_number_suffix
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 3
    IfCount: 11
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaee6a280>
    - <ast.Constant object at 0x7febaee6ad30>
    - <ast.Constant object at 0x7febaee6a8b0>
    - <ast.Constant object at 0x7febaee6a3d0>
    - <ast.Constant object at 0x7febaee6a700>
    - <ast.Constant object at 0x7febaee6a3a0>
    - <ast.Constant object at 0x7febaee6ae50>
    - <ast.Name object at 0x7febaee6a820>
    argNames:
    - repo
    - tag
    - author
    - message
    - annotated
    - objectish
    - tag_time
    - tag_timezone
    - sign
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2538
    functionName: dulwich.porcelain.tag_create
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - tag_timezone.encode
    - email.utils.parsedate_tz
    - r.object_store.add_object
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objects.format_time_entry
    - re.match
    - socket.gethostname
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - re.search
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - os.getuid
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - default_user.encode
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.porcelain.get_user_timezones
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - match.groups
    - dulwich.objects.Tag.sign
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - gpg.Context
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - dulwich.objects.ShaFile.as_raw_chunks
    - <builtin>.type
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - author.encode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.porcelain.parse_timezone_format
    - <builtin>.len
    - entry.pw_gecos.split
    - dulwich.refs.local_tag_name
    - <builtin>.tuple
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - extension.lower
    - path.lstrip
    - message.encode
    - dulwich.porcelain._noop_context_manager
    - c.sign
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - time_str.replace
    - time_spec.strip
    - email.startswith
    - dulwich.hooks.CommitMsgShellHook.__init__
    - backend.get
    - line.startswith
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - config.get
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - c.get_key
    - name.encode
    - dulwich.objects.parse_timezone
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - dulwich.repo._get_default_identity
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.abs
    - datetime.datetime.strptime
    - default_email.encode
    - <builtin>.set
    - dulwich.objects.Tag.__init__
    - email.endswith
    - dulwich.config.ConfigDict.items
    - tz_str.split
    - dulwich.porcelain._make_tag_ref
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - time.localtime
    - dulwich.config._strip_comments
    - line.split
    - value.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - keyid_bytes.decode
    - dulwich.repo.get_user_identity
    - typing.cast.encode
    - headers.extend
    - ctx.sign
    - dulwich.hooks.PostCommitShellHook.__init__
    - tag.encode
    - <builtin>.getattr
    - os.path.isdir
    - dt.timestamp
    - dulwich.hooks.ShellHook.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - user_uc.encode
    - ret.extend
    - ret._values.setdefault
    - pwd.getpwuid
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - typing.cast.id.endswith
    - dulwich.objects.Tag._serialize
    - email_uc.encode
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objectspec._parse_number_suffix
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2770
    functionName: dulwich.cli.cmd_verify_commit.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.porcelain.show_object
    - handlers.get
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.porcelain.show
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.porcelain.verify_commit
    - spec.isdigit
    - os.path.isfile
    - subsection.encode
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - time_str.replace
    - time_spec.strip
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - typing.cast.verify
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - dulwich.hooks.ShellHook.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - typing.cast.id.verify
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objectspec._parse_number_suffix
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf39d4c0>
    - <ast.Constant object at 0x7febaf39d280>
    argNames:
    - repo
    - committish
    - keyids
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2632
    functionName: dulwich.porcelain.verify_commit
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - typing.cast.verify
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - typing.cast.id.verify
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2826
    functionName: dulwich.cli.cmd_verify_tag.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.porcelain.show_object
    - handlers.get
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.porcelain.show
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - tagname.encode
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - time_str.replace
    - time_spec.strip
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - dulwich.porcelain._make_tag_ref
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - dulwich.porcelain.verify_tag
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - tag_obj.verify
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febafd47250>
    argNames:
    - repo
    - tagname
    - keyids
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2656
    functionName: dulwich.porcelain.verify_tag
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - tagname.encode
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - dulwich.porcelain._make_tag_ref
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - tag_obj.verify
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2877
    functionName: dulwich.cli.cmd_repack.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain.repack
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - r.object_store._update_pack_cache
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - r.object_store.generate_pack_bitmaps
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - r.object_store.pack_loose_objects
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae0abd30>
    argNames:
    - repo
    - write_bitmaps
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4988
    functionName: dulwich.porcelain.repack
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - r.object_store._update_pack_cache
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - r.object_store.generate_pack_bitmaps
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - r.object_store.pack_loose_objects
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 13
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 2896
    functionName: dulwich.cli.cmd_reflog.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - ref.encode
    - dulwich.reflog.parse_reflog_line
    - io.BytesIO.readlines
    - dulwich.reflog.expire_reflog
    - dulwich.reflog.drop_reflog_entry
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.reflog.format_reflog_line
    - sys.stdout.isatty
    - pathlib.Path.rglob
    - f.truncate
    - shutil.which
    - r._reflog_path
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - f.tell
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dt.replace
    - <builtin>.range
    - value.decode
    - dulwich.porcelain.reflog
    - dulwich.porcelain.reflog_delete
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - log.append
    - dulwich.cli.cmd_reflog._run_expire
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.porcelain.reflog_expire
    - r.controldir
    - r.read_reflog
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.reflog.parse_reflog_spec
    - dulwich.objects.check_hexsha
    - result.items
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - cmd_name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - kept_entries.append
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - parser.add_subparsers
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - ref_bytes.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - outstream.write
    - <builtin>.str
    - config.get
    - dulwich.approxidate.parse_relative_time
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - ref.decode
    - dulwich.cli.parse_time_to_timestamp
    - entries.append
    - name.encode
    - begin.split
    - dulwich.objects.parse_timezone
    - section_dict.items
    - cs.startswith
    - dulwich.cli.get_pager
    - <builtin>.super
    - <builtin>.abs
    - pager_value.decode
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - refspec.split
    - line.endswith
    - ref_name.encode
    - rest.rsplit
    - parsed_args.ref.encode
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain.reflog_expire.is_reachable
    - refspec.encode
    - dulwich.cli.PagerBuffer.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - dt.timestamp
    - f.seek
    - ref_name.decode
    - dulwich.reflog.read_reflog
    - log_file.is_file
    - index_str.isdigit
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - entry.message.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.reflog.iter_reflogs
    - log_file.relative_to
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - subparsers.add_parser
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - dulwich.cli.cmd_reflog._run_show
    - <builtin>.hasattr
    - value.lower
    - delete_parser.add_argument
    - dulwich.cli.cmd_reflog._run_delete
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - show_parser.add_argument
    - dulwich.repo.Repo.controldir
    - expire_parser.add_argument
    - dulwich.config.ConfigFile.from_file
    - ref_name.replace
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - gc.find_reachable_objects
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_subparsers
    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: subparsers.add_parser
    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: show_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: expire_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: delete_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parsed_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3000
    functionName: dulwich.cli.cmd_reflog._run_expire
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - ref.encode
    - dulwich.reflog.parse_reflog_line
    - io.BytesIO.readlines
    - dulwich.reflog.expire_reflog
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.reflog.format_reflog_line
    - pathlib.Path.rglob
    - f.truncate
    - os.path.join
    - r._reflog_path
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - f.tell
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dt.replace
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.porcelain.reflog_expire
    - r.controldir
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - result.items
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - kept_entries.append
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - time_str.replace
    - time_spec.strip
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - dulwich.cli.parse_time_to_timestamp
    - entries.append
    - name.encode
    - begin.split
    - dulwich.objects.parse_timezone
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.abs
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - ref_name.encode
    - rest.rsplit
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain.reflog_expire.is_reachable
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - ref_name.decode
    - f.seek
    - dulwich.reflog.read_reflog
    - log_file.is_file
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.reflog.iter_reflogs
    - log_file.relative_to
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - ref_name.replace
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - gc.find_reachable_objects
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parsed_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3031
    functionName: dulwich.cli.cmd_reflog._run_delete
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - ref.encode
    - dulwich.reflog.parse_reflog_line
    - io.BytesIO.readlines
    - dulwich.reflog.drop_reflog_entry
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.reflog.format_reflog_line
    - f.truncate
    - r._reflog_path
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - f.tell
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.porcelain.reflog_delete
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - log.append
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.reflog.parse_reflog_spec
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - ref.decode
    - name.encode
    - begin.split
    - dulwich.objects.parse_timezone
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.abs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - refspec.split
    - line.endswith
    - rest.rsplit
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - refspec.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - index_str.isdigit
    - f.seek
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parsed_args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 2965
    functionName: dulwich.cli.cmd_reflog._run_show
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - sys.stdout.isatty
    - pathlib.Path.rglob
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.porcelain.reflog
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - r.controldir
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.read_reflog
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - cmd_name.encode
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - ref_bytes.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - outstream.write
    - <builtin>.str
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - ref.decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - dulwich.cli.get_pager
    - <builtin>.super
    - pager_value.decode
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - ref_name.encode
    - parsed_args.ref.encode
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.cli.PagerBuffer.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - log_file.is_file
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - entry.message.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.reflog.iter_reflogs
    - log_file.relative_to
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - ref_name.replace
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febacbcf670>
    - <ast.Constant object at 0x7febacbcf6a0>
    - <ast.Constant object at 0x7febacbcf6d0>
    argNames:
    - repo
    - ref
    - all
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8025
    functionName: dulwich.porcelain.reflog
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - pathlib.Path.rglob
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - r.controldir
    - r.read_reflog
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - ref_name.encode
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - log_file.is_file
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.reflog.iter_reflogs
    - log_file.relative_to
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - ref_name.replace
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.message.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 1
    IfCount: 12
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febacbb9a30>
    - <ast.Constant object at 0x7febacbb9a60>
    - <ast.Constant object at 0x7febacbb9a90>
    - <ast.Constant object at 0x7febacbb9ac0>
    - <ast.Constant object at 0x7febacbb9af0>
    - <ast.Constant object at 0x7febacbb9b20>
    argNames:
    - repo
    - ref
    - all
    - expire_time
    - expire_unreachable_time
    - dry_run
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8058
    functionName: dulwich.porcelain.reflog_expire
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - ref.encode
    - dulwich.reflog.parse_reflog_line
    - io.BytesIO.readlines
    - dulwich.reflog.expire_reflog
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.reflog.format_reflog_line
    - pathlib.Path.rglob
    - f.truncate
    - os.path.join
    - r._reflog_path
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - f.tell
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - r.controldir
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - kept_entries.append
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - gc.find_reachable_objects
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - entries.append
    - name.encode
    - begin.split
    - dulwich.objects.parse_timezone
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.abs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - ref_name.encode
    - rest.rsplit
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain.reflog_expire.is_reachable
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - f.seek
    - dulwich.reflog.read_reflog
    - log_file.is_file
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.reflog.iter_reflogs
    - log_file.relative_to
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - ref_name.replace
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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: result.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_name.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febacbda310>
    - <ast.Constant object at 0x7febacbda340>
    - <ast.Constant object at 0x7febacbda370>
    - <ast.Constant object at 0x7febacbda3a0>
    argNames:
    - repo
    - ref
    - index
    - rewrite
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8169
    functionName: dulwich.porcelain.reflog_delete
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - ref.encode
    - dulwich.reflog.parse_reflog_line
    - io.BytesIO.readlines
    - dulwich.reflog.drop_reflog_entry
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.reflog.format_reflog_line
    - f.truncate
    - r._reflog_path
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - f.tell
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - log.append
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - begin.split
    - dulwich.objects.parse_timezone
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.abs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - rest.rsplit
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - f.seek
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 3051
    functionName: dulwich.cli.cmd_reset.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.index.validate_path_element_ntfs
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich._diff_tree._merge_entries
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - argparse.ArgumentParser
    - os.fsdecode
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.objects.hex_to_sha
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - index.clear
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - submodule_path.count
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - todo.extend
    - os.environ.get
    - commondir.read
    - value.startswith
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.diff_tree._skip_tree
    - case_only_renames.add
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - logging.warning
    - subsection.encode
    - dulwich.objects.Tree.__init__
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - normalized.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - index.commit
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.hex
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - element.decode
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - dulwich.repo.Repo.commondir
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.index._transition_to_file
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - line.endswith
    - normalized_blob.as_raw_string
    - mode_group.add_argument
    - included_paths.copy
    - path.split
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.index._remove_empty_parents
    - value.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - current_target.encode
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - parser.add_mutually_exclusive_group
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - ret._values.setdefault
    - dulwich.porcelain.reset
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - treeish.decode
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mode_group.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf4dcb20>
    argNames:
    - repo
    - mode
    - treeish
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2930
    functionName: dulwich.porcelain.reset
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - dulwich.object_store.iter_tree_contents
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.index.validate_path_element_ntfs
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich._diff_tree._merge_entries
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - os.fsdecode
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - index.clear
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - submodule_path.count
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - todo.extend
    - os.environ.get
    - commondir.read
    - value.startswith
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - logging.warning
    - subsection.encode
    - dulwich.objects.Tree.__init__
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - normalized.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - index.commit
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.hex
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - element.decode
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - dulwich.repo.Repo.commondir
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.index._transition_to_file
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - line.endswith
    - normalized_blob.as_raw_string
    - included_paths.copy
    - path.split
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.index._remove_empty_parents
    - value.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - current_target.encode
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - treeish.decode
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 3086
    functionName: dulwich.cli.cmd_revert.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - time.time
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - original_message.decode
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - ret._handle_include_directive
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - os.unlink
    - parents_to_check.insert
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.config.Config.get_boolean
    - os.getuid
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - path.lstrip
    - value.strip
    - dulwich.objects.hex_to_sha
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.index._ensure_parent_dir_exists
    - default_user.encode
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - all_paths.add
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - todo.extend
    - os.environ.get
    - commondir.read
    - value.startswith
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - logging.warning
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - c.decode
    - entry.pw_gecos.split
    - dulwich.objects.ShaFile.from_string
    - dulwich.refs.local_tag_name
    - extension.lower
    - <builtin>.tuple
    - sep_corrected_path.decode
    - dulwich.porcelain._noop_context_manager
    - message.encode
    - dulwich.index.detect_case_only_renames.normalize_path
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - normalized.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - commit_to_revert.id.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - element.decode
    - r.get_config_stack
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - commit_ref.encode
    - dulwich.porcelain.revert
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - default_email.encode
    - <builtin>.set
    - email.endswith
    - dulwich.index._transition_to_file
    - dulwich.merge.three_way_merge
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - line.endswith
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - included_paths.copy
    - path.split
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.index._remove_empty_parents
    - value.split
    - filter_path.startswith
    - dulwich.config.ConfigDict.get
    - base_tree.items
    - os.readlink
    - dulwich.repo.get_user_identity
    - dulwich._objects.sorted_tree_items
    - base_tree.lookup_path
    - typing.cast.encode
    - binascii.unhexlify
    - todo.pop
    - index.write
    - commits_to_revert.append
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - result.decode
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - dulwich.objects.Tree.add
    - user_uc.encode
    - os.lstat
    - ret.extend
    - old_paths_normalized.items
    - pwd.getpwuid
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - email_uc.encode
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - original_message.split
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - merged_entries.items
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 6
    IfCount: 11
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaa752d00>
    - <ast.Constant object at 0x7febaa752d30>
    - <ast.Constant object at 0x7febaa752d60>
    - <ast.Constant object at 0x7febaa752d90>
    argNames:
    - repo
    - commits
    - no_commit
    - message
    - author
    - committer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6996
    functionName: dulwich.porcelain.revert
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - time.time
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - merged_entries.items
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - original_message.decode
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - ret._handle_include_directive
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - os.getuid
    - dulwich.index._ensure_parent_dir_exists
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - default_user.encode
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - all_paths.add
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.environ.get
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - result.extend
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.objects.Tree.__init__
    - logging.warning
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - c.decode
    - dulwich.objects.ShaFile.from_string
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - message.encode
    - os.rmdir
    - <builtin>.tuple
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - normalized.lower
    - stat.S_IMODE
    - os.path.dirname
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - value.endswith
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - commit_to_revert.id.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - element.decode
    - r.get_config_stack
    - platform.system
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - commit_ref.encode
    - entry.pw_gecos.split
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - default_email.encode
    - <builtin>.set
    - dulwich.index._transition_to_file
    - email.endswith
    - dulwich.merge.three_way_merge
    - blob_obj.raw_length
    - dulwich.config.ConfigDict.items
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - line.endswith
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - path.split
    - included_paths.copy
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - dulwich.index._remove_empty_parents
    - dulwich.config.ConfigDict.get
    - os.readlink
    - base_tree.items
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - filter_path.startswith
    - base_tree.lookup_path
    - dulwich.repo.get_user_identity
    - typing.cast.encode
    - index.write
    - todo.pop
    - commits_to_revert.append
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - dulwich.objects.Tree.add
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - user_uc.encode
    - pwd.getpwuid
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - email_uc.encode
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - original_message.split
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3117
    functionName: dulwich.cli.cmd_daemon.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - os.environ.get
    - dulwich.log_utils.remove_null_handler
    - os.path.isdir
    - os.getpid
    - <builtin>.dict
    - os.fspath
    - parser.parse_args
    - os.fdopen
    - dulwich.server.TCPGitServer.__init__
    - os.path.isabs
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - <builtin>.super
    - argparse.ArgumentParser
    - dulwich.server.FileSystemBackend.__init__
    - sys.stderr.write
    - _DULWICH_LOGGER.removeHandler
    - parser.add_argument
    - dulwich.porcelain.daemon
    - logging.basicConfig
    - os.path.abspath
    - <builtin>.isinstance
    - logger.info
    - <builtin>.int
    - dulwich.log_utils._configure_logging_from_trace
    - socketserver.TCPServer.serve_forever
    - socketserver.TCPServer.__init__
    - trace_value.lower
    - dulwich.log_utils.default_logging_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaedcf220>
    - <ast.Constant object at 0x7febaedcf760>
    - <ast.Constant object at 0x7febaedcf5b0>
    argNames:
    - path
    - address
    - port
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3871
    functionName: dulwich.porcelain.daemon
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - socketserver.TCPServer.serve_forever
    - socketserver.TCPServer.__init__
    - <builtin>.super
    - dulwich.server.FileSystemBackend.__init__
    - os.path.abspath
    - <builtin>.dict
    - os.fspath
    - logger.info
    - dulwich.server.TCPGitServer.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 3157
    functionName: dulwich.cli.cmd_web_daemon.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - wsgiref.simple_server.make_server
    - os.environ.get
    - dulwich.log_utils.remove_null_handler
    - os.path.isdir
    - os.getpid
    - wsgiref.simple_server.make_server.serve_forever
    - <builtin>.dict
    - os.fspath
    - parser.parse_args
    - os.fdopen
    - os.path.isabs
    - os.path.join
    - dulwich.web.make_wsgi_chain
    - dulwich.log_utils._get_trace_target
    - <builtin>.super
    - argparse.ArgumentParser
    - dulwich.server.FileSystemBackend.__init__
    - sys.stderr.write
    - _DULWICH_LOGGER.removeHandler
    - parser.add_argument
    - logging.basicConfig
    - dulwich.web.HTTPGitApplication.__init__
    - dulwich.web.LimitedInputFilter.__init__
    - os.path.abspath
    - <builtin>.isinstance
    - dulwich.web.GunzipFilter.__init__
    - <builtin>.int
    - trace_value.lower
    - dulwich.log_utils._configure_logging_from_trace
    - dulwich.porcelain.web_daemon
    - dulwich.log_utils.default_logging_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf859400>
    - <ast.Constant object at 0x7febaf8598e0>
    - <ast.Constant object at 0x7febaf859d00>
    argNames:
    - path
    - address
    - port
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3889
    functionName: dulwich.porcelain.web_daemon
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.web.GunzipFilter.__init__
    - wsgiref.simple_server.make_server
    - dulwich.web.make_wsgi_chain
    - dulwich.web.HTTPGitApplication.__init__
    - <builtin>.super
    - dulwich.server.FileSystemBackend.__init__
    - os.path.abspath
    - wsgiref.simple_server.make_server.serve_forever
    - <builtin>.dict
    - os.fspath
    - dulwich.web.LimitedInputFilter.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3195
    functionName: dulwich.cli.cmd_write_tree.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - sys.stdout.write
    - <builtin>.set
    - dulwich.porcelain.write_tree
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6276
    functionName: dulwich.porcelain.write_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 3209
    functionName: dulwich.cli.cmd_receive_pack.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - typing.Protocol.as_dict
    - ref.encode
    - dulwich.protocol.symref_capabilities
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.readlines
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - packed_refs.get
    - data.find
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - os.fsync
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.server.ReceivePackHandler.__init__
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - shutil.rmtree
    - dulwich.refs.RefsContainer.keys
    - dulwich.reftable.ReftableRefsContainer.remove_if_equals
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.refs._split_ref_line
    - cap.startswith
    - os.close
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - parser.add_argument
    - dulwich.file.ensure_dir_exists
    - dulwich.repo.Repo.get_config
    - directory.replace
    - dulwich.protocol.agent_string
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server.PackHandler.set_client_capabilities
    - os.makedirs
    - <builtin>.range
    - dulwich.server.ReceivePackHandler._report_status
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.refs.DiskRefsContainer.allkeys
    - value.decode
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.protocol.BufferedPktLineWriter.__init__
    - dulwich.config.ConfigFile.__init__
    - dulwich.protocol.BufferedPktLineWriter.write
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - io.BytesIO.write
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.__init__
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.objects.check_hexsha
    - dulwich.protocol.extract_capabilities
    - base.rstrip
    - <builtin>.map
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - logger.info
    - name.endswith
    - os.path.expanduser
    - dulwich.server.ReceivePackHandler._apply_pack
    - logger.debug
    - dulwich.file._GitFile.write
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - commondir.read
    - capabilities.strip
    - value.startswith
    - os.remove
    - dulwich.refs.write_packed_refs
    - os.replace
    - dulwich.reftable.RefBlock.decode
    - <builtin>.enumerate
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - value.hex
    - os.fspath
    - ref_files.sort
    - parser.parse_args
    - refs.keys
    - path.decode
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - table_data.sort
    - name.startswith
    - dulwich.file._GitFile.close
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - ref_offsets.append
    - dulwich.protocol.BufferedPktLineWriter.flush
    - <builtin>.len
    - all_refs.pop
    - <builtin>.tuple
    - dulwich.server.PackHandler.innocuous_capabilities
    - extension.lower
    - path.lstrip
    - os.rmdir
    - dulwich.reftable.ReftableWriter.delete_ref
    - <builtin>.list
    - ret._handle_include_directive
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - value.endswith
    - client_refs.append
    - refs.items
    - contextlib.suppress
    - os.walk
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.protocol.format_capability_line
    - dulwich.repo.Repo.commondir
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - dulwich.config._parse_section_header_line
    - search_paths.append
    - name.encode
    - section_dict.items
    - block.refs.append
    - f.abort
    - dulwich.file._GitFile.abort
    - os.path.lexists
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._remove_packed_ref
    - ref_files.append
    - dulwich.server.ReceivePackHandler._report_status.flush
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - cs.startswith
    - dulwich.refs.DiskRefsContainer._iter_dir
    - normcase_abspath.startswith
    - dulwich.server.FileSystemBackend.open_repository
    - table_data.append
    - packed_refs.keys
    - dulwich.reftable._decode_reftable_suffix_and_type
    - text.rstrip
    - <builtin>.super
    - dulwich.protocol.pkt_line
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - io.BytesIO
    - <builtin>.set
    - setting.strip
    - os.rename
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - dulwich.config.ConfigDict.items
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - result.add
    - files.append
    - ret.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - content.endswith
    - dulwich.server.ReceivePackHandler._on_post_receive
    - dulwich.config._is_line_continuation
    - os.path.normcase
    - c.isalnum
    - ref_line.split
    - line.endswith
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - random.randint
    - io.BytesIO.getvalue
    - dulwich.file._fancy_rename
    - f.write
    - included_paths.copy
    - typing.NewType
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.refs.RefsContainer.get_symrefs
    - dulwich.reftable.ReftableWriter.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - key.startswith
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - os.path.isdir
    - refs.get
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.porcelain.receive_pack
    - os.open
    - dulwich.config._parse_string
    - hook.execute
    - dulwich.objects.git_line
    - struct.unpack
    - line.decode
    - dulwich.server.ReceivePackHandler.handle
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.server.FileSystemBackend.__init__
    - parent.rsplit
    - dulwich.server.PackHandler.has_capability
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - zlib.crc32
    - dulwich.refs.DiskRefsContainer.remove_if_equals
    - value.lower
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.reftable.RefBlock.encode
    - dulwich.repo.Repo.controldir
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.config.ConfigFile.from_file
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.reftable.ReftableRefsContainer.follow
    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 0x7febadc36880>
    - <ast.Constant object at 0x7febadc36850>
    - <ast.Constant object at 0x7febadc36d30>
    argNames:
    - path
    - inf
    - outf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 3954
    functionName: dulwich.porcelain.receive_pack
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - typing.Protocol.as_dict
    - ref.encode
    - dulwich.protocol.symref_capabilities
    - dulwich.refs.RefsContainer.follow
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.readlines
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - packed_refs.get
    - data.find
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - io.BytesIO.read
    - os.fsync
    - dulwich.refs.parse_symref_value
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.server.ReceivePackHandler.__init__
    - dulwich.refs.DictRefsContainer.allkeys
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - shutil.rmtree
    - dulwich.refs.RefsContainer.keys
    - dulwich.repo.Repo.__init__
    - dulwich.reftable.ReftableRefsContainer.remove_if_equals
    - cap.startswith
    - os.fsdecode
    - dulwich.refs._split_ref_line
    - os.close
    - ret._handle_include_directive
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.refs.RefsContainer._check_refname
    - contents.startswith
    - dulwich.reftable._decode_ref_value
    - dulwich.file.ensure_dir_exists
    - directory.replace
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server.PackHandler.set_client_capabilities
    - os.makedirs
    - <builtin>.range
    - dulwich.server.ReceivePackHandler._report_status
    - dulwich.reftable.ReftableReader._process_ref_block
    - dulwich.refs.DiskRefsContainer.allkeys
    - value.decode
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.reftable.ReftableRefsContainer._write_single_ref_update
    - dulwich.protocol.BufferedPktLineWriter.__init__
    - dulwich.config.ConfigFile.__init__
    - dulwich.protocol.BufferedPktLineWriter.write
    - dulwich.reftable.RefUpdate.__init__
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.reftable.ReftableReader._read_header
    - io.BytesIO.write
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.reftable.RefBlock.__init__
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.reftable.RefBlock.add_ref
    - dulwich.reftable.ReftableWriter._maybe_auto_create_head
    - dulwich.objects.check_hexsha
    - dulwich.protocol.extract_capabilities
    - base.rstrip
    - <builtin>.map
    - dulwich.reftable.ReftableRefsContainer._update_tables_list
    - dulwich.objects.valid_hexsha
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.reftable.ReftableWriter.add_symbolic_ref
    - logger.info
    - name.endswith
    - os.path.expanduser
    - logger.debug
    - dulwich.server.ReceivePackHandler._apply_pack
    - dulwich.file._GitFile.write
    - dulwich.repo.BaseRepo.get_refs
    - os.path.exists
    - commondir.read
    - capabilities.strip
    - value.startswith
    - os.remove
    - dulwich.refs.write_packed_refs
    - os.replace
    - dulwich.reftable.RefBlock.decode
    - <builtin>.enumerate
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - value.hex
    - os.fspath
    - ref_files.sort
    - path.decode
    - refs.keys
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - table_data.sort
    - name.startswith
    - dulwich.file._GitFile.close
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - ref_offsets.append
    - dulwich.protocol.BufferedPktLineWriter.flush
    - <builtin>.len
    - all_refs.pop
    - <builtin>.tuple
    - dulwich.server.PackHandler.innocuous_capabilities
    - extension.lower
    - path.lstrip
    - os.rmdir
    - dulwich.reftable.ReftableWriter.delete_ref
    - <builtin>.list
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - os.path.dirname
    - <builtin>.ord
    - value.endswith
    - client_refs.append
    - refs.items
    - contextlib.suppress
    - os.walk
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.reftable.ReftableRefsContainer.set_if_equals
    - io.BytesIO.tell
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - refnames.append
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.protocol.format_capability_line
    - dulwich.repo.Repo.commondir
    - dulwich.reftable.ReftableRefsContainer._get_next_update_index
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.next
    - dulwich.protocol.Protocol.__init__
    - dulwich.config._parse_section_header_line
    - search_paths.append
    - name.encode
    - section_dict.items
    - block.refs.append
    - f.abort
    - dulwich.file._GitFile.abort
    - os.path.lexists
    - os.fdopen
    - dulwich.refs.DiskRefsContainer._remove_packed_ref
    - ref_files.append
    - dulwich.server.ReceivePackHandler._report_status.flush
    - dulwich.reftable.ReftableWriter._get_ref_update_indices
    - cs.startswith
    - dulwich.refs.DiskRefsContainer._iter_dir
    - normcase_abspath.startswith
    - dulwich.server.FileSystemBackend.open_repository
    - table_data.append
    - packed_refs.keys
    - dulwich.reftable._decode_reftable_suffix_and_type
    - text.rstrip
    - dulwich.protocol.pkt_line
    - <builtin>.super
    - dulwich.file._GitFile.__init__
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - io.BytesIO
    - <builtin>.set
    - setting.strip
    - os.rename
    - dulwich.reftable.ReftableWriter._write_final_padding
    - refname.endswith
    - dulwich.config.ConfigDict.items
    - dulwich.refs.DiskRefsContainer.set_if_equals
    - result.add
    - files.append
    - ret.append
    - f.read
    - dulwich.reftable.ReftableWriter._write_header
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - <builtin>.isinstance
    - content.endswith
    - dulwich.server.ReceivePackHandler._on_post_receive
    - dulwich.config._is_line_continuation
    - os.path.normcase
    - c.isalnum
    - ref_line.split
    - line.endswith
    - dulwich.refs.read_packed_refs
    - tempfile.mkstemp
    - random.randint
    - io.BytesIO.getvalue
    - dulwich.file._fancy_rename
    - f.write
    - included_paths.copy
    - typing.NewType
    - dulwich.refs.check_ref_format
    - allowable_caps.update
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.reftable.ReftableRefsContainer._write_ref_update
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.refs.RefsContainer.get_symrefs
    - dulwich.reftable.ReftableWriter.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - key.startswith
    - dulwich.server.ReceivePackHandler.capabilities
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - os.path.isdir
    - refs.get
    - dulwich.reftable.ReftableWriter._write_ref_blocks
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - hook.execute
    - dulwich.objects.git_line
    - struct.unpack
    - line.decode
    - dulwich.server.ReceivePackHandler.handle
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.protocol.format_ref_line
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.server.FileSystemBackend.__init__
    - parent.rsplit
    - dulwich.server.PackHandler.has_capability
    - dulwich.reftable.decode_varint_from_stream
    - dulwich.reftable.ReftableWriter.add_ref
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - zlib.crc32
    - dulwich.refs.DiskRefsContainer.remove_if_equals
    - value.lower
    - dulwich.file.GitFile
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - dulwich.reftable.ReftableRefsContainer._generate_table_path
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.reftable.RefBlock.encode
    - dulwich.repo.Repo.controldir
    - dulwich.reftable.ReftableWriter.write
    - dulwich.reftable.RefBlock._create_embedded_footer
    - dulwich.config.ConfigFile.from_file
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.refs.RefsContainer._log
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.reftable.ReftableRefsContainer.follow
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 3224
    functionName: dulwich.cli.cmd_upload_pack.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - typing.Protocol.as_dict
    - queue.pop
    - dulwich.protocol.symref_capabilities
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - difflib.SequenceMatcher
    - data.find
    - symrefs.items
    - dulwich.refs.RefsContainer.keys
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - parents.get
    - pack_bitmap.has_commit
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - dulwich.pack.generate_unpacked_objects
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - <builtin>.setattr
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.subkeys
    - possible_bases.pop
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - dulwich.reftable.RefBlock._find_ref_data_end
    - logger.debug
    - dulwich.repo.BaseRepo.get_refs
    - todo.extend
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - queue.extend
    - refs.keys
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - unpacked.sha
    - dulwich.server.PackHandler.innocuous_capabilities
    - path.lstrip
    - shallow.add
    - dulwich.server._ProtocolGraphWalker.handle_done
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - dulwich.repo.Repo.get_named_file
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - <builtin>.open
    - dulwich.objects.Tree.from_path
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.frozenset
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - <builtin>.memoryview
    - typing.Protocol.get_peeled
    - dulwich.repo.BaseRepo.find_missing_objects
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - pack_index.iterentries
    - dulwich.repo.parse_shared_repository
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.protocol.Protocol.__init__
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - todo.append
    - text.rstrip
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - not_shallow.add
    - dulwich.file._GitFile.seek
    - ret.append
    - cdifflib.CSequenceMatcher
    - content.endswith
    - c.isalnum
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - included_paths.copy
    - dulwich.object_store.peel_sha
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - key.startswith
    - dulwich.server._ProtocolGraphWalker.__init__
    - io.BytesIO.seek
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.server.PackHandler.has_capability
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.repo.read_gitfile
    - value.lower
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - graph_walker.shallow.update
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - new_packs.append
    - dulwich.reftable.ReftableReader.all_refs
    - object.as_raw_chunks
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.parse_symref_value
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - ret._handle_include_directive
    - argparse.ArgumentParser
    - dulwich.refs._split_ref_line
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - directory.replace
    - dulwich.protocol.agent_string
    - want_others.difference
    - value.decode
    - os.path.abspath
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.pack._encode_copy_operation
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.protocol.ack_type
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - functools.partial
    - todo.keys
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - parser.parse_args
    - graph._read_from_file
    - logging.warning
    - os.path.isfile
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - _TYPE_MAP.get
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.sum
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - <builtin>.str
    - os.fsencode
    - collections.deque
    - ref.decode
    - dulwich.pack.find_reusable_deltas
    - name.encode
    - os.fdopen
    - cs.startswith
    - table_data.append
    - dulwich.porcelain.upload_pack
    - dulwich.server.FileSystemBackend.open_repository
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - want_tags.difference
    - dulwich.objects.hex_to_filename
    - dulwich.config.ConfigDict.items
    - dulwich.pack.write_pack_data
    - bases.add
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - dulwich.repo.BaseRepo.get_peeled
    - <builtin>.isinstance
    - ret.read
    - magic.sort
    - others.add
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - allowable_caps.update
    - dulwich.server.UploadPackHandler._start_pack_send_phase
    - dulwich.refs.RefsContainer.get_symrefs
    - <builtin>.getattr
    - <builtin>.min
    - compressor.compress
    - os.path.isdir
    - refs.get
    - scratch.append
    - heads.items
    - whitespace.append
    - e.decode
    - dulwich.protocol.format_ref_line
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.object_store._collect_filetree_revs
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - possible_bases.appendleft
    - typing.cast.write
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.server.UploadPackHandler.__init__
    - dulwich.objects.S_ISGITLINK
    - remaining.remove
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.pack.PackChunkGenerator.__init__
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.commit_graph.read_commit_graph
    - wants.extend
    - dulwich.object_store.<lambda2>
    - int.from_bytes
    - pack_bitmap.get_bitmap
    - dulwich.refs.is_per_worktree_ref
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - magic.append
    - contents.startswith
    - parser.add_argument
    - dulwich.objects.Blob.from_path
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.repo.Repo.get_config
    - dulwich.server.PackHandler.set_client_capabilities
    - os.makedirs
    - o.as_raw_chunks
    - dulwich.config.ConfigFile.__init__
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - logger.info
    - hashlib.sha1
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - dulwich.object_store.MissingObjectFinder.__init__
    - path.decode
    - <builtin>.callable
    - all_refs.pop
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.pack.pack_object_header
    - store.get_commit_graph
    - line.lstrip
    - dulwich.server._split_proto_line
    - os.path.dirname
    - refs.items
    - os.walk
    - line.startswith
    - backend.get
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - dulwich.protocol.format_capability_line
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.objects.Tag.from_path
    - normcase_abspath.startswith
    - dulwich.protocol.format_unshallow_line
    - io.BytesIO
    - refname.endswith
    - result.add
    - files.append
    - f.read
    - ret.insert
    - want_revs.append
    - pack.index.iterentries
    - dulwich.object_store._split_commits_and_tags
    - dulwich.refs.read_packed_refs
    - dulwich.pack.pack_object_chunks
    - dulwich.server.UploadPackHandler.handle.wants_wrapper
    - first_line.startswith
    - typing.cast.encode
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.dict
    - dulwich.config._parse_string
    - ret.extend
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.protocol.capability_agent
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.bitmap.find_commit_bitmaps
    - repo.get_peeled
    - dulwich.hooks.ShellHook.__init__
    - dulwich.object_store.BitmapReachability.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.server.UploadPackHandler.handle
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - delta.append
    - shutil.rmtree
    - cap.startswith
    - commits.add
    - dulwich.repo.ParentsProvider.get_parents
    - value.strip
    - dulwich.config.StackedConfig.get
    - json.loads
    - dulwich.config.ConfigFile.from_path
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.object_store.find_shallow.get_parents
    - kset.add
    - path.encode
    - os.path.expanduser
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - <builtin>.enumerate
    - table_data.sort
    - name.startswith
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - <builtin>.list
    - heads.values
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - compressor.flush
    - header.append
    - <builtin>.ord
    - value.endswith
    - dulwich.pack.Pack.__init__
    - dulwich.refs.DiskRefsContainer.get_peeled
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - filetree.iteritems
    - container.iter_unpacked_subset
    - <builtin>.next
    - dulwich.pack.write_pack_from_container
    - search_paths.append
    - dulwich.protocol.extract_want_line_capabilities
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.refs.DiskRefsContainer._iter_dir
    - commit_graph.get_parents
    - <builtin>.super
    - <builtin>.max
    - obj.raw_length
    - <builtin>.set
    - todo.remove
    - dulwich.objects.object_class
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - header.extend
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - all_refs.items
    - os.path.normcase
    - dulwich.pack._create_delta_py
    - line.endswith
    - dulwich.refs.check_ref_format
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.server.ReceivePackHandler.capabilities
    - dulwich.reftable.RefRecord.decode
    - dulwich.object_store.DiskObjectStore.close
    - sha.decode
    - os.open
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.server.FileSystemBackend.__init__
    - ret._values.setdefault
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytearray
    - zlib.compressobj
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - dulwich.reftable.ReftableReader.__init__
    - p.iterobjects_subset
    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 0x7febaf5e72b0>
    - <ast.Constant object at 0x7febaf5e7220>
    - <ast.Constant object at 0x7febaf5e7c40>
    argNames:
    - path
    - inf
    - outf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 3920
    functionName: dulwich.porcelain.upload_pack
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - typing.Protocol.as_dict
    - queue.pop
    - dulwich.protocol.symref_capabilities
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - difflib.SequenceMatcher
    - data.find
    - symrefs.items
    - dulwich.refs.RefsContainer.keys
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - parents.get
    - pack_bitmap.has_commit
    - dulwich.config.Config.get_boolean
    - dulwich.refs.DictRefsContainer.read_loose_ref
    - dulwich.reftable._decode_ref_value
    - dulwich.pack.generate_unpacked_objects
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - <builtin>.setattr
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.server._ProtocolGraphWalker.read_proto_line
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.subkeys
    - possible_bases.pop
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - dulwich.reftable.RefBlock._find_ref_data_end
    - logger.debug
    - dulwich.repo.BaseRepo.get_refs
    - todo.extend
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - queue.extend
    - refs.keys
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - unpacked.sha
    - dulwich.server.PackHandler.innocuous_capabilities
    - path.lstrip
    - shallow.add
    - dulwich.server._ProtocolGraphWalker.handle_done
    - dulwich.server._ProtocolGraphWalker.set_ack_type
    - dulwich.object_store.GraphTraversalReachability.get_tree_objects
    - dulwich.repo.Repo.get_named_file
    - dulwich.protocol.format_shallow_line
    - dulwich.object_store.find_shallow
    - <builtin>.open
    - dulwich.objects.Tree.from_path
    - dulwich.pack.deltas_from_sorted_objects
    - <builtin>.frozenset
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - <builtin>.memoryview
    - typing.Protocol.get_peeled
    - dulwich.repo.BaseRepo.find_missing_objects
    - os.listdir
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - pack_index.iterentries
    - dulwich.repo.parse_shared_repository
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.protocol.Protocol.__init__
    - dulwich.object_store._collect_ancestors
    - block.refs.append
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - todo.append
    - text.rstrip
    - dulwich.object_store.GraphTraversalReachability.get_reachable_commits
    - not_shallow.add
    - dulwich.file._GitFile.seek
    - ret.append
    - cdifflib.CSequenceMatcher
    - content.endswith
    - c.isalnum
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - included_paths.copy
    - dulwich.object_store.peel_sha
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - key.startswith
    - dulwich.server._ProtocolGraphWalker.__init__
    - io.BytesIO.seek
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.server.PackHandler.has_capability
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - dulwich.repo.read_gitfile
    - value.lower
    - dulwich.refs.DictRefsContainer.get_packed_refs
    - graph_walker.shallow.update
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - new_packs.append
    - dulwich.reftable.ReftableReader.all_refs
    - object.as_raw_chunks
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.parse_symref_value
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - ret._handle_include_directive
    - dulwich.refs._split_ref_line
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - directory.replace
    - dulwich.protocol.agent_string
    - want_others.difference
    - value.decode
    - os.path.abspath
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.server.UploadPackHandler.required_capabilities
    - dulwich.pack._encode_copy_operation
    - dulwich.server._ProtocolGraphWalker._handle_shallow_request
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.protocol.ack_type
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - functools.partial
    - todo.keys
    - dulwich.refs.DiskRefsContainer.read_loose_ref
    - graph._read_from_file
    - logging.warning
    - os.path.isfile
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - _TYPE_MAP.get
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.sum
    - dulwich.refs.RefsContainer.allkeys
    - refname.startswith
    - dulwich.server._ProtocolGraphWalker.unread_proto_line
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.server._ProtocolGraphWalker.set_wants
    - dulwich.reftable.ReftableRefsContainer.get_packed_refs
    - dulwich.object_store.BitmapReachability.get_tree_objects
    - <builtin>.str
    - os.fsencode
    - collections.deque
    - ref.decode
    - dulwich.pack.find_reusable_deltas
    - name.encode
    - os.fdopen
    - cs.startswith
    - table_data.append
    - dulwich.server.FileSystemBackend.open_repository
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - want_tags.difference
    - dulwich.objects.hex_to_filename
    - dulwich.config.ConfigDict.items
    - dulwich.pack.write_pack_data
    - bases.add
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - dulwich.repo.BaseRepo.get_peeled
    - <builtin>.isinstance
    - ret.read
    - magic.sort
    - others.add
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - allowable_caps.update
    - dulwich.server.UploadPackHandler._start_pack_send_phase
    - dulwich.refs.RefsContainer.get_symrefs
    - <builtin>.getattr
    - <builtin>.min
    - compressor.compress
    - os.path.isdir
    - refs.get
    - scratch.append
    - heads.items
    - whitespace.append
    - e.decode
    - dulwich.protocol.format_ref_line
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - dulwich.object_store._collect_filetree_revs
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - possible_bases.appendleft
    - typing.cast.write
    - dulwich.repo.ParentsProvider.__init__
    - dulwich.object_store.PackBasedObjectStore.get_reachability_provider
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.server.UploadPackHandler.__init__
    - dulwich.objects.S_ISGITLINK
    - remaining.remove
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.pack.PackChunkGenerator.__init__
    - dulwich.server.UploadPackHandler.capabilities
    - dulwich.commit_graph.read_commit_graph
    - wants.extend
    - dulwich.object_store.<lambda2>
    - int.from_bytes
    - pack_bitmap.get_bitmap
    - dulwich.refs.is_per_worktree_ref
    - dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref
    - magic.append
    - contents.startswith
    - dulwich.objects.Blob.from_path
    - dulwich.commit_graph.CommitGraph.from_file
    - dulwich.repo.Repo.get_config
    - dulwich.server.PackHandler.set_client_capabilities
    - os.makedirs
    - o.as_raw_chunks
    - dulwich.config.ConfigFile.__init__
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    - base.rstrip
    - logger.info
    - hashlib.sha1
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - dulwich.object_store.MissingObjectFinder.__init__
    - path.decode
    - <builtin>.callable
    - all_refs.pop
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.pack.pack_object_header
    - store.get_commit_graph
    - line.lstrip
    - dulwich.server._split_proto_line
    - os.path.dirname
    - refs.items
    - os.walk
    - line.startswith
    - backend.get
    - dulwich.object_store.BitmapReachability.get_reachable_commits
    - dulwich.protocol.format_capability_line
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.objects.Tag.from_path
    - normcase_abspath.startswith
    - dulwich.protocol.format_unshallow_line
    - io.BytesIO
    - refname.endswith
    - result.add
    - files.append
    - f.read
    - ret.insert
    - want_revs.append
    - pack.index.iterentries
    - dulwich.object_store._split_commits_and_tags
    - dulwich.refs.read_packed_refs
    - dulwich.pack.pack_object_chunks
    - dulwich.server.UploadPackHandler.handle.wants_wrapper
    - first_line.startswith
    - typing.cast.encode
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.dict
    - dulwich.config._parse_string
    - ret.extend
    - dulwich.reftable.decode_varint_from_stream
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.pack._create_delta_rs_wrapper
    - dulwich.protocol.capability_agent
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.bitmap.find_commit_bitmaps
    - repo.get_peeled
    - dulwich.hooks.ShellHook.__init__
    - dulwich.object_store.BitmapReachability.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.server.UploadPackHandler.handle
    - dulwich.server._ProtocolGraphWalker.determine_wants
    - dulwich.object_store.BaseObjectStore.get_reachability_provider
    - dulwich.protocol.capability_symref
    - dulwich.reftable.RefRecord.__init__
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.refs.DictRefsContainer.allkeys
    - o.sha
    - os.path.join
    - dulwich.pack.full_unpacked_object
    - delta.append
    - shutil.rmtree
    - cap.startswith
    - commits.add
    - dulwich.repo.ParentsProvider.get_parents
    - value.strip
    - dulwich.config.StackedConfig.get
    - json.loads
    - dulwich.config.ConfigFile.from_path
    - dulwich.refs.RefsContainer.as_dict
    - dulwich.server.UploadPackHandler.get_tagged
    - dulwich.object_store.find_shallow.get_parents
    - kset.add
    - path.encode
    - os.path.expanduser
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - value.hex
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - <builtin>.enumerate
    - table_data.sort
    - name.startswith
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich._pack.create_delta
    - <builtin>.list
    - heads.values
    - dulwich.object_store.BitmapReachability._combine_commit_bitmaps
    - compressor.flush
    - header.append
    - <builtin>.ord
    - value.endswith
    - dulwich.pack.Pack.__init__
    - dulwich.refs.DiskRefsContainer.get_peeled
    - <builtin>.int
    - dulwich.pack.pack_header_chunks
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - filetree.iteritems
    - container.iter_unpacked_subset
    - <builtin>.next
    - dulwich.pack.write_pack_from_container
    - search_paths.append
    - dulwich.protocol.extract_want_line_capabilities
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.refs.DiskRefsContainer._iter_dir
    - commit_graph.get_parents
    - <builtin>.super
    - <builtin>.max
    - obj.raw_length
    - <builtin>.set
    - todo.remove
    - dulwich.objects.object_class
    - typing.cast.decode
    - dulwich.pack._delta_encode_size
    - struct.pack
    - dulwich.reftable.ReftableRefsContainer.read_loose_ref
    - header.extend
    - dulwich.server._ProtocolGraphWalker.update_shallow
    - all_refs.items
    - os.path.normcase
    - dulwich.pack._create_delta_py
    - line.endswith
    - dulwich.refs.check_ref_format
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.server.ReceivePackHandler.capabilities
    - dulwich.reftable.RefRecord.decode
    - dulwich.object_store.DiskObjectStore.close
    - sha.decode
    - os.open
    - line.decode
    - dulwich.refs.RefsContainer.read_ref
    - line.rstrip
    - dulwich.server.FileSystemBackend.__init__
    - ret._values.setdefault
    - dulwich.bitmap.bitmap_to_object_shas
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.object_store.GraphTraversalReachability.__init__
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytearray
    - zlib.compressobj
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - tags.add
    - dulwich.reftable.ReftableReader.__init__
    - p.iterobjects_subset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3239
    functionName: dulwich.cli.cmd_shortlog.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - authors.items
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - authors.setdefault
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - items.sort
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - r.get_walker
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.porcelain.shortlog
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - sys.stdout.write
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - messages.splitlines
    - <builtin>.isinstance
    - content.endswith
    - commit.message.decode
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - commit.author.decode
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaefed400>
    - <ast.Constant object at 0x7febaefed1f0>
    argNames:
    - repo
    - summary_only
    - sort_by_commits
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3474
    functionName: dulwich.porcelain.shortlog
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - authors.items
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - authors.setdefault
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - items.sort
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - r.get_walker
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - commit.message.decode
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - commit.author.decode
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: messages.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 13
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 3275
    functionName: dulwich.cli.cmd_status.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - item.ljust
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - name.decode
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - index.changes_from_tree
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - os.get_terminal_size
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - future.result
    - <builtin>.any
    - status.staged.items
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - stuff.startswith
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - dulwich.cli.format_columns
    - lines.append
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.porcelain.get_tree_changes
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - executor.submit
    - <builtin>.len
    - index.iteritems
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - dirnames.remove
    - value.endswith
    - pathlib.Path.resolve
    - <builtin>.ord
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.cli.detect_terminal_width
    - backend.get
    - <builtin>.int
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - col_widths.append
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - part.strip
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.max
    - sys.stdout.write
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - collections.namedtuple
    - dulwich.porcelain.path_to_tree_path
    - os.path.relpath
    - tree_path.replace
    - content.endswith
    - c.isalnum
    - dulwich.porcelain.get_untracked_paths
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - line_parts.append
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - pat.endswith
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - mode.split
    - dulwich.porcelain._walk_working_dir_paths
    - dulwich.porcelain.status
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - sys.getfilesystemencoding
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febaf54b7f0>
    - <ast.Constant object at 0x7febaf54b9d0>
    - <ast.Constant object at 0x7febaf54bfd0>
    argNames:
    - repo
    - ignored
    - untracked_files
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3411
    functionName: dulwich.porcelain.status
    functionSourceFile: dulwich.porcelain
    functionUses: 7
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - index.changes_from_tree
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - future.result
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.porcelain.get_tree_changes
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - executor.submit
    - index.iteritems
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - dirnames.remove
    - value.endswith
    - pathlib.Path.resolve
    - <builtin>.ord
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - collections.namedtuple
    - dulwich.porcelain.path_to_tree_path
    - os.path.relpath
    - tree_path.replace
    - content.endswith
    - c.isalnum
    - dulwich.porcelain.get_untracked_paths
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - pat.endswith
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: status.staged.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: sys.getfilesystemencoding
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3319
    functionName: dulwich.cli.cmd_ls_remote.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - backends.append
    - io.BytesIO.readlines
    - dulwich.client.BundleClient.__init__
    - winreg.QueryValueEx
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - os.path.join
    - ret._handle_include_directive
    - host_path.encode
    - orig_url.startswith
    - argparse.ArgumentParser
    - dulwich.client._win32_url_to_path
    - value.strip
    - parser.add_argument
    - dulwich.protocol.agent_string
    - <builtin>.range
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - urllib.parse.urlparse
    - dulwich.config._find_git_in_win_path
    - platform.machine
    - <builtin>.map
    - dulwich.client.TCPGitClient.__init__
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - paths.append
    - os.path.exists
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - urllib.parse.urlparse._replace
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - parser.parse_args
    - dulwich.config._check_section_name
    - config.sections
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.list
    - dulwich.client.TCPGitClient.from_parsedurl
    - <builtin>.open
    - line.lstrip
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.client.GitClient.__init__
    - contextlib.suppress
    - replacement.decode
    - line.startswith
    - dulwich.config.StackedConfig.default
    - config.get
    - dulwich.config._parse_section_header_line
    - ref.decode
    - target.decode
    - <builtin>.super
    - remote.decode
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - sys.stdout.write
    - os.path.split
    - <builtin>.set
    - base_parsed._replace
    - dulwich.config.get_xdg_config_home_path
    - result.symrefs.items
    - ret.append
    - <builtin>.isinstance
    - content.endswith
    - f.readline
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - urllib.parse.urlunparse.rstrip
    - nturl2path.url2pathname
    - dulwich.config._strip_comments
    - line.split
    - dulwich.porcelain.ls_remote
    - dulwich.client.SSHGitClient.__init__
    - config.get_multivar
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - sha.decode
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config.get_win_system_paths
    - dulwich.client._get_transport_and_path_from_url
    - winreg.OpenKey
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - location.split
    - client.get_refs
    - paths.extend
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.issubclass
    - <builtin>.bytearray
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - urllib.parse.unquote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a3790>
    - <ast.Constant object at 0x7febaf2a32b0>
    - <ast.Constant object at 0x7febaf2a31f0>
    - <ast.Constant object at 0x7febaf2a3b50>
    - <ast.Constant object at 0x7febaf2a3d90>
    - <ast.Constant object at 0x7febaf2a3040>
    - <ast.Constant object at 0x7febaf2a3280>
    - <ast.Constant object at 0x7febaf2a3970>
    - <ast.Constant object at 0x7febaf2a34f0>
    - <ast.Constant object at 0x7febaf2a3fa0>
    argNames:
    - remote
    - config
    - operation
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    - username
    - password
    - key_filename
    - ssh_command
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4937
    functionName: dulwich.porcelain.ls_remote
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - backends.append
    - io.BytesIO.readlines
    - dulwich.client.BundleClient.__init__
    - winreg.QueryValueEx
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - os.path.join
    - ret._handle_include_directive
    - host_path.encode
    - orig_url.startswith
    - dulwich.client._win32_url_to_path
    - value.strip
    - dulwich.protocol.agent_string
    - <builtin>.range
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.ConfigFile.__init__
    - dulwich.config.StackedConfig.default_backends
    - urllib.parse.urlparse
    - dulwich.config._find_git_in_win_path
    - platform.machine
    - <builtin>.map
    - dulwich.client.TCPGitClient.__init__
    - os.path.expanduser
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - paths.append
    - os.path.exists
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - urllib.parse.urlparse._replace
    - dulwich.config.StackedConfig.__init__
    - os.fspath
    - dulwich.config._check_section_name
    - config.sections
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.list
    - dulwich.client.TCPGitClient.from_parsedurl
    - <builtin>.open
    - line.lstrip
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.client.GitClient.__init__
    - contextlib.suppress
    - replacement.decode
    - line.startswith
    - dulwich.config.StackedConfig.default
    - config.get
    - dulwich.config._parse_section_header_line
    - <builtin>.super
    - remote.decode
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - os.path.split
    - <builtin>.set
    - base_parsed._replace
    - dulwich.config.get_xdg_config_home_path
    - ret.append
    - <builtin>.isinstance
    - content.endswith
    - f.readline
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - urllib.parse.urlunparse.rstrip
    - nturl2path.url2pathname
    - dulwich.config._strip_comments
    - line.split
    - dulwich.client.SSHGitClient.__init__
    - config.get_multivar
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config.get_win_system_paths
    - dulwich.client._get_transport_and_path_from_url
    - winreg.OpenKey
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - location.split
    - client.get_refs
    - paths.extend
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.issubclass
    - <builtin>.bytearray
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - urllib.parse.unquote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.symrefs.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 3349
    functionName: dulwich.cli.cmd_ls_tree.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - name.decode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - sys.stdout.isatty
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - hexsha.decode
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.cli.Pager.__init__
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - cmd_name.encode
    - dulwich.objects.pretty_format_tree_entry
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - config.get
    - outstream.write
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - formatted.encode
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.cli.get_pager
    - <builtin>.super
    - pager_value.decode
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - typing.cast.encode
    - dulwich.cli.PagerBuffer.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.ls_tree
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain.ls_tree.list_tree
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febad7cf520>
    - <ast.Attribute object at 0x7febad7cf4f0>
    - <ast.Constant object at 0x7febad7cf490>
    - <ast.Constant object at 0x7febad7cf460>
    argNames:
    - repo
    - treeish
    - outstream
    - recursive
    - name_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5042
    functionName: dulwich.porcelain.ls_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - name.decode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - hexsha.decode
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.objects.pretty_format_tree_entry
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - outstream.write
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - formatted.encode
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain.ls_tree.list_tree
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 3382
    functionName: dulwich.cli.cmd_pack_objects.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - new_packs.append
    - io.BytesIO.readlines
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.pack.PackChunkGenerator.__init__
    - difflib.SequenceMatcher
    - object.as_raw_chunks
    - parser.error
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.pack.write_pack_index
    - o.sha
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - sys.stdin.readlines
    - magic.append
    - json.loads
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.objects.Blob.from_path
    - dulwich.pack.generate_unpacked_objects
    - dulwich.pack.write_pack_index_v2
    - os.makedirs
    - collections.defaultdict
    - <builtin>.range
    - o.as_raw_chunks
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.pack._encode_copy_operation
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.pack.write_pack_index_v1
    - possible_bases.pop
    - dulwich.pack.write_pack_index_v3
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.porcelain.pack_objects
    - name.endswith
    - dulwich.pack.SHA1Writer.write
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - <builtin>.callable
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - unpacked.sha
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - dulwich._pack.create_delta
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.pack.pack_object_header
    - dulwich.objects.Tree.from_path
    - <builtin>.open
    - line.lstrip
    - compressor.flush
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - <builtin>.memoryview
    - <builtin>.ord
    - os.path.dirname
    - value.endswith
    - dulwich.pack.Pack.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - os.listdir
    - dulwich.pack.pack_header_chunks
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - container.iter_unpacked_subset
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - collections.deque
    - line.strip
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.config._parse_section_header_line
    - dulwich.pack.write_pack_from_container
    - dulwich.pack.find_reusable_deltas
    - name.encode
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - cs.startswith
    - dulwich.objects.Tag.from_path
    - <builtin>.super
    - obj.raw_length
    - <builtin>.set
    - todo.remove
    - dulwich.objects.hex_to_filename
    - dulwich.config.ConfigDict.items
    - dulwich.pack.write_pack_data
    - ret.append
    - f.read
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - typing.cast.decode
    - struct.pack
    - dulwich.pack._delta_encode_size
    - ret.insert
    - header.extend
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - content.endswith
    - ret.read
    - c.isalnum
    - dulwich.pack.SHA1Writer.__init__
    - magic.sort
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.pack._create_delta_py
    - line.endswith
    - dulwich.pack.pack_object_chunks
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - os.path.isdir
    - compressor.compress
    - scratch.append
    - <builtin>.dict
    - f.write_sha
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pack_files.add
    - hashlib.sha1.digest
    - ret.extend
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - io.BytesIO.write_sha
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - largetable.append
    - dulwich.pack._create_delta_rs_wrapper
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - possible_bases.appendleft
    - f.close
    - <builtin>.bytearray
    - typing.cast.write
    - zlib.compressobj
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - p.iterobjects_subset
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdin.readlines
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febadce88b0>
    - <ast.Constant object at 0x7febadce88e0>
    - <ast.Constant object at 0x7febadce8910>
    - <ast.Constant object at 0x7febadce8940>
    argNames:
    - repo
    - object_ids
    - packf
    - idxf
    - delta_window_size
    - deltify
    - reuse_deltas
    - pack_index_version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 5005
    functionName: dulwich.porcelain.pack_objects
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - new_packs.append
    - io.BytesIO.readlines
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.pack.PackChunkGenerator.__init__
    - difflib.SequenceMatcher
    - object.as_raw_chunks
    - binascii.hexlify
    - difflib.SequenceMatcher.get_opcodes
    - dulwich.pack.write_pack_index
    - o.sha
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.pack.full_unpacked_object
    - delta.append
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - json.loads
    - magic.append
    - dulwich.repo.Repo.get_config
    - dulwich.objects.Blob.from_path
    - dulwich.pack.generate_unpacked_objects
    - dulwich.pack.write_pack_index_v2
    - os.makedirs
    - collections.defaultdict
    - <builtin>.range
    - o.as_raw_chunks
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.pack._encode_copy_operation
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.pack.write_pack_index_v1
    - possible_bases.pop
    - dulwich.pack.write_pack_index_v3
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - name.endswith
    - dulwich.pack.SHA1Writer.write
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.keys
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - dulwich.pack.sort_objects_for_delta
    - <builtin>.type
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - <builtin>.callable
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - unpacked.sha
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - dulwich._pack.create_delta
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.pack.pack_object_header
    - dulwich.objects.Tree.from_path
    - <builtin>.open
    - line.lstrip
    - compressor.flush
    - dulwich.pack.deltas_from_sorted_objects
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - <builtin>.memoryview
    - <builtin>.ord
    - os.path.dirname
    - value.endswith
    - dulwich.pack.Pack.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.object_store.PackBasedObjectStore.iterobjects_subset
    - os.listdir
    - dulwich.pack.pack_header_chunks
    - dulwich.objects.Commit.from_path
    - dulwich.contrib.swift.SwiftPack.__init__
    - alt.close
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - container.iter_unpacked_subset
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - collections.deque
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - dulwich.config._parse_section_header_line
    - dulwich.pack.write_pack_from_container
    - dulwich.pack.find_reusable_deltas
    - name.encode
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - unpack.sha
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - cs.startswith
    - dulwich.objects.Tag.from_path
    - <builtin>.super
    - obj.raw_length
    - <builtin>.set
    - todo.remove
    - dulwich.objects.hex_to_filename
    - dulwich.config.ConfigDict.items
    - dulwich.pack.write_pack_data
    - ret.append
    - f.read
    - os.path.splitext
    - dulwich.midx.MultiPackIndex.close
    - typing.cast.decode
    - struct.pack
    - dulwich.pack._delta_encode_size
    - ret.insert
    - header.extend
    - cdifflib.CSequenceMatcher
    - <builtin>.isinstance
    - content.endswith
    - ret.read
    - c.isalnum
    - dulwich.pack.SHA1Writer.__init__
    - magic.sort
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.pack._create_delta_py
    - line.endswith
    - dulwich.pack.pack_object_chunks
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - os.path.isdir
    - compressor.compress
    - scratch.append
    - <builtin>.dict
    - f.write_sha
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pack_files.add
    - hashlib.sha1.digest
    - ret.extend
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - io.BytesIO.write_sha
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - largetable.append
    - dulwich.pack._create_delta_rs_wrapper
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - possible_bases.appendleft
    - <builtin>.bytearray
    - typing.cast.write
    - zlib.compressobj
    - entries.items
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - p.iterobjects_subset
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3426
    functionName: dulwich.cli.cmd_unpack_objects.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - r.object_store.add_object
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - <builtin>.enumerate
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - os.path.splitext
    - f.read
    - ret.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain.unpack_objects
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - pack.iter_unpacked
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - unpacked.sha_file
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febad6316d0>
    argNames:
    - pack_path
    - target
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6614
    functionName: dulwich.porcelain.unpack_objects
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - r.object_store.add_object
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - unpacked.sha_file
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - os.path.splitext
    - f.read
    - ret.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - pack.iter_unpacked
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3443
    functionName: dulwich.cli.cmd_prune.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain.prune
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - date.timestamp
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - r.object_store.prune
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: date.timestamp
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3494
    functionName: dulwich.cli.cmd_prune.run.progress
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7feba9f2cb20>
    - <ast.Constant object at 0x7feba9f2cb50>
    - <ast.Constant object at 0x7feba9f2cb80>
    argNames:
    - repo
    - grace_period
    - dry_run
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7184
    functionName: dulwich.porcelain.prune
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - r.object_store.prune
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 3514
    functionName: dulwich.cli.cmd_pull.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - stripped_refs.items
    - dulwich.client.BundleClient.__init__
    - obj.set_raw_string
    - n.startswith
    - dulwich.objects.format_time_entry
    - encoded_location.decode
    - dulwich.repo.Repo.__init__
    - ref.endswith
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - wlst.get
    - os.getuid
    - default_user.encode
    - <builtin>.range
    - new_rename_changes.append
    - urllib.parse.urlparse
    - contextlib.closing
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.graph.find_merge_base.lookup_parents
    - stat.S_ISREG
    - gc.maybe_auto_gc
    - dulwich.graph._find_lcas._has_candidates
    - todo.extend
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - subsection.encode
    - wlst.add
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - remote_location.encode
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.objects.Tree.iteritems
    - os.listdir
    - dulwich.index.build_file_from_blob
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - cands.append
    - refspecs_normalized.append
    - dulwich.index._tree_to_fs_path
    - base_parsed._replace
    - email.endswith
    - dulwich.merge.three_way_merge
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - included_paths.copy
    - path.split
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - filter_path.startswith
    - binascii.unhexlify
    - os.readlink
    - dulwich.repo.get_user_identity
    - dulwich._objects.sorted_tree_items
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.index._check_symlink_matches
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - config.has_section
    - dulwich.index.detect_case_only_renames
    - dulwich.object_store.DiskObjectStore.from_config
    - r.get_gitattributes
    - location.split
    - dulwich.repo.read_gitfile
    - client.fetch
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.objects.Tag._serialize
    - <builtin>.issubclass
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.protocol.strip_peeled_refs
    - dulwich.index._transition_to_submodule
    - dulwich.submodule.ensure_submodule_placeholder
    - refs_container.import_refs
    - urllib.parse.unquote
    - typing.NamedTuple.__init__
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - dulwich.config.iter_instead_of
    - paths_becoming_dirs.add
    - user_host.rsplit
    - ret._handle_include_directive
    - orig_url.startswith
    - argparse.ArgumentParser
    - n.endswith
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.protocol.agent_string
    - value.decode
    - needle.decode
    - <builtin>.sorted
    - dulwich.porcelain.check_diverged
    - all_paths.add
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - element.lower
    - parser.parse_args
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - normalized.lower
    - stat.S_IMODE
    - dulwich.diff_tree.tree_changes
    - dulwich.client.GitClient.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.graph.can_fast_forward
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.lru_cache.LRUCache.cleanup
    - element.decode
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - path.startswith
    - name.encode
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - cs.startswith
    - dulwich.graph.can_fast_forward.lookup_parents
    - object_store.add_object
    - parents_provider.get_parents
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - r.get_config
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - dulwich.refs._import_remote_refs
    - f.write
    - urllib.parse.urlunparse.rstrip
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - base_tree.lookup_path
    - dulwich.client.SSHGitClient.__init__
    - current_target.encode
    - <builtin>.getattr
    - config.get_multivar
    - <builtin>.min
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - whitespace.append
    - dulwich.objects.Tree._serialize
    - dulwich.porcelain.active_branch
    - dulwich.client._get_transport_and_path_from_url
    - repo.parents_provider
    - user_uc.encode
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - kwargs.items
    - dulwich.objects._format_message
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - repo.path.encode
    - refspecs.encode
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.porcelain._do_merge
    - dulwich.merge.recursive_merge
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - dulwich.config.ConfigFile.__init__
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.client.TCPGitClient.__init__
    - commondir.read
    - urllib.parse.urlparse._replace
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.config._check_section_name
    - active_ref.startswith
    - path.decode
    - dulwich.diff_tree._skip_tree
    - config.sections
    - dulwich.objects.Tree.__init__
    - dulwich.index._check_file_matches
    - urllib.parse.urlunparse
    - typing.cast.items
    - entry.pw_gecos.split
    - dulwich.objects.ShaFile.from_string
    - sep_corrected_path.decode
    - message.encode
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - refs.items
    - dulwich.objects.serialize_tree
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - typing.cast.id.lookup_path
    - dulwich.porcelain.get_remote_repo
    - config.get
    - dulwich.merge.Merger.merge_blobs
    - r.get_config_stack
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - typing.cast.id.items
    - dulwich.index.validate_path
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - blob_obj.as_raw_string
    - default_email.encode
    - spec.encode
    - dulwich.index._transition_to_file
    - dulwich.merge._create_virtual_commit
    - f.read
    - dulwich.graph.find_merge_base
    - tree_path.replace
    - dulwich.merge.Merger.merge_trees
    - nturl2path.url2pathname
    - dulwich.index._remove_empty_parents
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.config._parse_string
    - dulwich.porcelain.pull
    - headers.append
    - dulwich.objects.Tree.add
    - old_paths_normalized.items
    - ret.extend
    - pwd.getpwuid
    - dulwich.porcelain.get_branch_remote
    - dulwich.objects.Commit._serialize
    - os.chmod
    - email_uc.encode
    - dulwich.protocol.capability_agent
    - dulwich.porcelain._filter_transport_kwargs
    - conflicts.append
    - dulwich.objects.Blob._serialize
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - time.time
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - wlst.iter
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - shutil.rmtree
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.unlink
    - dulwich.client._win32_url_to_path
    - dulwich.config.StackedConfig.get
    - value.strip
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - submodule_path.count
    - rename_detector.changes_with_renames
    - path.encode
    - os.path.exists
    - dulwich.config._check_variable_name
    - <builtin>.len
    - results.sort
    - <builtin>.list
    - ref.startswith
    - value.endswith
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - replacement.decode
    - dulwich.graph.find_octopus_base.lookup_stamp
    - <builtin>.int
    - remote_name.encode
    - repo.open_index
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - platform.system
    - dulwich.refs.extract_tag_name
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - <builtin>.set
    - blob_obj.raw_length
    - contents.decode
    - f.readline
    - filter_spec.encode
    - line.endswith
    - value.split
    - base_tree.items
    - unicodedata.normalize
    - dulwich.objects.git_line
    - dulwich.client.BundleClient._is_bundle_file
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - <builtin>.enumerate
    - merged_entries.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 7
    IfCount: 15
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7febae391e80>
    - <ast.Constant object at 0x7febae391c70>
    - <ast.Name object at 0x7febae391280>
    - <ast.Name object at 0x7febae391430>
    - <ast.Constant object at 0x7febae391670>
    - <ast.Constant object at 0x7febae391a30>
    - <ast.Constant object at 0x7febae3918e0>
    - <ast.Constant object at 0x7febae391550>
    - <ast.Constant object at 0x7febae3914f0>
    argNames:
    - repo
    - remote_location
    - refspecs
    - outstream
    - errstream
    - fast_forward
    - ff_only
    - force
    - filter_spec
    - protocol_version
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 3243
    functionName: dulwich.porcelain.pull
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - stripped_refs.items
    - dulwich.client.BundleClient.__init__
    - obj.set_raw_string
    - n.startswith
    - dulwich.objects.format_time_entry
    - encoded_location.decode
    - dulwich.repo.Repo.__init__
    - ref.endswith
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - wlst.get
    - os.getuid
    - default_user.encode
    - <builtin>.range
    - new_rename_changes.append
    - urllib.parse.urlparse
    - contextlib.closing
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.graph.find_merge_base.lookup_parents
    - stat.S_ISREG
    - gc.maybe_auto_gc
    - dulwich.graph._find_lcas._has_candidates
    - todo.extend
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - subsection.encode
    - wlst.add
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - remote_location.encode
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.objects.Tree.iteritems
    - os.listdir
    - dulwich.index.build_file_from_blob
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - cands.append
    - refspecs_normalized.append
    - dulwich.index._tree_to_fs_path
    - base_parsed._replace
    - email.endswith
    - dulwich.merge.three_way_merge
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - included_paths.copy
    - path.split
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - filter_path.startswith
    - binascii.unhexlify
    - os.readlink
    - dulwich.repo.get_user_identity
    - dulwich._objects.sorted_tree_items
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.index._check_symlink_matches
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - config.has_section
    - dulwich.index.detect_case_only_renames
    - dulwich.object_store.DiskObjectStore.from_config
    - r.get_gitattributes
    - location.split
    - dulwich.repo.read_gitfile
    - client.fetch
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.objects.Tag._serialize
    - <builtin>.issubclass
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.protocol.strip_peeled_refs
    - dulwich.index._transition_to_submodule
    - dulwich.submodule.ensure_submodule_placeholder
    - refs_container.import_refs
    - urllib.parse.unquote
    - typing.NamedTuple.__init__
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - dulwich.config.iter_instead_of
    - paths_becoming_dirs.add
    - user_host.rsplit
    - ret._handle_include_directive
    - orig_url.startswith
    - n.endswith
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.protocol.agent_string
    - value.decode
    - needle.decode
    - <builtin>.sorted
    - dulwich.porcelain.check_diverged
    - all_paths.add
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - element.lower
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - normalized.lower
    - stat.S_IMODE
    - dulwich.diff_tree.tree_changes
    - dulwich.client.GitClient.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.graph.can_fast_forward
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.lru_cache.LRUCache.cleanup
    - element.decode
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - path.startswith
    - name.encode
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - cs.startswith
    - dulwich.graph.can_fast_forward.lookup_parents
    - object_store.add_object
    - parents_provider.get_parents
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - r.get_config
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - dulwich.refs._import_remote_refs
    - f.write
    - urllib.parse.urlunparse.rstrip
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - base_tree.lookup_path
    - dulwich.client.SSHGitClient.__init__
    - current_target.encode
    - <builtin>.getattr
    - config.get_multivar
    - <builtin>.min
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - whitespace.append
    - dulwich.objects.Tree._serialize
    - dulwich.porcelain.active_branch
    - dulwich.client._get_transport_and_path_from_url
    - repo.parents_provider
    - user_uc.encode
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - kwargs.items
    - dulwich.objects._format_message
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - repo.path.encode
    - refspecs.encode
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.porcelain._do_merge
    - dulwich.merge.recursive_merge
    - os.makedirs
    - dulwich.config.ConfigFile.__init__
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.client.TCPGitClient.__init__
    - commondir.read
    - urllib.parse.urlparse._replace
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.config._check_section_name
    - active_ref.startswith
    - path.decode
    - dulwich.diff_tree._skip_tree
    - config.sections
    - dulwich.objects.Tree.__init__
    - dulwich.index._check_file_matches
    - urllib.parse.urlunparse
    - typing.cast.items
    - entry.pw_gecos.split
    - dulwich.objects.ShaFile.from_string
    - sep_corrected_path.decode
    - message.encode
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - refs.items
    - dulwich.objects.serialize_tree
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - typing.cast.id.lookup_path
    - dulwich.porcelain.get_remote_repo
    - config.get
    - dulwich.merge.Merger.merge_blobs
    - r.get_config_stack
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - typing.cast.id.items
    - dulwich.index.validate_path
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - blob_obj.as_raw_string
    - default_email.encode
    - spec.encode
    - dulwich.index._transition_to_file
    - dulwich.merge._create_virtual_commit
    - f.read
    - dulwich.graph.find_merge_base
    - tree_path.replace
    - dulwich.merge.Merger.merge_trees
    - nturl2path.url2pathname
    - dulwich.index._remove_empty_parents
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.config._parse_string
    - headers.append
    - dulwich.objects.Tree.add
    - old_paths_normalized.items
    - ret.extend
    - pwd.getpwuid
    - dulwich.porcelain.get_branch_remote
    - dulwich.objects.Commit._serialize
    - os.chmod
    - email_uc.encode
    - dulwich.protocol.capability_agent
    - dulwich.porcelain._filter_transport_kwargs
    - conflicts.append
    - dulwich.objects.Blob._serialize
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - time.time
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - wlst.iter
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - shutil.rmtree
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.unlink
    - dulwich.client._win32_url_to_path
    - dulwich.config.StackedConfig.get
    - value.strip
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - submodule_path.count
    - rename_detector.changes_with_renames
    - path.encode
    - os.path.exists
    - dulwich.config._check_variable_name
    - <builtin>.len
    - results.sort
    - <builtin>.list
    - ref.startswith
    - value.endswith
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - replacement.decode
    - dulwich.graph.find_octopus_base.lookup_stamp
    - <builtin>.int
    - remote_name.encode
    - repo.open_index
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - platform.system
    - dulwich.refs.extract_tag_name
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - <builtin>.set
    - blob_obj.raw_length
    - contents.decode
    - f.readline
    - filter_spec.encode
    - line.endswith
    - value.split
    - base_tree.items
    - unicodedata.normalize
    - dulwich.objects.git_line
    - dulwich.client.BundleClient._is_bundle_file
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - <builtin>.enumerate
    - merged_entries.items
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3538
    functionName: dulwich.cli.cmd_push.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - stripped_refs.items
    - dulwich.client.BundleClient.__init__
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - n.startswith
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - encoded_location.decode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - ref.endswith
    - orig_url.startswith
    - n.endswith
    - argparse.ArgumentParser
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.client._win32_url_to_path
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - refspecs.encode
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - os.makedirs
    - <builtin>.range
    - value.decode
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.client.TCPGitClient.__init__
    - gc.maybe_auto_gc
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - urllib.parse.urlparse._replace
    - value.startswith
    - active_ref.startswith
    - os.fspath
    - parser.parse_args
    - path.decode
    - dulwich.config._check_section_name
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - refspecs_bytes.append
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - ref.startswith
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - remote_location.encode
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.client.GitClient.__init__
    - replacement.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - client.send_pack
    - line.startswith
    - backend.get
    - <builtin>.int
    - remote_name.encode
    - dulwich.porcelain.get_remote_repo
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - ref.decode
    - name.encode
    - section_dict.items
    - dulwich.refs.extract_tag_name
    - r.refs.keys
    - cs.startswith
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - spec.encode
    - errstream.write
    - base_parsed._replace
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - f.readline
    - c.isalnum
    - r.get_config
    - line.endswith
    - included_paths.copy
    - dulwich.refs._import_remote_refs
    - urllib.parse.urlunparse.rstrip
    - f.write
    - typing.cast
    - typing.NewType
    - nturl2path.url2pathname
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - refspecs.append
    - dulwich.client.SSHGitClient.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - config.get_multivar
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - config.has_section
    - dulwich.client.LocalGitClient.from_parsedurl
    - whitespace.append
    - client.get_url
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client._get_transport_and_path_from_url
    - sys.stderr.write
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.get_branch_remote
    - location.split
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.porcelain.push
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - dulwich.porcelain._filter_transport_kwargs
    - <builtin>.issubclass
    - kwargs.items
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.protocol.strip_peeled_refs
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - refs_container.import_refs
    - urllib.parse.unquote
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 9
    IfCount: 9
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febadf44790>
    - <ast.Constant object at 0x7febadf44e80>
    - <ast.Name object at 0x7febadf44ac0>
    - <ast.Name object at 0x7febadf445e0>
    - <ast.Constant object at 0x7febadf44f70>
    argNames:
    - repo
    - remote_location
    - refspecs
    - outstream
    - errstream
    - force
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3085
    functionName: dulwich.porcelain.push
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - stripped_refs.items
    - dulwich.client.BundleClient.__init__
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - n.startswith
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - encoded_location.decode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - ref.endswith
    - dulwich.repo.Repo.__init__
    - orig_url.startswith
    - n.endswith
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.client._win32_url_to_path
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - refspecs.encode
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - os.makedirs
    - <builtin>.range
    - value.decode
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.client.TCPGitClient.__init__
    - gc.maybe_auto_gc
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - value.startswith
    - urllib.parse.urlparse._replace
    - active_ref.startswith
    - os.fspath
    - path.decode
    - dulwich.config._check_section_name
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - refspecs_bytes.append
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - remote_location.encode
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.client.GitClient.__init__
    - replacement.decode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - client.send_pack
    - line.startswith
    - backend.get
    - <builtin>.int
    - remote_name.encode
    - dulwich.porcelain.get_remote_repo
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - ref.decode
    - name.encode
    - section_dict.items
    - dulwich.refs.extract_tag_name
    - r.refs.keys
    - cs.startswith
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - spec.encode
    - errstream.write
    - base_parsed._replace
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - f.readline
    - c.isalnum
    - r.get_config
    - line.endswith
    - included_paths.copy
    - dulwich.refs._import_remote_refs
    - urllib.parse.urlunparse.rstrip
    - f.write
    - typing.cast
    - nturl2path.url2pathname
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - refspecs.append
    - dulwich.client.SSHGitClient.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - config.get_multivar
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - config.has_section
    - dulwich.client.LocalGitClient.from_parsedurl
    - whitespace.append
    - client.get_url
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.get_branch_remote
    - location.split
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - dulwich.porcelain._filter_transport_kwargs
    - <builtin>.issubclass
    - kwargs.items
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.protocol.strip_peeled_refs
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - refs_container.import_refs
    - urllib.parse.unquote
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3563
    functionName: dulwich.cli.cmd_remote_add.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - c.write_to_path
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - url.encode
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - r.get_config
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.porcelain.remote_add
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - c.set
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - c.has_section
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - repo
    - name
    - url
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5087
    functionName: dulwich.porcelain.remote_add
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - c.write_to_path
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - url.encode
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - c.set
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - c.has_section
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - RemoteExists
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3582
    functionName: dulwich.cli.SuperCommand.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - logger.error
    - logger.info
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3616
    functionName: dulwich.cli.cmd_submodule_list.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - todo.extend
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - stat.S_IFMT
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.submodule.iter_cached_submodules
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - tree.iteritems
    - cs.startswith
    - <builtin>.super
    - sys.stdout.write
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.porcelain.submodule_list
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - sha.decode
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2376
    functionName: dulwich.porcelain.submodule_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - todo.extend
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - stat.S_IFMT
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.submodule.iter_cached_submodules
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - tree.iteritems
    - cs.startswith
    - <builtin>.super
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - sha.decode
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3631
    functionName: dulwich.cli.cmd_submodule_init.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - config.set
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.porcelain.submodule_init
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - line.lstrip
    - <builtin>.open
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - config.write_to_path
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.config.parse_submodules
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - r.get_config
    - content.endswith
    - <builtin>.isinstance
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config.read_submodules
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2361
    functionName: dulwich.porcelain.submodule_init
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - config.set
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - line.lstrip
    - <builtin>.open
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - config.write_to_path
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.config.parse_submodules
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - r.get_config
    - content.endswith
    - <builtin>.isinstance
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config.read_submodules
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3645
    functionName: dulwich.cli.cmd_submodule_add.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config._escape_value
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.porcelain._canonical_part
    - os.fspath
    - dulwich.porcelain.submodule_add
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - line.lstrip
    - <builtin>.open
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.config.ConfigDict.set
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - os.path.relpath
    - c.isalnum
    - section_dict.set
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - values.items
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - value.replace
    - dulwich.refs.DiskRefsContainer.__init__
    - url.rsplit
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.encode
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.config.ConfigFile.write_to_path
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.config._format_string
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadd4f0a0>
    - <ast.Constant object at 0x7febadd4f070>
    argNames:
    - repo
    - url
    - path
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2326
    functionName: dulwich.porcelain.submodule_add
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config._escape_value
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - name.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.porcelain._canonical_part
    - dulwich.config._check_section_name
    - os.fspath
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - line.lstrip
    - <builtin>.open
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.config.ConfigDict.set
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - os.path.relpath
    - c.isalnum
    - section_dict.set
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - values.items
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - value.replace
    - dulwich.refs.DiskRefsContainer.__init__
    - url.rsplit
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.encode
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.config.ConfigFile.write_to_path
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.config._format_string
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 3662
    functionName: dulwich.cli.cmd_submodule_update.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.client.BundleClient.__init__
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.index.write_cache_time
    - <builtin>.range
    - new_rename_changes.append
    - urllib.parse.urlparse
    - contextlib.closing
    - r.controldir
    - dulwich.pack.SHA1Reader.check_sha
    - platform.machine
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - logger.debug
    - todo.extend
    - os.fspath
    - dulwich.porcelain.submodule_init
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - subsection.encode
    - threading.Lock
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - os.listdir
    - dulwich.config.StackedConfig.default
    - dulwich.index.build_file_from_blob
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - client.clone
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - dulwich.file._GitFile.seek
    - base_parsed._replace
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - normalized_blob.as_raw_string
    - included_paths.copy
    - path.split
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - filter_path.startswith
    - os.readlink
    - dulwich.index._encode_varint
    - st.__class__
    - dulwich.index._check_symlink_matches
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - dulwich.index.detect_case_only_renames
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - branch.decode
    - hashlib.sha1.digest
    - typing.cast.id.startswith
    - location.split
    - dulwich.porcelain.submodule_update
    - dulwich.repo.read_gitfile
    - client.fetch
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.issubclass
    - dulwich.index._transition_to_submodule
    - entries.items
    - dulwich.submodule.ensure_submodule_placeholder
    - urllib.parse.unquote
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - backends.append
    - dulwich.objectspec.parse_commit
    - dulwich.config.iter_instead_of
    - dulwich.filters.ProcessFilterDriver.__init__
    - user_host.rsplit
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - orig_url.startswith
    - argparse.ArgumentParser
    - os.close
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.protocol.agent_string
    - dulwich.refs.local_branch_name
    - value.decode
    - value.this.serialize
    - os.path.abspath
    - needle.decode
    - dulwich.config._find_git_in_win_reg
    - <builtin>.sorted
    - dulwich.config.StackedConfig.default_backends
    - dulwich.pack.SHA1Writer.tell
    - dulwich.index.Index.write
    - <builtin>.map
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - filter_name.decode
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.index.Index.update
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - os.mkdir
    - os.replace
    - element.lower
    - parser.parse_args
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.diff_tree.walk_trees
    - dulwich.index.write_cache_entry
    - dulwich.objects.ShaFile.as_raw_string
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.diff_tree.tree_changes
    - dulwich.client.GitClient.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - index.commit
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - dulwich.index.read_cache_entry
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - source.decode
    - dulwich.filters.FilterRegistry.get_driver
    - path.startswith
    - smudge_cmd_raw.decode
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - errstream.write
    - subprocess.run
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - sub_repo.index_path
    - sub_config.write_to_path
    - r.get_config
    - <builtin>.isinstance
    - os.path.relpath
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - submodule_name.encode
    - dulwich.filters.CompositeFilterDriver.__init__
    - f.write
    - urllib.parse.urlunparse.rstrip
    - typing.cast
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.config._strip_comments
    - dulwich.client.SSHGitClient.__init__
    - current_target.encode
    - <builtin>.getattr
    - config.get_multivar
    - <builtin>.min
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - whitespace.append
    - path_segments.encode
    - dulwich.objects.Tree._serialize
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.porcelain.reset
    - typing.cast.startswith
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - kwargs.items
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - dulwich.object_store.iter_tree_contents
    - dulwich.filters.FilterRegistry._create_from_config
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - ret.setdefault
    - dulwich.porcelain.clone
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - warnings.warn
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - extensions.append
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - extension.to_bytes
    - index.clear
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.index.write_index_dict
    - dulwich.client.TCPGitClient.__init__
    - hashlib.sha1
    - commondir.read
    - urllib.parse.urlparse._replace
    - value.startswith
    - os.remove
    - meaningful_extensions.append
    - dulwich.config._check_section_name
    - dulwich.config.StackedConfig.__init__
    - path.decode
    - dulwich.diff_tree._skip_tree
    - config.sections
    - dulwich.objects.Tree.__init__
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index._check_file_matches
    - urllib.parse.urlunparse
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - line.lstrip
    - dulwich.submodule.iter_cached_submodules
    - r.get_blob_normalizer
    - dulwich.client.LocalGitClient.__init__
    - os.path.dirname
    - config_ssh_command.decode
    - dulwich.objects.serialize_tree
    - env_action.encode
    - line.startswith
    - logging.debug
    - dulwich.index.index_entry_from_stat
    - backend.get
    - dulwich.objectspec.parse_commit.dereference_tag
    - config.get
    - value.ancestor.serialize
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - config.write_to_path
    - section_dict.items
    - dulwich.objectspec.to_bytes
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - sub_config.set
    - blob_obj.as_raw_string
    - extra.append
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - subentry.in_path
    - dulwich.index._transition_to_file
    - f.read
    - tree_path.replace
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - nturl2path.url2pathname
    - dulwich.config.read_submodules
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - <builtin>.divmod
    - os.kill
    - dulwich.config._parse_string
    - headers.append
    - dulwich.filters.CompositeFilterDriver.smudge
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.objects.Commit._serialize
    - os.chmod
    - r.head
    - dulwich.protocol.capability_agent
    - dulwich.porcelain._filter_transport_kwargs
    - dulwich.objects.Blob._serialize
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.file._GitFile.read
    - filter_driver.smudge
    - dulwich.index.IndexEntry.from_serialized
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - sub_repo.get_config
    - os.path.join
    - shutil.rmtree
    - dulwich.index.write_index
    - os.unlink
    - branch.encode
    - dulwich.client._win32_url_to_path
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.index.UntrackedExtension.__init__
    - submodules_to_update.append
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - <builtin>.any
    - attributes.get
    - ext.to_bytes
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - dulwich.config._find_git_in_win_path
    - result.append
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.pack.SHA1Writer.write
    - os.path.expanduser
    - os.path.exists
    - paths.append
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - value.endswith
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - replacement.decode
    - <builtin>.int
    - typing.cast.id.hex
    - repo.open_index
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - entries_list.append
    - dulwich.index._normalize_path_element_default
    - sub_repo.close
    - url_value.decode
    - <builtin>.super
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - dulwich.config.parse_submodules
    - <builtin>.set
    - value.other.serialize
    - blob_obj.raw_length
    - contents.decode
    - struct.pack
    - object_store.iter_prefix
    - f.readline
    - dulwich.pack.SHA1Writer.__init__
    - clean_cmd_raw.decode
    - filter_spec.encode
    - line.endswith
    - value.split
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - source.split
    - unicodedata.normalize
    - dulwich.index.Index.read
    - os.open
    - value.serialize
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - winreg.OpenKey
    - dulwich.client.BundleClient._is_bundle_file
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.IndexExtension.from_raw
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - treeish.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 13
    IfCount: 10
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1c28b0>
    - <ast.Constant object at 0x7febaf1c2a30>
    - <ast.Constant object at 0x7febaf1c2d00>
    - <ast.Constant object at 0x7febaf1c2f70>
    - <ast.Constant object at 0x7febaf1c20a0>
    argNames:
    - repo
    - paths
    - init
    - force
    - recursive
    - errstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 2391
    functionName: dulwich.porcelain.submodule_update
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - dulwich.client.BundleClient.__init__
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.index.write_cache_time
    - <builtin>.range
    - new_rename_changes.append
    - urllib.parse.urlparse
    - contextlib.closing
    - r.controldir
    - dulwich.pack.SHA1Reader.check_sha
    - platform.machine
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - logger.debug
    - todo.extend
    - os.fspath
    - dulwich.porcelain.submodule_init
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - subsection.encode
    - threading.Lock
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - os.listdir
    - dulwich.config.StackedConfig.default
    - dulwich.index.build_file_from_blob
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - client.clone
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - dulwich.file._GitFile.seek
    - base_parsed._replace
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - dulwich.index._encode_varint
    - st.__class__
    - dulwich.index._check_symlink_matches
    - dulwich.client.AbstractHttpGitClient.__init__
    - dulwich.client.LocalGitClient.from_parsedurl
    - dulwich.index.detect_case_only_renames
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.config.get_win_system_paths
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - hashlib.sha1.digest
    - branch.decode
    - typing.cast.id.startswith
    - location.split
    - dulwich.porcelain.submodule_update
    - dulwich.repo.read_gitfile
    - client.fetch
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - <builtin>.issubclass
    - dulwich.index._transition_to_submodule
    - entries.items
    - dulwich.submodule.ensure_submodule_placeholder
    - urllib.parse.unquote
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - backends.append
    - dulwich.objectspec.parse_commit
    - dulwich.config.iter_instead_of
    - paths_becoming_dirs.add
    - user_host.rsplit
    - dulwich.filters.ProcessFilterDriver.__init__
    - config.set
    - ret._handle_include_directive
    - orig_url.startswith
    - os.close
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.protocol.agent_string
    - dulwich.refs.local_branch_name
    - value.decode
    - value.this.serialize
    - os.path.abspath
    - needle.decode
    - <builtin>.sorted
    - dulwich.config._find_git_in_win_reg
    - dulwich.config.StackedConfig.default_backends
    - dulwich.pack.SHA1Writer.tell
    - dulwich.index.Index.write
    - <builtin>.map
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - filter_name.decode
    - dulwich.index.Index.update
    - os.replace
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - os.mkdir
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.diff_tree.walk_trees
    - dulwich.index.write_cache_entry
    - dulwich.objects.ShaFile.as_raw_string
    - normalized.lower
    - stat.S_IMODE
    - dulwich.objects.Blob.__init__
    - dulwich.diff_tree.tree_changes
    - dulwich.client.GitClient.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - index.commit
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - dulwich.index.read_cache_entry
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - source.decode
    - dulwich.filters.FilterRegistry.get_driver
    - path.startswith
    - smudge_cmd_raw.decode
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - os.path.split
    - dulwich.pack.SHA1Reader.__init__
    - errstream.write
    - subprocess.run
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - sub_repo.index_path
    - sub_config.write_to_path
    - r.get_config
    - <builtin>.isinstance
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - submodule_name.encode
    - dulwich.filters.CompositeFilterDriver.__init__
    - f.write
    - urllib.parse.urlunparse.rstrip
    - typing.cast
    - typing.NewType
    - dulwich.filters.ProcessFilterDriver.cleanup
    - dulwich.config._strip_comments
    - dulwich.client.SSHGitClient.__init__
    - current_target.encode
    - <builtin>.getattr
    - config.get_multivar
    - <builtin>.min
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - whitespace.append
    - path_segments.encode
    - dulwich.objects.Tree._serialize
    - dulwich.client._get_transport_and_path_from_url
    - dulwich.porcelain.reset
    - typing.cast.startswith
    - paths.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - kwargs.items
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - dulwich.object_store.iter_tree_contents
    - dulwich.filters.FilterRegistry._create_from_config
    - io.BytesIO.readlines
    - winreg.QueryValueEx
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - ret.setdefault
    - dulwich.porcelain.clone
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - warnings.warn
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - config.get_boolean
    - extensions.append
    - dulwich.repo.Repo.get_config
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - extension.to_bytes
    - index.clear
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.index.write_index_dict
    - dulwich.client.TCPGitClient.__init__
    - hashlib.sha1
    - commondir.read
    - urllib.parse.urlparse._replace
    - value.startswith
    - os.remove
    - meaningful_extensions.append
    - dulwich.config._check_section_name
    - dulwich.config.StackedConfig.__init__
    - path.decode
    - dulwich.diff_tree._skip_tree
    - config.sections
    - dulwich.objects.Tree.__init__
    - dulwich.filters.FilterContext.get_driver
    - dulwich.index._check_file_matches
    - urllib.parse.urlunparse
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.submodule.iter_cached_submodules
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.client.LocalGitClient.__init__
    - os.path.dirname
    - config_ssh_command.decode
    - dulwich.objects.serialize_tree
    - env_action.encode
    - logging.debug
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - dulwich.objectspec.parse_commit.dereference_tag
    - config.get
    - value.ancestor.serialize
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - config.write_to_path
    - section_dict.items
    - dulwich.objectspec.to_bytes
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - sub_config.set
    - blob_obj.as_raw_string
    - extra.append
    - dulwich.config.get_xdg_config_home_path
    - os.rename
    - subentry.in_path
    - dulwich.index._transition_to_file
    - f.read
    - tree_path.replace
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - nturl2path.url2pathname
    - dulwich.config.read_submodules
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - <builtin>.divmod
    - os.kill
    - dulwich.config._parse_string
    - headers.append
    - dulwich.filters.CompositeFilterDriver.smudge
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.objects.Commit._serialize
    - os.chmod
    - r.head
    - dulwich.protocol.capability_agent
    - dulwich.porcelain._filter_transport_kwargs
    - dulwich.objects.Blob._serialize
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.file._GitFile.read
    - filter_driver.smudge
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.index._remove_file_with_readonly_handling
    - sub_repo.get_config
    - os.path.join
    - shutil.rmtree
    - dulwich.index.write_index
    - os.unlink
    - branch.encode
    - dulwich.client._win32_url_to_path
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - submodules_to_update.append
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - ext.to_bytes
    - attributes.get
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - dulwich.config._find_git_in_win_path
    - result.append
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.pack.SHA1Writer.write
    - os.path.expanduser
    - os.path.exists
    - paths.append
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - value.endswith
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - replacement.decode
    - <builtin>.int
    - typing.cast.id.hex
    - repo.open_index
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - entries_list.append
    - dulwich.index._normalize_path_element_default
    - sub_repo.close
    - url_value.decode
    - <builtin>.super
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - dulwich.config.parse_submodules
    - <builtin>.set
    - value.other.serialize
    - blob_obj.raw_length
    - contents.decode
    - struct.pack
    - object_store.iter_prefix
    - f.readline
    - dulwich.pack.SHA1Writer.__init__
    - clean_cmd_raw.decode
    - filter_spec.encode
    - line.endswith
    - value.split
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - source.split
    - unicodedata.normalize
    - dulwich.index.Index.read
    - os.open
    - value.serialize
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - winreg.OpenKey
    - dulwich.client.BundleClient._is_bundle_file
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.IndexExtension.from_raw
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - treeish.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3708
    functionName: dulwich.cli.cmd_check_ignore.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - path.endswith
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - dulwich.ignore.IgnoreFilter.__init__
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - char.encode
    - original_path_str.endswith
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.check_ignore
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.ignore.IgnoreFilter.from_path
    - <builtin>.ord
    - os.path.dirname
    - value.endswith
    - pathlib.Path.resolve
    - dulwich.ignore.IgnoreFilter.append_pattern
    - contextlib.suppress
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - section_dict.items
    - ignore_manager.is_ignored
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - os.path.relpath
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - pat.endswith
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - path.rstrip
    - dulwich.porcelain._quote_path
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febab3c5a00>
    - <ast.Constant object at 0x7febab3c59d0>
    argNames:
    - repo
    - paths
    - no_index
    - quote_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5165
    functionName: dulwich.porcelain.check_ignore
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - path.endswith
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.ignore.IgnoreFilter.__init__
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - char.encode
    - original_path_str.endswith
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.ignore.IgnoreFilter.from_path
    - <builtin>.ord
    - os.path.dirname
    - value.endswith
    - pathlib.Path.resolve
    - dulwich.ignore.IgnoreFilter.append_pattern
    - contextlib.suppress
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - section_dict.items
    - ignore_manager.is_ignored
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - os.path.relpath
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - pat.endswith
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - path.rstrip
    - dulwich.porcelain._quote_path
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3727
    functionName: dulwich.cli.cmd_check_mailmap.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.check_mailmap
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.mailmap.Mailmap.__init__
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.mailmap.parse_identity
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.mailmap.Mailmap.add_entry
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - email_str.rstrip
    - parser.parse_args
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - line.strip
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - text.rsplit
    - dulwich.mailmap.Mailmap.lookup
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - name_str.strip
    - f.read
    - ret.append
    - dulwich.mailmap.Mailmap.from_path
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.mailmap.read_mailmap
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - from_identity.strip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - contact.encode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - contact
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6027
    functionName: dulwich.porcelain.check_mailmap
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.mailmap.Mailmap.__init__
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.mailmap.parse_identity
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.mailmap.Mailmap.add_entry
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - email_str.rstrip
    - path.decode
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - line.strip
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - text.rsplit
    - dulwich.mailmap.Mailmap.lookup
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - name_str.strip
    - f.read
    - ret.append
    - dulwich.mailmap.Mailmap.from_path
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.mailmap.read_mailmap
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - from_identity.strip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - contact.encode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 17
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3744
    functionName: dulwich.cli.cmd_branch.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - item.ljust
    - name.decode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - time_str.replace
    - dulwich.porcelain.merged_branches
    - wlst.iter
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - dulwich.porcelain._make_branch_ref
    - repo_config.write_to_path
    - os.fsdecode
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - wlst.get
    - os.get_terminal_size
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.porcelain.branch_list
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.porcelain.filter_branches_by_pattern
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - dulwich.cli.format_columns
    - normalized.endswith
    - lines.append
    - fnmatch.fnmatchcase
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - objectish_ref.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.porcelain.branch_create
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.cli.detect_terminal_width
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - r.refs.add_if_new
    - col_widths.append
    - repo.open_index
    - config.get
    - <builtin>.str
    - dulwich.graph.can_fast_forward
    - dulwich.approxidate.parse_relative_time
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.objectspec.parse_tree
    - sort_key.startswith
    - r.get_config_stack
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - part.strip
    - cands.append
    - dulwich.porcelain._get_branch_merge_status
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - r.refs.keys
    - dulwich.objectspec.to_bytes
    - dulwich.porcelain.branch_delete
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.max
    - datetime.datetime.strptime
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - sys.stdout.write
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - original_objectish.encode
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.cast
    - line_parts.append
    - dulwich.porcelain.branches_containing
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - mode.split
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - repo.parents_provider
    - dulwich.objectspec._parse_number_suffix
    - sys.stderr.write
    - branch.decode
    - r.refs.set_if_equals
    - ret._values.setdefault
    - ret.extend
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - branches.sort
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - dulwich.porcelain.branch_remotes_list
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.cli.cmd_branch.run.print_branches
    - repo_config.set
    - dulwich.porcelain.no_merged_branches
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - objectish.encode
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febad9236a0>
    argNames:
    - branches
    - use_columns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 3792
    functionName: dulwich.cli.cmd_branch.run.print_branches
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - item.ljust
    - dulwich.cli.detect_terminal_width
    - os.get_terminal_size
    - part.strip
    - dulwich.cli.format_columns
    - lines.append
    - <builtin>.len
    - <builtin>.min
    - col_widths.append
    - mode.split
    - <builtin>.range
    - line_parts.append
    - <builtin>.max
    - sys.stdout.write
    - <builtin>.sum
    - branch.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: branch.decode
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4141
    functionName: dulwich.porcelain.branch_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - sort_key.startswith
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - r.refs.keys
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - branches.sort
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4198
    functionName: dulwich.porcelain.branch_remotes_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - sort_key.startswith
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - r.refs.keys
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - branches.sort
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4275
    functionName: dulwich.porcelain.merged_branches
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.graph.can_fast_forward
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - dulwich.porcelain._get_branch_merge_status
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - cs.startswith
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4289
    functionName: dulwich.porcelain.no_merged_branches
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.graph.can_fast_forward
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - dulwich.porcelain._get_branch_merge_status
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - cs.startswith
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - commit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4303
    functionName: dulwich.porcelain.branches_containing
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.graph.can_fast_forward
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - branches
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4126
    functionName: dulwich.porcelain.filter_branches_by_pattern
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - branch.decode
    - fnmatch.fnmatchcase
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4006
    functionName: dulwich.porcelain.branch_delete
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 5
    IfCount: 13
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf765190>
    - <ast.Constant object at 0x7febaf765f70>
    argNames:
    - repo
    - name
    - objectish
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4022
    functionName: dulwich.porcelain.branch_create
    functionSourceFile: dulwich.porcelain
    functionUses: 6
    functionsReached:
    - name.decode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - repo_config.write_to_path
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - objectish_ref.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - line.startswith
    - backend.get
    - time_str.replace
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - r.refs.add_if_new
    - repo.open_index
    - config.get
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - original_objectish.encode
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - r.refs.set_if_equals
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - repo_config.set
    - dulwich.repo.Repo.controldir
    - objectish.encode
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 3858
    functionName: dulwich.cli.cmd_checkout.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - name.decode
    - dulwich.index._has_directory_changed
    - dulwich.objects.format_time_entry
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - os.fsdecode
    - index.changes_from_tree
    - dulwich.config.Config.get_boolean
    - <builtin>.range
    - new_rename_changes.append
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - pat.split
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - typing.cast.id.split
    - todo.extend
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.porcelain.branch_create
    - subsection.encode
    - index.iteritems
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - time_str.replace
    - os.listdir
    - path.replace
    - dulwich.index.build_file_from_blob
    - dulwich.repo.Repo.commondir
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - time_spec.decode
    - status_report.staged.get
    - dulwich.objectspec.parse_ref
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - filenames.remove
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - global_filters.append
    - dulwich.porcelain.update_head
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - binascii.unhexlify
    - target_tree.lookup_path
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.object_store.DiskObjectStore.from_config
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - re.compile
    - r.refs.set_symbolic_ref
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.ignore._handle_double_asterisk
    - dulwich.objects.Tag._serialize
    - dulwich.ignore.Pattern.__init__
    - dulwich.index._transition_to_submodule
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.objectspec._parse_number_suffix
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - dulwich.objectspec.parse_commit
    - dulwich.index._check_entry_for_changes
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - argparse.ArgumentParser
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.objectspec._resolve_object
    - dulwich.refs.local_branch_name
    - value.decode
    - os.path.abspath
    - future.result
    - re.escape
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.environ.get
    - dulwich.porcelain.get_tree_changes
    - element.lower
    - parser.parse_args
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - executor.submit
    - stat.S_IFMT
    - change.encode
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - repo.get_blob_normalizer
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.diff_tree.tree_changes
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - new_branch.encode
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - line.strip
    - dulwich.porcelain.checkout
    - path.startswith
    - name.encode
    - os.fdopen
    - r.refs.keys
    - pattern.endswith
    - cs.startswith
    - dulwich.config.ConfigDict.items
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - r.get_config
    - collections.namedtuple
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - current_target.encode
    - <builtin>.min
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.porcelain.status
    - dt.timestamp
    - dulwich.porcelain._get_current_head_tree
    - whitespace.append
    - pathlib.Path
    - dulwich.objects.Tree._serialize
    - pathlib.Path.parent.resolve
    - typing.cast.startswith
    - byte_paths.append
    - line.replace
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - repo_config.set
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - worktree.stage
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - repo_config.write_to_path
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - dt.replace
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.refs.parse_remote_ref
    - dulwich.index.blob_from_path_and_stat
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.diff_tree._skip_tree
    - dulwich.objects.Tree.__init__
    - dulwich.index.blob_from_path_and_mode
    - spec.isdigit
    - dulwich.index._check_file_matches
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - pathlib.Path.resolve
    - dulwich.objects.serialize_tree
    - dulwich.index.get_unstaged_changes
    - os.walk
    - env_action.encode
    - time_spec.strip
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - r.refs.add_if_new
    - config.get
    - r.get_config_stack
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - section_dict.items
    - config.write_to_path
    - dulwich.objectspec.to_bytes
    - dulwich.ignore._translate_segment
    - dulwich.index.validate_path
    - blob_obj.as_raw_string
    - datetime.datetime.strptime
    - dulwich.index._transition_to_file
    - original_objectish.encode
    - f.read
    - tree_path.replace
    - dulwich.porcelain.set_branch_tracking
    - entries.reverse
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - dulwich.ignore.translate
    - target.encode
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - headers.append
    - remainder.split
    - logger.error
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.index.read_submodule_head
    - dulwich.objects.Commit._serialize
    - os.chmod
    - changes.extend
    - dulwich.objects.Blob._serialize
    - dulwich.porcelain._perform_tree_switch
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - time.time
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - os.unlink
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - typing.cast.lookup_path
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - dulwich.porcelain._check_uncommitted_changes
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - path.encode
    - os.path.expanduser
    - os.path.exists
    - objectish_ref.startswith
    - name.startswith
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - ref.startswith
    - dulwich.repo.BaseRepo.head
    - <builtin>.ord
    - value.endswith
    - dulwich.index.validate_path_element_hfs
    - <builtin>.int
    - repo.open_index
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - dulwich.ignore._handle_leading_patterns
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - <builtin>.set
    - blob_obj.raw_length
    - contents.decode
    - object_store.iter_prefix
    - dulwich.porcelain.path_to_tree_path
    - dulwich.porcelain.get_untracked_paths
    - line.endswith
    - value.split
    - pat.endswith
    - repo.get_config_stack
    - unicodedata.normalize
    - dulwich.porcelain._walk_working_dir_paths
    - target_bytes.startswith
    - os.open
    - dulwich.objects.git_line
    - line.rstrip
    - sys.stderr.write
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - objectish.encode
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 28
    ICount: 13
    IfCount: 19
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febab3a92e0>
    - <ast.Constant object at 0x7febab3a92b0>
    - <ast.Constant object at 0x7febab3a9280>
    - <ast.Constant object at 0x7febab3a9250>
    argNames:
    - repo
    - target
    - force
    - new_branch
    - paths
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 5422
    functionName: dulwich.porcelain.checkout
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - name.decode
    - dulwich.index._has_directory_changed
    - dulwich.objects.format_time_entry
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - os.fsdecode
    - index.changes_from_tree
    - dulwich.config.Config.get_boolean
    - <builtin>.range
    - new_rename_changes.append
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - pat.split
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - typing.cast.id.split
    - todo.extend
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.porcelain.branch_create
    - subsection.encode
    - index.iteritems
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - time_str.replace
    - os.listdir
    - path.replace
    - dulwich.index.build_file_from_blob
    - dulwich.repo.Repo.commondir
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - time_spec.decode
    - status_report.staged.get
    - dulwich.objectspec.parse_ref
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - filenames.remove
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - global_filters.append
    - dulwich.porcelain.update_head
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - binascii.unhexlify
    - target_tree.lookup_path
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.object_store.DiskObjectStore.from_config
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - re.compile
    - r.refs.set_symbolic_ref
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.ignore._handle_double_asterisk
    - dulwich.objects.Tag._serialize
    - dulwich.ignore.Pattern.__init__
    - dulwich.index._transition_to_submodule
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.objectspec._parse_number_suffix
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - dulwich.objectspec.parse_commit
    - dulwich.index._check_entry_for_changes
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.objectspec._resolve_object
    - dulwich.refs.local_branch_name
    - value.decode
    - os.path.abspath
    - future.result
    - re.escape
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.environ.get
    - dulwich.porcelain.get_tree_changes
    - element.lower
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - executor.submit
    - stat.S_IFMT
    - change.encode
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - repo.get_blob_normalizer
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.diff_tree.tree_changes
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - new_branch.encode
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - line.strip
    - path.startswith
    - name.encode
    - os.fdopen
    - r.refs.keys
    - pattern.endswith
    - cs.startswith
    - dulwich.config.ConfigDict.items
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - r.get_config
    - collections.namedtuple
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - current_target.encode
    - <builtin>.min
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.porcelain.status
    - dt.timestamp
    - dulwich.porcelain._get_current_head_tree
    - whitespace.append
    - pathlib.Path
    - dulwich.objects.Tree._serialize
    - pathlib.Path.parent.resolve
    - typing.cast.startswith
    - byte_paths.append
    - line.replace
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - repo_config.set
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - worktree.stage
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - repo_config.write_to_path
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dt.replace
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.refs.parse_remote_ref
    - dulwich.index.blob_from_path_and_stat
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.diff_tree._skip_tree
    - dulwich.objects.Tree.__init__
    - dulwich.index.blob_from_path_and_mode
    - spec.isdigit
    - dulwich.index._check_file_matches
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - pathlib.Path.resolve
    - dulwich.objects.serialize_tree
    - dulwich.index.get_unstaged_changes
    - os.walk
    - env_action.encode
    - time_spec.strip
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - r.refs.add_if_new
    - config.get
    - r.get_config_stack
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - section_dict.items
    - config.write_to_path
    - dulwich.objectspec.to_bytes
    - dulwich.ignore._translate_segment
    - dulwich.index.validate_path
    - blob_obj.as_raw_string
    - datetime.datetime.strptime
    - dulwich.index._transition_to_file
    - original_objectish.encode
    - f.read
    - tree_path.replace
    - dulwich.porcelain.set_branch_tracking
    - entries.reverse
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - dulwich.ignore.translate
    - target.encode
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - headers.append
    - remainder.split
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.index.read_submodule_head
    - dulwich.objects.Commit._serialize
    - os.chmod
    - changes.extend
    - dulwich.objects.Blob._serialize
    - dulwich.porcelain._perform_tree_switch
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - time.time
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - os.unlink
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - typing.cast.lookup_path
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - dulwich.porcelain._check_uncommitted_changes
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - path.encode
    - os.path.expanduser
    - os.path.exists
    - objectish_ref.startswith
    - name.startswith
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - ref.startswith
    - dulwich.repo.BaseRepo.head
    - <builtin>.ord
    - value.endswith
    - dulwich.index.validate_path_element_hfs
    - <builtin>.int
    - repo.open_index
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - dulwich.ignore._handle_leading_patterns
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - <builtin>.set
    - blob_obj.raw_length
    - contents.decode
    - object_store.iter_prefix
    - dulwich.porcelain.path_to_tree_path
    - dulwich.porcelain.get_untracked_paths
    - line.endswith
    - value.split
    - pat.endswith
    - repo.get_config_stack
    - unicodedata.normalize
    - dulwich.porcelain._walk_working_dir_paths
    - target_bytes.startswith
    - os.open
    - dulwich.objects.git_line
    - line.rstrip
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - objectish.encode
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - ValueError
    - CheckoutError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3903
    functionName: dulwich.cli.cmd_restore.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - os.unlink
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index._fs_to_tree_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - fs_path_str.encode
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.index.build_file_from_blob
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - fs_path_bytes.replace
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - contents.decode
    - ret.append
    - target_path.decode
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - dulwich.config.ConfigDict.get
    - dulwich._objects.sorted_tree_items
    - binascii.unhexlify
    - typing.cast.encode
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - sys.stderr.write
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.porcelain.restore
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 4
    IfCount: 10
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febad689ca0>
    - <ast.Constant object at 0x7febad689c70>
    - <ast.Constant object at 0x7febad689c40>
    argNames:
    - repo
    - paths
    - source
    - staged
    - worktree
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5598
    functionName: dulwich.porcelain.restore
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - os.unlink
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index._fs_to_tree_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - fs_path_str.encode
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.index.build_file_from_blob
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - fs_path_bytes.replace
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - contents.decode
    - ret.append
    - target_path.decode
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    - CheckoutError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 3959
    functionName: dulwich.cli.cmd_switch.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - name.decode
    - dulwich.index._has_directory_changed
    - dulwich.objects.format_time_entry
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - index.changes_from_tree
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - <builtin>.range
    - new_rename_changes.append
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - pat.split
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - typing.cast.id.split
    - todo.extend
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.porcelain.branch_create
    - subsection.encode
    - index.iteritems
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - time_str.replace
    - os.listdir
    - path.replace
    - dulwich.index.build_file_from_blob
    - dulwich.repo.Repo.commondir
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - time_spec.decode
    - status_report.staged.get
    - dulwich.objectspec.parse_ref
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - filenames.remove
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - normalized_blob.as_raw_string
    - included_paths.copy
    - path.split
    - global_filters.append
    - dulwich.porcelain.update_head
    - dulwich.porcelain.switch
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - target_tree.lookup_path
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.object_store.DiskObjectStore.from_config
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - re.compile
    - r.refs.set_symbolic_ref
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.ignore._handle_double_asterisk
    - dulwich.objects.Tag._serialize
    - dulwich.ignore.Pattern.__init__
    - dulwich.index._transition_to_submodule
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.objectspec._parse_number_suffix
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - dulwich.objectspec.parse_commit
    - dulwich.index._check_entry_for_changes
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - argparse.ArgumentParser
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.objectspec._resolve_object
    - dulwich.refs.local_branch_name
    - value.decode
    - os.path.abspath
    - future.result
    - re.escape
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.environ.get
    - dulwich.porcelain.get_tree_changes
    - element.lower
    - parser.parse_args
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - executor.submit
    - stat.S_IFMT
    - change.encode
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - repo.get_blob_normalizer
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.diff_tree.tree_changes
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - line.strip
    - path.startswith
    - name.encode
    - r.refs.keys
    - pattern.endswith
    - cs.startswith
    - dulwich.config.ConfigDict.items
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - r.get_config
    - collections.namedtuple
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - current_target.encode
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.porcelain.status
    - os.path.isdir
    - dt.timestamp
    - dulwich.porcelain._get_current_head_tree
    - whitespace.append
    - pathlib.Path
    - dulwich.objects.Tree._serialize
    - pathlib.Path.parent.resolve
    - typing.cast.startswith
    - line.replace
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - repo_config.set
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - repo_config.write_to_path
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - dt.replace
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.refs.parse_remote_ref
    - dulwich.index.blob_from_path_and_stat
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.diff_tree._skip_tree
    - dulwich.objects.Tree.__init__
    - dulwich.index.blob_from_path_and_mode
    - spec.isdigit
    - dulwich.index._check_file_matches
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.ignore.IgnoreFilter.from_path
    - os.path.dirname
    - dirnames.remove
    - pathlib.Path.resolve
    - dulwich.objects.serialize_tree
    - dulwich.index.get_unstaged_changes
    - os.walk
    - env_action.encode
    - time_spec.strip
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - r.refs.add_if_new
    - config.get
    - r.get_config_stack
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - section_dict.items
    - config.write_to_path
    - dulwich.objectspec.to_bytes
    - dulwich.ignore._translate_segment
    - dulwich.index.validate_path
    - blob_obj.as_raw_string
    - datetime.datetime.strptime
    - dulwich.index._transition_to_file
    - original_objectish.encode
    - f.read
    - tree_path.replace
    - dulwich.porcelain.set_branch_tracking
    - entries.reverse
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - dulwich.ignore.translate
    - target.encode
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - headers.append
    - remainder.split
    - logger.error
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.index.read_submodule_head
    - dulwich.objects.Commit._serialize
    - os.chmod
    - changes.extend
    - dulwich.objects.Blob._serialize
    - dulwich.porcelain._perform_tree_switch
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - time.time
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - os.unlink
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - typing.cast.lookup_path
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - dulwich.porcelain._check_uncommitted_changes
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - os.path.exists
    - objectish_ref.startswith
    - name.startswith
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - ref.startswith
    - dulwich.repo.BaseRepo.head
    - value.endswith
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - <builtin>.int
    - repo.open_index
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - dulwich.ignore._handle_leading_patterns
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - <builtin>.set
    - blob_obj.raw_length
    - contents.decode
    - object_store.iter_prefix
    - dulwich.porcelain.path_to_tree_path
    - dulwich.porcelain.get_untracked_paths
    - line.endswith
    - value.split
    - pat.endswith
    - repo.get_config_stack
    - unicodedata.normalize
    - dulwich.porcelain._walk_working_dir_paths
    - target_bytes.startswith
    - dulwich.objects.git_line
    - line.rstrip
    - sys.stderr.write
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - create.encode
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - objectish.encode
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 8
    IfCount: 12
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febad6a39d0>
    - <ast.Constant object at 0x7febad6a39a0>
    - <ast.Constant object at 0x7febad6a3970>
    argNames:
    - repo
    - target
    - create
    - force
    - detach
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 5733
    functionName: dulwich.porcelain.switch
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - name.decode
    - dulwich.index._has_directory_changed
    - dulwich.objects.format_time_entry
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - index.changes_from_tree
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - <builtin>.range
    - new_rename_changes.append
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - pat.split
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - typing.cast.id.split
    - todo.extend
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.porcelain.branch_create
    - subsection.encode
    - index.iteritems
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - time_str.replace
    - os.listdir
    - path.replace
    - dulwich.index.build_file_from_blob
    - dulwich.repo.Repo.commondir
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - time_spec.decode
    - status_report.staged.get
    - dulwich.objectspec.parse_ref
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - filenames.remove
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - normalized_blob.as_raw_string
    - included_paths.copy
    - path.split
    - global_filters.append
    - dulwich.porcelain.update_head
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - binascii.unhexlify
    - target_tree.lookup_path
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.object_store.DiskObjectStore.from_config
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - r.refs.set_symbolic_ref
    - re.compile
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.ignore._handle_double_asterisk
    - dulwich.objects.Tag._serialize
    - dulwich.ignore.Pattern.__init__
    - dulwich.index._transition_to_submodule
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.objectspec._parse_number_suffix
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - dulwich.objectspec.parse_commit
    - dulwich.index._check_entry_for_changes
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.objectspec._resolve_object
    - dulwich.refs.local_branch_name
    - value.decode
    - os.path.abspath
    - future.result
    - re.escape
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.environ.get
    - dulwich.porcelain.get_tree_changes
    - element.lower
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - executor.submit
    - stat.S_IFMT
    - change.encode
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - repo.get_blob_normalizer
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.diff_tree.tree_changes
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - line.strip
    - path.startswith
    - name.encode
    - r.refs.keys
    - pattern.endswith
    - cs.startswith
    - dulwich.config.ConfigDict.items
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - r.get_config
    - collections.namedtuple
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - current_target.encode
    - <builtin>.min
    - <builtin>.getattr
    - dulwich.porcelain.status
    - os.path.isdir
    - dt.timestamp
    - dulwich.porcelain._get_current_head_tree
    - whitespace.append
    - pathlib.Path
    - dulwich.objects.Tree._serialize
    - pathlib.Path.parent.resolve
    - typing.cast.startswith
    - line.replace
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - repo_config.set
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - repo_config.write_to_path
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dt.replace
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.refs.parse_remote_ref
    - dulwich.index.blob_from_path_and_stat
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.diff_tree._skip_tree
    - dulwich.objects.Tree.__init__
    - dulwich.index.blob_from_path_and_mode
    - spec.isdigit
    - dulwich.index._check_file_matches
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.ignore.IgnoreFilter.from_path
    - os.path.dirname
    - dirnames.remove
    - pathlib.Path.resolve
    - dulwich.objects.serialize_tree
    - dulwich.index.get_unstaged_changes
    - os.walk
    - env_action.encode
    - time_spec.strip
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - r.refs.add_if_new
    - config.get
    - r.get_config_stack
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - section_dict.items
    - config.write_to_path
    - dulwich.objectspec.to_bytes
    - dulwich.ignore._translate_segment
    - dulwich.index.validate_path
    - blob_obj.as_raw_string
    - datetime.datetime.strptime
    - dulwich.index._transition_to_file
    - original_objectish.encode
    - f.read
    - tree_path.replace
    - dulwich.porcelain.set_branch_tracking
    - entries.reverse
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - dulwich.ignore.translate
    - target.encode
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - headers.append
    - remainder.split
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.index.read_submodule_head
    - dulwich.objects.Commit._serialize
    - os.chmod
    - changes.extend
    - dulwich.objects.Blob._serialize
    - dulwich.porcelain._perform_tree_switch
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - time.time
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - os.unlink
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - typing.cast.lookup_path
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - dulwich.porcelain._check_uncommitted_changes
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - os.path.exists
    - objectish_ref.startswith
    - name.startswith
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - ref.startswith
    - dulwich.repo.BaseRepo.head
    - value.endswith
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - <builtin>.int
    - repo.open_index
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - dulwich.ignore._handle_leading_patterns
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - <builtin>.set
    - blob_obj.raw_length
    - contents.decode
    - object_store.iter_prefix
    - dulwich.porcelain.path_to_tree_path
    - dulwich.porcelain.get_untracked_paths
    - line.endswith
    - value.split
    - pat.endswith
    - repo.get_config_stack
    - unicodedata.normalize
    - dulwich.porcelain._walk_working_dir_paths
    - target_bytes.startswith
    - dulwich.objects.git_line
    - line.rstrip
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - create.encode
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - objectish.encode
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised:
    - ValueError
    - CheckoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 4014
    functionName: dulwich.cli.cmd_stash_list.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - stash.stashes
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - entry.message.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.stash.Stash.from_repo
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.stash.Stash.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: dulwich.stash.Stash.from_repo
    functionSourceFile: dulwich.stash
    functionUses: 7
    functionsReached:
    - dulwich.stash.Stash.__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: stash.stashes
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4038
    functionName: dulwich.cli.cmd_stash_push.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.porcelain.stash_push
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - stash.push
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.stash.Stash.from_repo
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.stash.Stash.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6090
    functionName: dulwich.porcelain.stash_push
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - stash.push
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.stash.Stash.from_repo
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.stash.Stash.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4053
    functionName: dulwich.cli.cmd_stash_pop.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.porcelain.stash_pop
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - stash.pop
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.stash.Stash.from_repo
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.stash.Stash.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6099
    functionName: dulwich.porcelain.stash_pop
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - stash.pop
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.stash.Stash.from_repo
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.stash.Stash.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 30
    IfCount: 13
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 4070
    functionName: dulwich.cli.cmd_bisect.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - queue.pop
    - dulwich.bisect.BisectState.reset
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - original.startswith
    - reset_parser.add_argument
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.bisect.BisectState.replay
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - os.unlink
    - parents_to_check.insert
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - content.decode
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - repo.path.encode
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.bisect.BisectState.skip
    - dulwich.refs.local_branch_name
    - os.makedirs
    - dulwich.porcelain.bisect_replay
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - next_commit.decode
    - dulwich.repo.parse_graftpoints
    - dulwich.objects.ShaFile._serialize
    - candidates.remove
    - dulwich.index.get_path_element_normalizer
    - contextlib.closing
    - queue.append
    - repo.get_config
    - r.controldir
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - repo.controldir
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - logger.info
    - parser.print_help
    - dulwich.bisect.BisectState.mark_bad
    - setting.strip
    - dulwich.config._is_line_continuation
    - arg.encode
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - os.remove
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.diff_tree._skip_tree
    - case_only_renames.add
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.objects.Tree.__init__
    - logging.warning
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - stat.S_IFMT
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - _TYPE_MAP.get
    - os.rmdir
    - parser.add_subparsers
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - obj.message.decode
    - <builtin>.open
    - line.lstrip
    - candidates.append
    - normalized.lower
    - bad_sha.decode
    - dulwich.bisect.BisectState.mark_good
    - os.path.dirname
    - stat.S_IMODE
    - value.endswith
    - <builtin>.ord
    - dulwich.diff_tree.tree_changes
    - dulwich.index.validate_path_element_hfs
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - replay_parser.add_argument
    - repo.open_index
    - dulwich.porcelain.bisect_good
    - visited.add
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - log.rstrip
    - dulwich.index.update_working_tree
    - element.rstrip
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - start_parser.add_argument
    - <builtin>.reversed
    - element.decode
    - message.split
    - platform.system
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - line.strip
    - dulwich.config._parse_section_header_line
    - path.startswith
    - log_file.read
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - filename.startswith
    - dulwich.objectspec.parse_ref
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - dulwich.bisect.BisectState._estimate_steps
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - dulwich.porcelain.bisect_skip
    - object_store.iter_prefix
    - skip_shas.add
    - <builtin>.isinstance
    - content.endswith
    - commit.message.decode
    - tree_path.replace
    - c.isalnum
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - line.endswith
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - dulwich.object_store.peel_sha
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.index._remove_empty_parents
    - value.split
    - dulwich.config.ConfigDict.get
    - dulwich.porcelain.bisect_bad
    - os.readlink
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - filter_path.startswith
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - dulwich.bisect.BisectState._get_commit_subject
    - unicodedata.normalize
    - <builtin>.getattr
    - dulwich.porcelain.bisect_start
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - log_content.splitlines
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.bisect.BisectState.start
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - logger.error
    - good_parser.add_argument
    - rev.decode
    - os.lstat
    - dulwich.porcelain.bisect_log
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - subparsers.add_parser
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.bisect.BisectState.get_log
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - skip_parser.add_argument
    - good_shas.append
    - dulwich.repo.Repo.controldir
    - dulwich.porcelain.bisect_reset
    - dulwich.config.ConfigFile.from_file
    - bad_parser.add_argument
    - <builtin>.enumerate
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    - next_sha.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: start_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bad_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: good_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: skip_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reset_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: replay_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febacdbc130>
    - <ast.Constant object at 0x7febacdbc160>
    - <ast.Constant object at 0x7febacdbc190>
    - <ast.Constant object at 0x7febacdbc1c0>
    - <ast.Constant object at 0x7febacdbc1f0>
    - <ast.Constant object at 0x7febacdbc220>
    - <ast.Constant object at 0x7febacdbc250>
    argNames:
    - repo
    - bad
    - good
    - paths
    - no_checkout
    - term_bad
    - term_good
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 7786
    functionName: dulwich.porcelain.bisect_start
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - queue.pop
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - os.fsdecode
    - os.unlink
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - repo.path.encode
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - next_commit.decode
    - candidates.remove
    - queue.append
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - dulwich.repo.parse_graftpoints
    - repo.get_config
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - repo.controldir
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - dulwich.bisect.BisectState.mark_bad
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - logging.warning
    - subsection.encode
    - dulwich.objects.Tree.__init__
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.index.detect_case_only_renames.normalize_path
    - _TYPE_MAP.get
    - dulwich.porcelain._noop_context_manager
    - path.lstrip
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - obj.message.decode
    - <builtin>.open
    - line.lstrip
    - candidates.append
    - normalized.lower
    - dulwich.bisect.BisectState.mark_good
    - bad_sha.decode
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - value.endswith
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - os.listdir
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - visited.add
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - element.decode
    - message.split
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - filename.startswith
    - dulwich.objectspec.parse_ref
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - dulwich.bisect.BisectState._estimate_steps
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - skip_shas.add
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - line.endswith
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - dulwich.object_store.peel_sha
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.index._remove_empty_parents
    - value.split
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - dulwich.bisect.BisectState._get_commit_subject
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.bisect.BisectState.start
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - rev.decode
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - good_shas.append
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: next_sha.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febacdc32b0>
    - <ast.Constant object at 0x7febacdc32e0>
    argNames:
    - repo
    - rev
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 7841
    functionName: dulwich.porcelain.bisect_bad
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - queue.pop
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - os.fsdecode
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - next_commit.decode
    - candidates.remove
    - queue.append
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - dulwich.repo.parse_graftpoints
    - repo.get_config
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - repo.controldir
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - dulwich.bisect.BisectState.mark_bad
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - logging.warning
    - subsection.encode
    - dulwich.objects.Tree.__init__
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - _TYPE_MAP.get
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - obj.message.decode
    - <builtin>.open
    - line.lstrip
    - candidates.append
    - normalized.lower
    - bad_sha.decode
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - value.endswith
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - os.listdir
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - visited.add
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - element.decode
    - <builtin>.reversed
    - message.split
    - dulwich.repo.Repo.commondir
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - filename.startswith
    - dulwich.objectspec.parse_ref
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - dulwich.bisect.BisectState._estimate_steps
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - skip_shas.add
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - line.endswith
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - dulwich.object_store.peel_sha
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - dulwich.index._remove_empty_parents
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - dulwich.bisect.BisectState._get_commit_subject
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - rev.decode
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - good_shas.append
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path_or_repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 655
    functionName: dulwich.porcelain.open_repo_closing
    functionSourceFile: dulwich.porcelain
    functionUses: 232
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.controldir
    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: bad_sha.decode
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febacdb9940>
    - <ast.Constant object at 0x7febacdb9970>
    argNames:
    - repo
    - rev
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 7873
    functionName: dulwich.porcelain.bisect_good
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - queue.pop
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - os.fsdecode
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - next_commit.decode
    - candidates.remove
    - queue.append
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - dulwich.repo.parse_graftpoints
    - repo.get_config
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - repo.controldir
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - logging.warning
    - subsection.encode
    - dulwich.objects.Tree.__init__
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - _TYPE_MAP.get
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - obj.message.decode
    - <builtin>.open
    - line.lstrip
    - candidates.append
    - normalized.lower
    - dulwich.bisect.BisectState.mark_good
    - bad_sha.decode
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - value.endswith
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - os.listdir
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - visited.add
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - element.decode
    - <builtin>.reversed
    - message.split
    - dulwich.repo.Repo.commondir
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - filename.startswith
    - dulwich.objectspec.parse_ref
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - dulwich.bisect.BisectState._estimate_steps
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - skip_shas.add
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - line.endswith
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - dulwich.object_store.peel_sha
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - dulwich.index._remove_empty_parents
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - dulwich.bisect.BisectState._get_commit_subject
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - rev.decode
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - good_shas.append
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febacbd61f0>
    - <ast.Constant object at 0x7febacbd6220>
    argNames:
    - repo
    - revs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 7905
    functionName: dulwich.porcelain.bisect_skip
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - queue.pop
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - os.fsdecode
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.bisect.BisectState.skip
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - next_commit.decode
    - candidates.remove
    - queue.append
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - dulwich.repo.parse_graftpoints
    - repo.get_config
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - repo.controldir
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - logging.warning
    - subsection.encode
    - dulwich.objects.Tree.__init__
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - _TYPE_MAP.get
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - obj.message.decode
    - <builtin>.open
    - line.lstrip
    - candidates.append
    - normalized.lower
    - bad_sha.decode
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - value.endswith
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - os.listdir
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - visited.add
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - element.decode
    - <builtin>.reversed
    - message.split
    - dulwich.repo.Repo.commondir
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - filename.startswith
    - dulwich.objectspec.parse_ref
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - dulwich.bisect.BisectState._estimate_steps
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - skip_shas.add
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - line.endswith
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - dulwich.object_store.peel_sha
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - dulwich.index._remove_empty_parents
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - dulwich.bisect.BisectState._get_commit_subject
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - rev.decode
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - good_shas.append
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febacbb1ca0>
    - <ast.Constant object at 0x7febacbb1cd0>
    argNames:
    - repo
    - commit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 7950
    functionName: dulwich.porcelain.bisect_reset
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.bisect.BisectState.reset
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - original.startswith
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.diff_tree.TreeChange.delete
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - os.fsdecode
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - dulwich.repo.parse_graftpoints
    - dulwich.index.get_path_element_normalizer
    - contextlib.closing
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - repo.controldir
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - os.remove
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - result.extend
    - dulwich.repo.Repo._get_config_condition_matchers
    - logging.warning
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - _TYPE_MAP.get
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - normalized.lower
    - stat.S_IMODE
    - os.path.dirname
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - value.endswith
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - os.listdir
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - repo.open_index
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - element.decode
    - <builtin>.reversed
    - platform.system
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - blob_obj.raw_length
    - dulwich.config.ConfigDict.items
    - dulwich.objects.object_class
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - line.endswith
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.object_store.peel_sha
    - line.split
    - dulwich.config._strip_comments
    - dulwich.index._remove_empty_parents
    - value.split
    - os.readlink
    - dulwich.config.ConfigDict.get
    - filter_path.startswith
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - index.write
    - todo.pop
    - headers.extend
    - current_target.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febacbe7190>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7988
    functionName: dulwich.porcelain.bisect_log
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.bisect.BisectState.get_log
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - log_file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8002
    functionName: dulwich.porcelain.bisect_replay
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - queue.pop
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.bisect.BisectState.replay
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - content.decode
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.bisect.BisectState.skip
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - next_commit.decode
    - candidates.remove
    - queue.append
    - contextlib.closing
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - dulwich.bisect.BisectState.mark_bad
    - setting.strip
    - dulwich.config._is_line_continuation
    - arg.encode
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - _TYPE_MAP.get
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - obj.message.decode
    - <builtin>.open
    - line.lstrip
    - candidates.append
    - dulwich.bisect.BisectState.mark_good
    - bad_sha.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - os.listdir
    - <builtin>.int
    - visited.add
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - message.split
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - line.strip
    - dulwich.config._parse_section_header_line
    - log_file.read
    - name.encode
    - section_dict.items
    - filename.startswith
    - cs.startswith
    - dulwich.bisect.BisectState._estimate_steps
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - ret.append
    - f.read
    - skip_shas.add
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - typing.NewType
    - dulwich.object_store.peel_sha
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.bisect.BisectState._get_commit_subject
    - os.path.isdir
    - whitespace.append
    - log_content.splitlines
    - dulwich.config._parse_string
    - dulwich.bisect.BisectState.start
    - dulwich.object_store.DiskObjectStore.from_config
    - rev.decode
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.bisect.BisectState.__init__
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - good_shas.append
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4222
    functionName: dulwich.cli.cmd_ls_files.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.porcelain.ls_files
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6117
    functionName: dulwich.porcelain.ls_files
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4237
    functionName: dulwich.cli.cmd_describe.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - key_str.rsplit
    - io.BytesIO.readlines
    - entry.commit.id.decode
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.porcelain.describe
    - dulwich.repo.Repo.get_config
    - datetime.datetime
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - commit.id.decode
    - time.gmtime
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - key.decode
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - object_id.decode
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - r.get_object
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.porcelain.find_unique_abbrev
    - r.get_walker
    - <builtin>.slice
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - obj_id.decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - r.get_refs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - tags.items
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - latest_commit.id.decode
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febad5c99a0>
    argNames:
    - repo
    - abbrev
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6162
    functionName: dulwich.porcelain.describe
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - key_str.rsplit
    - io.BytesIO.readlines
    - entry.commit.id.decode
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - datetime.datetime
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - commit.id.decode
    - time.gmtime
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - key.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - object_id.decode
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - r.get_object
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.porcelain.find_unique_abbrev
    - r.get_walker
    - <builtin>.slice
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - obj_id.decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - r.get_refs
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - tags.items
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - latest_commit.id.decode
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.head
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 13
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4251
    functionName: dulwich.cli.cmd_diagnose.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - os.environ.get
    - argparse.ArgumentParser
    - <builtin>.__import__
    - parser.parse_args
    - 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: <builtin>.__import__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 14
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 4317
    functionName: dulwich.cli.cmd_merge.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - sep_corrected_path.decode
    - commit_id.decode
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - time.time
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - obj.set_raw_string
    - merged_entries.items
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - conflict_path.decode
    - wlst.iter
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.objects.Commit.__init__
    - dulwich.objects.ShaFile.__init__
    - os.unlink
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.object_store.DiskObjectStore.__init__
    - os.getuid
    - dulwich.config.StackedConfig.get
    - repo.path.encode
    - dulwich.objects.hex_to_sha
    - value.strip
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.porcelain._do_merge
    - dulwich.merge.recursive_merge
    - default_user.encode
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.graph.find_merge_base.lookup_parents
    - all_paths.add
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - logger.info
    - gc.maybe_auto_gc
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - todo.extend
    - os.environ.get
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - dulwich.merge.octopus_merge
    - dulwich.diff_tree._skip_tree
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - case_only_renames.add
    - result.extend
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - logging.warning
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - wlst.add
    - <builtin>.len
    - stat.S_IFMT
    - results.sort
    - typing.cast.items
    - entry.pw_gecos.split
    - dulwich.refs.local_tag_name
    - extension.lower
    - other_commits.append
    - <builtin>.tuple
    - path.lstrip
    - next_lcas.extend
    - message.encode
    - dulwich.porcelain._noop_context_manager
    - dulwich.index.detect_case_only_renames.normalize_path
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - os.rmdir
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - normalized.lower
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.objects.Tree.iteritems
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - merge_commit_ids.append
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.lru_cache.LRUCache.cleanup
    - r.get_config_stack
    - element.decode
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - cands.append
    - dulwich.config._parse_section_header_line
    - dulwich.porcelain._do_octopus_merge
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - dulwich.graph.can_fast_forward.lookup_parents
    - object_store.add_object
    - default_email.encode
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.objects.ShaFile.from_string
    - email.endswith
    - dulwich.index._transition_to_file
    - dulwich.merge.three_way_merge
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - contents.decode
    - logger.warning
    - value.split
    - ret.append
    - dulwich.merge._create_virtual_commit
    - f.read
    - target_path.decode
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - r.get_config
    - dulwich.graph.find_merge_base
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - line.endswith
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - included_paths.copy
    - path.split
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.cast
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - typing.cast.id.decode
    - dulwich.index._remove_empty_parents
    - dulwich.config.ConfigDict.get
    - filter_path.startswith
    - base_tree.items
    - os.readlink
    - dulwich.repo.get_user_identity
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - base_tree.lookup_path
    - binascii.unhexlify
    - todo.pop
    - index.write
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - unicodedata.normalize
    - headers.extend
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - merge_commit_id.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - dulwich.objects.Tree.add
    - logger.error
    - repo.parents_provider
    - user_uc.encode
    - r.get_gitattributes
    - ret.extend
    - os.lstat
    - pwd.getpwuid
    - old_paths_normalized.items
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - branch_names.append
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.graph.find_octopus_base
    - os.chmod
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - email_uc.encode
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.porcelain.merge
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febad6365b0>
    - <ast.Constant object at 0x7febad6365e0>
    - <ast.Constant object at 0x7febad636610>
    - <ast.Constant object at 0x7febad636640>
    - <ast.Constant object at 0x7febad636670>
    argNames:
    - repo
    - committish
    - no_commit
    - no_ff
    - message
    - author
    - committer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 6540
    functionName: dulwich.porcelain.merge
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - sep_corrected_path.decode
    - commit_id.decode
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - time.time
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - wlst.iter
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.config.Config.get_boolean
    - os.getuid
    - dulwich.config.StackedConfig.get
    - wlst.get
    - path.lstrip
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - value.strip
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.porcelain._do_merge
    - dulwich.merge.recursive_merge
    - default_user.encode
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - dulwich._objects.sorted_tree_items
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - all_paths.add
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - gc.maybe_auto_gc
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - todo.extend
    - os.environ.get
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.merge.octopus_merge
    - dulwich.diff_tree._skip_tree
    - case_only_renames.add
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - logging.warning
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - wlst.add
    - <builtin>.len
    - stat.S_IFMT
    - results.sort
    - typing.cast.items
    - entry.pw_gecos.split
    - dulwich.refs.local_tag_name
    - dulwich.objects.ShaFile.from_string
    - other_commits.append
    - extension.lower
    - <builtin>.tuple
    - next_lcas.extend
    - dulwich.porcelain._noop_context_manager
    - message.encode
    - dulwich.index.detect_case_only_renames.normalize_path
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - os.rmdir
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - normalized.lower
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - value.endswith
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.objects.Tree.iteritems
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - email.startswith
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - merge_commit_ids.append
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - element.decode
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - cands.append
    - dulwich.config._parse_section_header_line
    - dulwich.porcelain._do_octopus_merge
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - dulwich.graph.can_fast_forward.lookup_parents
    - default_email.encode
    - object_store.add_object
    - parents_provider.get_parents
    - <builtin>.set
    - email.endswith
    - dulwich.index._transition_to_file
    - dulwich.merge.three_way_merge
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - contents.decode
    - ret.append
    - dulwich.merge._create_virtual_commit
    - f.read
    - target_path.decode
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - r.get_config
    - dulwich.graph.find_merge_base
    - content.endswith
    - tree_path.replace
    - c.isalnum
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - line.endswith
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - path.split
    - included_paths.copy
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.cast
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - typing.cast.id.decode
    - filter_path.startswith
    - dulwich.config.ConfigDict.get
    - base_tree.items
    - os.readlink
    - dulwich.repo.get_user_identity
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - base_tree.lookup_path
    - binascii.unhexlify
    - todo.pop
    - index.write
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - unicodedata.normalize
    - headers.extend
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - dulwich.objects.Tree.add
    - repo.parents_provider
    - user_uc.encode
    - r.get_gitattributes
    - os.lstat
    - old_paths_normalized.items
    - pwd.getpwuid
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - branch_names.append
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.graph.find_octopus_base
    - os.chmod
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - email_uc.encode
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - merged_entries.items
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conflict_path.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: merge_commit_id.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 11
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4388
    functionName: dulwich.cli.cmd_merge_base.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - commit_id.decode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - independent_commits.append
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - commit_ids.append
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - next_lcas.extend
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.independent
    - dulwich.graph.find_octopus_base.lookup_stamp
    - time_str.replace
    - time_spec.strip
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - time_spec.decode
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - dulwich.porcelain.independent_commits
    - name.encode
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - dt.timestamp
    - dulwich.hooks.ShellHook.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - repo.parents_provider
    - dulwich.porcelain.is_ancestor
    - ret.extend
    - dulwich.porcelain.merge_base
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.graph.find_octopus_base
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objectspec._parse_number_suffix
    - dulwich.repo.parse_graftpoints
    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 0x7febada168b0>
    - <ast.Constant object at 0x7febada168e0>
    - <ast.Constant object at 0x7febada16910>
    argNames:
    - repo
    - ancestor
    - descendant
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9081
    functionName: dulwich.porcelain.is_ancestor
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febad9f7d60>
    - <ast.Constant object at 0x7febad9f7d90>
    argNames:
    - repo
    - committishes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9118
    functionName: dulwich.porcelain.independent_commits
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - independent_commits.append
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - commit_ids.append
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.independent
    - dulwich.graph.find_octopus_base.lookup_stamp
    - time_spec.strip
    - time_str.replace
    - dulwich.hooks.CommitMsgShellHook.__init__
    - backend.get
    - line.startswith
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - dt.timestamp
    - dulwich.hooks.ShellHook.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objectspec._parse_number_suffix
    - dulwich.repo.parse_graftpoints
    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: commit_id.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febada041c0>
    - <ast.Constant object at 0x7febada041f0>
    - <ast.Constant object at 0x7febada04220>
    - <ast.Constant object at 0x7febada04250>
    argNames:
    - repo
    - committishes
    - all
    - octopus
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9037
    functionName: dulwich.porcelain.merge_base
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - commit_ids.append
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - next_lcas.extend
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - time_str.replace
    - time_spec.strip
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.cast
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.graph.find_octopus_base
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4454
    functionName: dulwich.cli.cmd_notes_add.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.porcelain.notes_add
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - time_str.replace
    - time_spec.strip
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - r.notes.set_note
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - note.encode
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febaec28130>
    - <ast.Constant object at 0x7febaec28880>
    - <ast.Constant object at 0x7febaec28fd0>
    - <ast.Constant object at 0x7febaec287c0>
    argNames:
    - repo
    - object_sha
    - note
    - ref
    - author
    - committer
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2723
    functionName: dulwich.porcelain.notes_add
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - time_str.replace
    - time_spec.strip
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - r.notes.set_note
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - note.encode
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4476
    functionName: dulwich.cli.cmd_notes_show.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - logger.info
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - dulwich.porcelain.notes_show
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - sys.stdout.buffer.write
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.notes.get_note
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febaf5d23d0>
    argNames:
    - repo
    - object_sha
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2812
    functionName: dulwich.porcelain.notes_show
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - r.notes.get_note
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4499
    functionName: dulwich.cli.cmd_notes_remove.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - parser.add_argument
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.porcelain.notes_remove
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - logger.info
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - r.notes.remove_note
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf8ec820>
    - <ast.Constant object at 0x7febaf8ec190>
    - <ast.Constant object at 0x7febaf8ec9a0>
    - <ast.Constant object at 0x7febaf8eccd0>
    argNames:
    - repo
    - object_sha
    - ref
    - author
    - committer
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2770
    functionName: dulwich.porcelain.notes_remove
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - time.time
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objectspec._resolve_object
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - <builtin>.range
    - dt.replace
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - r.notes.remove_note
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - spec.isdigit
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - time_spec.strip
    - time_str.replace
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - repo.open_index
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - time_spec.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - entries.reverse
    - line.endswith
    - included_paths.copy
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dt.timestamp
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objectspec._parse_number_suffix
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4522
    functionName: dulwich.cli.cmd_notes_list.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - r.notes.list_notes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.porcelain.notes_list
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - object_sha.hex
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febaf327f70>
    argNames:
    - repo
    - ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2839
    functionName: dulwich.porcelain.notes_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - r.notes.list_notes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.porcelain._make_notes_ref
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_sha.hex
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4555
    functionName: dulwich.cli.cmd_replace_list.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - replacement_sha.decode
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - replacements.append
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - r.refs.keys
    - cs.startswith
    - <builtin>.super
    - sys.stdout.write
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain.replace_list
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - object_sha.decode
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2859
    functionName: dulwich.porcelain.replace_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - replacements.append
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - r.refs.keys
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_sha.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: replacement_sha.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4574
    functionName: dulwich.cli.cmd_replace_delete.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - dulwich.porcelain.replace_delete
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - object_sha.encode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain._make_replace_ref
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.refs.local_replace_name
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - object_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2879
    functionName: dulwich.porcelain.replace_delete
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - object_sha.encode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain._make_replace_ref
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.refs.local_replace_name
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4606
    functionName: dulwich.cli.cmd_replace.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - object_sha.encode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain._make_replace_ref
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain.replace_create
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.refs.local_replace_name
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - replacement_sha.encode
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - repo
    - object_sha
    - replacement_sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2901
    functionName: dulwich.porcelain.replace_create
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - object_sha.encode
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain._make_replace_ref
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.refs.local_replace_name
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - replacement_sha.encode
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4638
    functionName: dulwich.cli.cmd_cherry.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - diff_data.split
    - difflib.SequenceMatcher
    - obj.set_raw_string
    - re.match
    - head.encode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.patch.shortid
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.config.Config.get_boolean
    - dulwich.patch._get_sequence_matcher
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - parser.add_argument
    - store.tree_changes
    - dulwich.repo.Repo.get_config
    - io.BytesIO.writelines
    - os.makedirs
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - commit_sha.hex
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - logger.info
    - message.decode
    - upstream_ref.split
    - hashlib.sha1
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - patiencediff.PatienceSequenceMatcher
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - limit.encode
    - dulwich.diff.ColorizedDiffStream.write
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.patch.patch_id
    - obj.as_raw_string
    - config.get
    - commit.message.split
    - r.get_walker
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.diff.ColorizedDiffStream.writelines
    - head_ref.startswith
    - upstream.encode
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.patch.commit_patch_id
    - cs.startswith
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.super
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - tofile.decode
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - io.BytesIO.getvalue
    - normalized_lines.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - line_bytes.decode
    - os.path.isdir
    - dulwich.patch.write_object_diff.lines
    - head_commits.append
    - dulwich.patch.unified_diff_with_algorithm
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - rich.console.Console.print
    - dulwich.porcelain.cherry
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.patch.write_tree_diff
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 3
    IfCount: 17
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febad639e20>
    - <ast.Constant object at 0x7febad639e50>
    - <ast.Constant object at 0x7febad639e80>
    - <ast.Constant object at 0x7febad639eb0>
    argNames:
    - repo
    - upstream
    - head
    - limit
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6684
    functionName: dulwich.porcelain.cherry
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - obj.set_raw_string
    - diff_data.split
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - re.match
    - head.encode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.patch.shortid
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch.write_tree_diff
    - dulwich.config.Config.get_boolean
    - dulwich.patch._get_sequence_matcher
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - store.tree_changes
    - dulwich.repo.Repo.get_config
    - io.BytesIO.writelines
    - os.makedirs
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.patch._format_range_unified
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - upstream_ref.split
    - hashlib.sha1
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - patiencediff.PatienceSequenceMatcher
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - limit.encode
    - dulwich.diff.ColorizedDiffStream.write
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.patch.patch_id
    - obj.as_raw_string
    - config.get
    - commit.message.split
    - r.get_walker
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.diff.ColorizedDiffStream.writelines
    - head_ref.startswith
    - upstream.encode
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.patch.commit_patch_id
    - cs.startswith
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.super
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - tofile.decode
    - r.get_config
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - io.BytesIO.getvalue
    - normalized_lines.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - line_bytes.decode
    - dulwich.patch.write_object_diff.lines
    - os.path.isdir
    - head_commits.append
    - dulwich.patch.unified_diff_with_algorithm
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - rich.console.Console.print
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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: commit_sha.hex
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 14
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 4703
    functionName: dulwich.cli.cmd_cherry_pick.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index.validate_path_element_ntfs
    - parser.error
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - os.unlink
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - repo.path.encode
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.objects.hex_to_sha
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - r.controldir
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - all_paths.add
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - os.remove
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - logging.warning
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - stat.S_IFMT
    - <builtin>.len
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - sep_corrected_path.decode
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - r.get_worktree
    - normalized.lower
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - value.endswith
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - element.decode
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - dulwich.merge.three_way_merge
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - contents.decode
    - logger.warning
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - line.endswith
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - path.split
    - included_paths.copy
    - f.write
    - dulwich.merge.Merger.merge_trees
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - value.split
    - dulwich.index._remove_empty_parents
    - dulwich.config.ConfigDict.get
    - os.readlink
    - base_tree.items
    - filter_path.startswith
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - base_tree.lookup_path
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - result.decode
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - dulwich.objects.Tree.add
    - logger.error
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - dulwich.porcelain.cherry_pick
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - merged_entries.items
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 11
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaa761bb0>
    - <ast.Constant object at 0x7febaa761be0>
    - <ast.Constant object at 0x7febaa761c10>
    argNames:
    - repo
    - committish
    - no_commit
    - continue_
    - abort
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6822
    functionName: dulwich.porcelain.cherry_pick
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.index.validate_path_element_ntfs
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich._diff_tree._merge_entries
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - parents_to_check.insert
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - os.unlink
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.objects.ShaFile._serialize
    - contextlib.closing
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - r.controldir
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - all_paths.add
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - submodule_path.count
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - todo.extend
    - os.remove
    - dulwich.objects.ShaFile.as_raw_chunks
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - logging.warning
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index._check_file_matches
    - stat.S_IFMT
    - <builtin>.len
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - sep_corrected_path.decode
    - dulwich.index.detect_case_only_renames.normalize_path
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - r.get_worktree
    - normalized.lower
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - element.decode
    - <builtin>.reversed
    - platform.system
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.index._normalize_path_element_default
    - dulwich.objectspec.to_bytes
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - dulwich.merge.three_way_merge
    - dulwich.config.ConfigDict.items
    - blob_obj.raw_length
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - line.endswith
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - included_paths.copy
    - path.split
    - f.write
    - dulwich.merge.Merger.merge_trees
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.index._remove_empty_parents
    - value.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - base_tree.items
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - typing.cast.encode
    - base_tree.lookup_path
    - index.write
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - current_target.encode
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - dulwich.objects.Tree.add
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - merged_entries.items
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    - Error
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 12
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4778
    functionName: dulwich.cli.cmd_merge_tree.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - r.object_store.add_object
    - io.BytesIO.readlines
    - obj.set_raw_string
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - conflict_path.decode
    - dulwich.porcelain.merge_tree
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - all_paths.add
    - dulwich.objects.check_hexsha
    - merged_tree_id.decode
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.merge.Merger.merge_blobs
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.objectspec.to_bytes
    - dulwich.merge.Merger.__init__
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - logger.warning
    - ret.append
    - f.read
    - object_store.iter_prefix
    - r.get_config
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - base_tree.items
    - typing.cast.encode
    - base_tree.lookup_path
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - sys.stdout.buffer.write
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objects.Tree.add
    - logger.error
    - r.get_gitattributes
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.S_ISGITLINK
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - merged_entries.items
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - repo
    - base_tree
    - our_tree
    - their_tree
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6639
    functionName: dulwich.porcelain.merge_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - r.object_store.add_object
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - obj.set_raw_string
    - dulwich.objectspec.parse_commit
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - all_paths.add
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.merge.Merger.merge_blobs
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.objectspec.parse_tree
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.objectspec.to_bytes
    - dulwich.merge.Merger.__init__
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - r.get_config
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - dulwich.merge.Merger.merge_trees
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - base_tree.items
    - base_tree.lookup_path
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objects.Tree.add
    - r.get_gitattributes
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.S_ISGITLINK
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - merged_entries.items
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: merged_tree_id.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 15
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4847
    functionName: dulwich.cli.cmd_gc.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain.gc
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - normalized.endswith
    - setting.strip
    - dulwich.config._is_line_continuation
    - date.timestamp
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - time_str.replace
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.print
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - datetime.datetime.strptime
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.cli.format_bytes
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - gc.garbage_collect
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4912
    functionName: dulwich.cli.cmd_gc.run.progress
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - logger.info
    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 0x7feba9f2c070>
    - <ast.Constant object at 0x7feba9f2c0a0>
    - <ast.Constant object at 0x7feba9f2c0d0>
    - <ast.Constant object at 0x7feba9f2c100>
    - <ast.Constant object at 0x7feba9f2c130>
    - <ast.Constant object at 0x7feba9f2c160>
    argNames:
    - repo
    - auto
    - aggressive
    - prune
    - grace_period
    - dry_run
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7147
    functionName: dulwich.porcelain.gc
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - gc.garbage_collect
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 21
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 4959
    functionName: dulwich.cli.cmd_maintenance.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.maintenance.register_repository
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - repo_config.write_to_path
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - result.errors.get
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config._escape_value
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - global_config.write_to_path
    - contextlib.closing
    - io.BytesIO.write
    - repo.get_config
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - parser.print_help
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.porcelain.maintenance_register
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - parser.add_subparsers
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.maintenance.unregister_repository
    - task.is_enabled
    - dulwich.hooks.CommitMsgShellHook.__init__
    - existing_repos.remove
    - line.startswith
    - backend.get
    - <builtin>.int
    - unregister_parser.add_argument
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.config.ConfigDict.set
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - result.tasks_run.append
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - schedule_config.items
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - enabled_tasks.append
    - dulwich.porcelain.maintenance_unregister
    - dulwich.config.ConfigDict.get_multivar
    - section_dict.set
    - line.endswith
    - MAINTENANCE_TASKS.items
    - included_paths.copy
    - task.run
    - f.write
    - global_config.get_multivar
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - run_parser.add_argument
    - values.items
    - dulwich.maintenance.run_maintenance
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.maintenance.get_enabled_tasks
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.maintenance_run
    - dulwich.refs.DiskRefsContainer.__init__
    - value.replace
    - subparsers.add_parser
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.encode
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - value.lower
    - result.tasks_failed.append
    - dulwich.repo.BaseRepo.__init__
    - dulwich.config.ConfigFile.write_to_path
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - repo_config.set
    - MAINTENANCE_TASKS.get
    - dulwich.config._format_string
    - dulwich.repo.Repo.controldir
    - result.tasks_succeeded.append
    - dulwich.config.ConfigFile.from_file
    - repo_path.encode
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - global_config.set
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: run_parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unregister_parser.add_argument
    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:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5019
    functionName: dulwich.cli.cmd_maintenance.run.progress
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - logger.info
    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 0x7feba9f61550>
    - <ast.Constant object at 0x7feba9f61580>
    - <ast.Constant object at 0x7feba9f615b0>
    argNames:
    - repo
    - tasks
    - auto
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7209
    functionName: dulwich.porcelain.maintenance_run
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - task.is_enabled
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - result.tasks_run.append
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - enabled_tasks.append
    - line.endswith
    - MAINTENANCE_TASKS.items
    - included_paths.copy
    - task.run
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dulwich.maintenance.run_maintenance
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.maintenance.get_enabled_tasks
    - logger.error
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - result.tasks_failed.append
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - MAINTENANCE_TASKS.get
    - dulwich.repo.Repo.controldir
    - result.tasks_succeeded.append
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.errors.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7233
    functionName: dulwich.porcelain.maintenance_register
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.maintenance.register_repository
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - repo_config.write_to_path
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config._escape_value
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - io.BytesIO.write
    - repo.get_config
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.config.ConfigDict.set
    - os.fdopen
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - schedule_config.items
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.config.ConfigDict.get_multivar
    - section_dict.set
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - values.items
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - value.replace
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.encode
    - value.lower
    - dulwich.file.GitFile
    - <builtin>.hasattr
    - dulwich.repo.BaseRepo.__init__
    - dulwich.config.ConfigFile.write_to_path
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - repo_config.set
    - dulwich.config._format_string
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - repo_path.encode
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7feba9f46040>
    argNames:
    - repo
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7248
    functionName: dulwich.porcelain.maintenance_unregister
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - global_config.write_to_path
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.maintenance.unregister_repository
    - dulwich.hooks.CommitMsgShellHook.__init__
    - existing_repos.remove
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - global_config.get_multivar
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - repo_path.encode
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - global_config.set
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 9
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 5075
    functionName: dulwich.cli.cmd_grep.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - sys.stdout.isatty
    - shutil.which
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - p.encode
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.ignore.IgnoreFilter.__init__
    - os.path.expanduser
    - setting.strip
    - content.split
    - dulwich.cli.Pager.__init__
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - cmd_name.encode
    - todo.extend
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - rev.encode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.ignore.IgnoreFilter.from_path
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.ignore.IgnoreFilter.append_pattern
    - contextlib.suppress
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.ignore.read_ignore_patterns
    - config.get
    - outstream.write
    - <builtin>.str
    - core_pager.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - ignore_manager.is_ignored
    - dulwich.objectspec.to_bytes
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - cs.startswith
    - typing.cast.id.encode
    - dulwich.cli.get_pager
    - <builtin>.super
    - pager_value.decode
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - path.count
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - dulwich.porcelain.grep
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - pat.endswith
    - dulwich.cli.PagerBuffer.__init__
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - dulwich.config._parse_string
    - line.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - line.rstrip
    - pathspec.decode
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - pattern.encode
    - compiled_pattern.search
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - typing.cast.startswith
    - value.lower
    - fnmatch.fnmatch
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli._StreamContextAdapter.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 3
    IfCount: 15
    argCount: 9
    argDefaultValues: []
    argNames:
    - repo
    - pattern
    - outstream
    - rev
    - pathspecs
    - ignore_case
    - line_number
    - max_depth
    - respect_ignores
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3705
    functionName: dulwich.porcelain.grep
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - p.encode
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.ignore.IgnoreFilter.__init__
    - os.path.expanduser
    - setting.strip
    - content.split
    - dulwich.config._is_line_continuation
    - os.path.exists
    - todo.extend
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - rev.encode
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.ignore.IgnoreFilter.from_path
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.ignore.IgnoreFilter.append_pattern
    - contextlib.suppress
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.ignore.read_ignore_patterns
    - outstream.write
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - tree.iteritems
    - ignore_manager.is_ignored
    - dulwich.objectspec.to_bytes
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - path.count
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - typing.cast.encode
    - pat.endswith
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - dulwich.config._parse_string
    - line.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - line.rstrip
    - pathspec.decode
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - pattern.encode
    - compiled_pattern.search
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - fnmatch.fnmatch
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 5148
    functionName: dulwich.cli.cmd_count_objects.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - object_store._iter_loose_objects
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - object_store._get_shafile_path
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.porcelain.count_objects
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - os.stat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - os.path.getsize
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7feba9f46580>
    - <ast.Constant object at 0x7feba9f465b0>
    argNames:
    - repo
    - verbose
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7263
    functionName: dulwich.porcelain.count_objects
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - object_store._iter_loose_objects
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - object_store._get_shafile_path
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - os.stat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - os.path.getsize
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 25
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 5183
    functionName: dulwich.cli.cmd_rebase.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.rebase.Rebaser.__init__
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.rebase._squash_commits
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - wlst.iter
    - dulwich.rebase.RebaseTodoCommand.from_string
    - os.path.join
    - todo.to_string
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - os.unlink
    - branch.encode
    - dulwich.objects.Commit.__init__
    - dulwich.objects.ShaFile.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - wlst.get
    - dulwich.rebase.Rebaser.abort
    - value.strip
    - dulwich.rebase.Rebaser._finish_rebase
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - rebaser._todo.pop
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - dulwich.rebase.Rebaser._cherry_pick
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.rebase.Rebaser.continue_
    - repo.get_rebase_state_manager
    - branch.startswith
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph.find_merge_base.lookup_parents
    - all_paths.add
    - dulwich.objects.check_hexsha
    - dulwich.rebase.start_interactive
    - dulwich.porcelain.is_interactive_rebase
    - dulwich.objects.valid_hexsha
    - repo.object_store.add_object
    - logger.info
    - state_manager.load_todo
    - setting.strip
    - dulwich.graph._find_lcas._has_candidates
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - dulwich.cli.launch_editor
    - path.decode
    - refs.set_symbolic_ref
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - stat.S_IFMT
    - results.sort
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - dulwich.refs.local_tag_name
    - extension.lower
    - <builtin>.tuple
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.rebase.Rebaser._clean_rebase_state
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - enum.Enum.__init__
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.rebase.Rebaser._get_commits_to_rebase
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - <builtin>.bool
    - commits.append
    - dulwich.merge.Merger.merge_blobs
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - edited_content.decode
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.lru_cache.LRUCache.cleanup
    - message.split
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - upstream.encode
    - dulwich.rebase.RebaseTodo.from_string
    - line.strip
    - <builtin>.print
    - cands.append
    - dulwich.config._parse_section_header_line
    - entries.append
    - name.encode
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.refs.set_ref_from_raw
    - dulwich.objectspec.to_bytes
    - dulwich.merge.Merger.__init__
    - cs.startswith
    - dulwich.rebase.Rebaser.start
    - typing.cast.id.encode
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - subprocess.run
    - s.lower
    - dulwich.config.ConfigDict.items
    - dulwich.merge.three_way_merge
    - dulwich.porcelain.rebase
    - ret.append
    - f.read
    - tempfile.NamedTemporaryFile
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - <builtin>.isinstance
    - dulwich.rebase.Rebaser._load_rebase_state
    - dulwich.graph.find_merge_base
    - todo.is_complete
    - commit.message.decode
    - content.endswith
    - c.isalnum
    - line.endswith
    - dulwich.rebase.Rebaser._save_rebase_state
    - dulwich.objects.is_tree
    - state_manager.exists
    - included_paths.copy
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.rebase.Rebaser.is_in_progress
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - base_tree.items
    - todo.get_current
    - typing.cast.encode
    - base_tree.lookup_path
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - dulwich.rebase.process_interactive_rebase
    - onto.encode
    - whitespace.append
    - dulwich.config._parse_string
    - todo.advance
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - dulwich.objects.Tree.add
    - logger.error
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - dulwich.rebase.edit_todo
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - r.get_rebase_state_manager
    - typing.cast.startswith
    - value.lower
    - dulwich.objects.S_ISGITLINK
    - dulwich.repo.BaseRepo.__init__
    - state_manager.save_todo
    - dulwich.rebase.RebaseTodo.from_commits
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - raw_ref.startswith
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - merged_entries.items
    - dulwich.hooks.ShellHook.__init__
    - dulwich.rebase.RebaseTodoEntry.from_string
    - dulwich.rebase.RebaseTodo.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 28
    ICount: 11
    IfCount: 19
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7feba9f5e130>
    - <ast.Constant object at 0x7feba9f5e160>
    - <ast.Constant object at 0x7feba9f5e190>
    - <ast.Constant object at 0x7feba9f5e1c0>
    - <ast.Constant object at 0x7feba9f5e1f0>
    - <ast.Constant object at 0x7feba9f5e220>
    - <ast.Constant object at 0x7feba9f5e250>
    argNames:
    - repo
    - upstream
    - onto
    - branch
    - abort
    - continue_rebase
    - skip
    - interactive
    - edit_todo
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 7351
    functionName: dulwich.porcelain.rebase
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.rebase.Rebaser.__init__
    - io.BytesIO.readlines
    - dulwich.rebase._squash_commits
    - dulwich.objectspec.parse_commit
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - merged_entries.items
    - wlst.iter
    - dulwich.rebase.RebaseTodoCommand.from_string
    - todo.to_string
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - os.unlink
    - branch.encode
    - dulwich.objects.Commit.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - wlst.get
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.rebase.Rebaser.abort
    - dulwich.rebase.Rebaser._finish_rebase
    - dulwich.repo.Repo.get_config
    - rebaser._todo.pop
    - dulwich.refs.local_branch_name
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - dulwich.rebase.Rebaser._cherry_pick
    - dulwich.repo.parse_graftpoints
    - dulwich.rebase.Rebaser.continue_
    - repo.get_rebase_state_manager
    - contextlib.closing
    - branch.startswith
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph.find_merge_base.lookup_parents
    - all_paths.add
    - dulwich.objects.check_hexsha
    - dulwich.rebase.start_interactive
    - dulwich.objects.valid_hexsha
    - repo.object_store.add_object
    - state_manager.load_todo
    - setting.strip
    - dulwich.graph._find_lcas._has_candidates
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - dulwich.cli.launch_editor
    - path.decode
    - refs.set_symbolic_ref
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - results.sort
    - dulwich.refs.local_tag_name
    - extension.lower
    - <builtin>.tuple
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.rebase.Rebaser._clean_rebase_state
    - <builtin>.list
    - enum.Enum.__init__
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.rebase.Rebaser._get_commits_to_rebase
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - <builtin>.bool
    - commits.append
    - dulwich.merge.Merger.merge_blobs
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - edited_content.decode
    - message.split
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - head_ref.startswith
    - upstream.encode
    - dulwich.repo.parse_shared_repository
    - dulwich.rebase.RebaseTodo.from_string
    - os.fsencode
    - cands.append
    - line.strip
    - <builtin>.print
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - entries.append
    - name.encode
    - dulwich.graph.WorkList.__init__
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - typing.cast.id.items
    - dulwich.refs.set_ref_from_raw
    - dulwich.objectspec.to_bytes
    - dulwich.merge.Merger.__init__
    - cs.startswith
    - dulwich.rebase.Rebaser.start
    - typing.cast.id.encode
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - subprocess.run
    - s.lower
    - dulwich.merge.three_way_merge
    - dulwich.config.ConfigDict.items
    - ret.append
    - tempfile.NamedTemporaryFile
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - object_store.iter_prefix
    - dulwich.rebase.Rebaser._load_rebase_state
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - todo.is_complete
    - commit.message.decode
    - content.endswith
    - c.isalnum
    - line.endswith
    - dulwich.rebase.Rebaser._save_rebase_state
    - dulwich.objects.is_tree
    - state_manager.exists
    - included_paths.copy
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.cast
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.rebase.Rebaser.is_in_progress
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - base_tree.items
    - todo.get_current
    - typing.cast.encode
    - base_tree.lookup_path
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - dulwich.rebase.process_interactive_rebase
    - onto.encode
    - whitespace.append
    - dulwich.config._parse_string
    - todo.advance
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - dulwich.objects.Tree.add
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - dulwich.rebase.edit_todo
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - state_manager.save_todo
    - dulwich.rebase.RebaseTodo.from_commits
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - conflicts.append
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - raw_ref.startswith
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.rebase.RebaseTodoEntry.from_string
    - dulwich.rebase.RebaseTodo.__init__
    linkageType: pythonLinkage
    raised:
    - RebaseConflict
    - Error
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7332
    functionName: dulwich.porcelain.is_interactive_rebase
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - state_manager.load_todo
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - state_manager.exists
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - r.get_rebase_state_manager
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 23
    IfCount: 11
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 5307
    functionName: dulwich.cli.cmd_filter_branch.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - refs.allkeys
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.index.write_cache_time
    - <builtin>.range
    - contextlib.closing
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.objects.check_hexsha
    - todo.extend
    - os.fspath
    - dulwich.cli.cmd_filter_branch.run.filter_message
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - threading.Lock
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - dulwich.index.build_file_from_blob
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.print
    - tree.iteritems
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - dulwich.file._GitFile.seek
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - new_parents.append
    - path.split
    - included_paths.copy
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.pack.SHA1Reader.seek
    - dulwich._objects.sorted_tree_items
    - dulwich.index._encode_varint
    - st.__class__
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - hashlib.sha1.digest
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - entries.items
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - subdirectory_filter.encode
    - dulwich.filters.ProcessFilterDriver.__init__
    - ret._handle_include_directive
    - argparse.ArgumentParser
    - os.close
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.refs.local_branch_name
    - value.decode
    - value.this.serialize
    - <builtin>.sorted
    - dulwich.pack.SHA1Writer.tell
    - dulwich.index.Index.write
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - filter_name.decode
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.index.Index.update
    - os.replace
    - dulwich.index.commit_tree.add_tree
    - os.mkdir
    - element.lower
    - parser.parse_args
    - os.path.isfile
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.index.write_cache_entry
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.index.commit_tree
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - mapping.get
    - dulwich.hooks.CommitMsgShellHook.__init__
    - <builtin>.str
    - element.rstrip
    - element.decode
    - dulwich.index.read_cache_entry
    - dulwich.index.Index.__iter__
    - os.fsencode
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.filter_branch.CommitFilter._apply_tree_filter
    - current_tree.items
    - path.rsplit
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - object_store.add_object
    - dulwich.pack.SHA1Reader.__init__
    - subprocess.run
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - tempfile.NamedTemporaryFile
    - <builtin>.isinstance
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - dulwich.filters.CompositeFilterDriver.__init__
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - dulwich.filters.ProcessFilterDriver.cleanup
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - dulwich.index.Index.commit
    - whitespace.append
    - dulwich.objects.Tree._serialize
    - dulwich.index.commit_tree.build_tree
    - typing.cast.startswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - parsed_args.branch.startswith
    - ret.setdefault
    - env.copy
    - dulwich.filter_branch.CommitFilter.process_commit
    - dulwich.objects.Commit.__init__
    - warnings.warn
    - os.environ.copy
    - parser.add_argument
    - extensions.append
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - extension.to_bytes
    - dulwich.config.ConfigFile.__init__
    - dulwich.filter_branch.filter_refs
    - io.BytesIO.write
    - branch.startswith
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.index.write_index_dict
    - logger.info
    - hashlib.sha1
    - new_data.update
    - commondir.read
    - value.startswith
    - os.remove
    - meaningful_extensions.append
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.objects.Tree.__init__
    - dulwich.filters.FilterContext.get_driver
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - dulwich.reftable.ReftableRefsContainer.__init__
    - new_data.get
    - line.lstrip
    - os.path.dirname
    - dulwich.objects.serialize_tree
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - dulwich.index.Index.iterobjects
    - value.ancestor.serialize
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - extra.append
    - os.rename
    - dulwich.objects.Tag.__init__
    - subentry.in_path
    - f.read
    - tree_path.replace
    - r.refs.allkeys
    - tempfile.mkstemp
    - dulwich.index._decompress_path_from_stream
    - dulwich.file._fancy_rename
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.divmod
    - os.kill
    - dulwich.config._parse_string
    - headers.append
    - dulwich.objects.Tree.add
    - logger.error
    - dulwich.filters.CompositeFilterDriver.smudge
    - ret.extend
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Blob._serialize
    - dulwich.hooks.ShellHook.__init__
    - dulwich.file._GitFile.read
    - dulwich.repo.parse_graftpoints
    - filter_driver.smudge
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.filter_branch.CommitFilter.get_mapping
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - dulwich.index.write_index
    - os.unlink
    - branch.encode
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - <builtin>.any
    - attributes.get
    - ext.to_bytes
    - dulwich.objects.ShaFile._serialize
    - result.append
    - dulwich.pack.SHA1Writer.write
    - os.path.exists
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - ref.startswith
    - dulwich.index.pathsplit
    - <builtin>.ord
    - value.endswith
    - dulwich.index.validate_path_element_hfs
    - dulwich.filter_branch.CommitFilter._apply_index_filter
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - <builtin>.int
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - tempfile.TemporaryDirectory
    - <builtin>.reversed
    - <builtin>.all
    - entries_list.append
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - <builtin>.set
    - value.other.serialize
    - dulwich.filter_branch.CommitFilter.__init__
    - contents.decode
    - struct.pack
    - dulwich.pack.SHA1Writer.__init__
    - clean_cmd_raw.decode
    - line.endswith
    - value.split
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - dulwich.porcelain.filter_branch
    - unicodedata.normalize
    - parsed_args.original.encode
    - dulwich.index.Index.read
    - os.open
    - value.serialize
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.filter_branch.CommitFilter._filter_tree_with_subdirectory
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.IndexExtension.from_raw
    - subdirectory.split
    - <builtin>.bytearray
    - filter_env.update
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.index.pathjoin
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febab670b80>
    - <ast.Constant object at 0x7febab670b50>
    - <ast.Constant object at 0x7febab670b20>
    argNames:
    - cmd
    - input_data
    - cwd
    - extra_env
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5362
    functionName: dulwich.cli.cmd_filter_branch.run.run_filter
    functionSourceFile: dulwich.cli
    functionUses: 10
    functionsReached:
    - filter_env.update
    - subprocess.run
    - env.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: env.copy
    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: filter_env.update
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - tree_sha
    - tmpdir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 5396
    functionName: dulwich.cli.cmd_filter_branch.run.tree_filter
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - pathlib.Path.write_bytes
    - r.object_store.add_object
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - obj.set_raw_string
    - env.copy
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - dulwich.objects.Tree.__init__
    - subsection.encode
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.cli.cmd_filter_branch.run.tree_filter.build_tree_from_dir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - entry.path.decode
    - section_dict.items
    - tree.iteritems
    - pathlib.Path.mkdir
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - subprocess.run
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.objects.Tree.add
    - os.stat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - filter_env.update
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.path.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: pathlib.Path.mkdir
    functionSourceFile: pathlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path.write_bytes
    functionSourceFile: pathlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - dir_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5418
    functionName: dulwich.cli.cmd_filter_branch.run.tree_filter.build_tree_from_dir
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - dulwich.objects.Tree.__init__
    - <builtin>.open
    - os.listdir
    - r.object_store.add_object
    - <builtin>.sorted
    - dulwich.objects.ShaFile.from_string
    - os.path.join
    - f.read
    - os.path.isdir
    - dulwich.objects.Tree.add
    - <builtin>.super
    - name.encode
    - obj.set_raw_string
    - dulwich.objects.ShaFile.__init__
    - dulwich.cli.cmd_filter_branch.run.tree_filter.build_tree_from_dir
    - os.stat
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.object_store.add_object
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - tree_sha
    - index_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5447
    functionName: dulwich.cli.cmd_filter_branch.run.index_filter
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - filter_env.update
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - subprocess.run
    - env.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - parents
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5456
    functionName: dulwich.cli.cmd_filter_branch.run.parent_filter
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - new_parents.append
    - p.hex
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - env.copy
    - parent_str.encode
    - result.decode
    - sha.encode
    - <builtin>.len
    - output.split
    - filter_env.update
    - typing.NewType
    - <builtin>.list
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    - subprocess.run
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.hex
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parent_str.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sha.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - commit_obj
    - tree_sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5477
    functionName: dulwich.cli.cmd_filter_branch.run.commit_filter
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - tree_sha.hex
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - env.copy
    - commit_obj.id.hex
    - result.decode
    - <builtin>.len
    - cmd_input.encode
    - filter_env.update
    - parent.hex
    - typing.NewType
    - binascii.unhexlify
    - dulwich.objects.valid_hexsha
    - subprocess.run
    - output.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tree_sha.hex
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parent.hex
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cmd_input.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_obj.id.hex
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - tag_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5504
    functionName: dulwich.cli.cmd_filter_branch.run.tag_name_filter
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - filter_env.update
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - subprocess.run
    - env.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parsed_args.original.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.refs.allkeys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 16
    argDefaultValues:
    - <ast.Constant object at 0x7febacdcd1c0>
    - <ast.Constant object at 0x7febacdcd1f0>
    argNames:
    - repo
    - branch
    - filter_fn
    - filter_author
    - filter_committer
    - filter_message
    - tree_filter
    - index_filter
    - parent_filter
    - commit_filter
    - subdirectory_filter
    - prune_empty
    - tag_name_filter
    - force
    - keep_original
    - refs
    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: 11
    functionLinenumber: 7522
    functionName: dulwich.porcelain.filter_branch
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.pack.SHA1Reader.tell
    - dulwich.index.SparseDirExtension.from_bytes
    - refs.allkeys
    - hashlib.sha1.update
    - dulwich.objects.format_time_entry
    - dulwich.filters.ProcessFilterDriver.reuse
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.index.write_cache_time
    - <builtin>.range
    - contextlib.closing
    - dulwich.pack.SHA1Reader.check_sha
    - dulwich.objects.check_hexsha
    - todo.extend
    - os.fspath
    - dulwich.cli.cmd_filter_branch.run.filter_message
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - dulwich.cli.cmd_filter_branch.run.run_filter
    - threading.Lock
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - dulwich.index.TreeExtension.__init__
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - dulwich.index.build_file_from_blob
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - tree.iteritems
    - dulwich.index.ConflictedIndexEntry.__init__
    - dulwich.index._tree_to_fs_path
    - dulwich.file._GitFile.seek
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - dulwich.index.TreeExtension.from_bytes
    - new_parents.append
    - path.split
    - included_paths.copy
    - line.split
    - dulwich.config.ConfigDict.get
    - dulwich.pack.SHA1Reader.seek
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - dulwich.index._encode_varint
    - st.__class__
    - dulwich.index.read_index_header
    - struct.unpack
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.pack.SHA1Reader.read
    - dulwich.index._compress_path
    - hashlib.sha1.digest
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - autocrlf_raw.lower
    - dulwich.objects.Tag._serialize
    - entries.items
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - subdirectory_filter.encode
    - dulwich.filters.ProcessFilterDriver.__init__
    - ret._handle_include_directive
    - os.close
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.index.SerializedIndexEntry.stage
    - dulwich.refs.local_branch_name
    - value.decode
    - value.this.serialize
    - <builtin>.sorted
    - dulwich.pack.SHA1Writer.tell
    - dulwich.index.Index.write
    - dulwich.index.Index.clear
    - dulwich.objects.valid_hexsha
    - dulwich.file._GitFile.write
    - setting.strip
    - dulwich.config._is_line_continuation
    - filter_name.decode
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.index.Index.update
    - os.replace
    - dulwich.index.commit_tree.add_tree
    - os.mkdir
    - element.lower
    - os.path.isfile
    - dulwich.index.Index.__init__
    - stat.S_IFMT
    - <builtin>.tuple
    - extension.lower
    - dulwich.index.ResolveUndoExtension.from_bytes
    - dulwich.index.write_cache_entry
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.index.commit_tree
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - mapping.get
    - dulwich.hooks.CommitMsgShellHook.__init__
    - <builtin>.str
    - element.rstrip
    - element.decode
    - dulwich.index.read_cache_entry
    - dulwich.index.Index.__iter__
    - os.fsencode
    - dulwich.filters.FilterRegistry.get_driver
    - smudge_cmd_raw.decode
    - name.encode
    - dulwich.file._GitFile.abort
    - os.fdopen
    - dulwich.filter_branch.CommitFilter._apply_tree_filter
    - current_tree.items
    - path.rsplit
    - cs.startswith
    - dulwich.file._GitFile.__init__
    - object_store.add_object
    - dulwich.pack.SHA1Reader.__init__
    - subprocess.run
    - dulwich.config.ConfigDict.items
    - dulwich.index.UntrackedExtension.from_bytes
    - tempfile.NamedTemporaryFile
    - <builtin>.isinstance
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - dulwich.filters.CompositeFilterDriver.__init__
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - dulwich.filters.ProcessFilterDriver.cleanup
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - dulwich.index.Index.commit
    - whitespace.append
    - dulwich.objects.Tree._serialize
    - dulwich.index.commit_tree.build_tree
    - typing.cast.startswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - process_cmd_raw.decode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - dulwich.attrs.GitAttributes.match_path
    - dulwich.filters.FilterRegistry._create_from_config
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - ret.setdefault
    - env.copy
    - dulwich.filter_branch.CommitFilter.process_commit
    - dulwich.objects.Commit.__init__
    - warnings.warn
    - extensions.append
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - extension.to_bytes
    - dulwich.config.ConfigFile.__init__
    - dulwich.filter_branch.filter_refs
    - io.BytesIO.write
    - branch.startswith
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.index.write_index_dict
    - hashlib.sha1
    - new_data.update
    - commondir.read
    - value.startswith
    - os.remove
    - meaningful_extensions.append
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.objects.Tree.__init__
    - dulwich.filters.FilterContext.get_driver
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - dulwich.reftable.ReftableRefsContainer.__init__
    - new_data.get
    - line.lstrip
    - os.path.dirname
    - dulwich.objects.serialize_tree
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - dulwich.index.Index.iterobjects
    - value.ancestor.serialize
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - section_dict.items
    - dulwich.filters.get_filter_for_path
    - dulwich.index.validate_path
    - extra.append
    - os.rename
    - dulwich.objects.Tag.__init__
    - subentry.in_path
    - f.read
    - tree_path.replace
    - tempfile.mkstemp
    - dulwich.file._fancy_rename
    - dulwich.index._decompress_path_from_stream
    - todo.pop
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.divmod
    - os.kill
    - dulwich.config._parse_string
    - headers.append
    - dulwich.objects.Tree.add
    - dulwich.filters.CompositeFilterDriver.smudge
    - ret.extend
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Blob._serialize
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.file._GitFile.read
    - filter_driver.smudge
    - dulwich.index.IndexEntry.from_serialized
    - dulwich.index.validate_path_element_ntfs
    - os.fsync
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.filter_branch.CommitFilter.get_mapping
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - dulwich.index.write_index
    - os.unlink
    - branch.encode
    - dulwich.config.StackedConfig.get
    - dulwich.index.UntrackedExtension.__init__
    - value.strip
    - dulwich.config.ConfigFile.from_path
    - dulwich.index.cleanup_mode
    - <builtin>.any
    - attributes.get
    - ext.to_bytes
    - dulwich.objects.ShaFile._serialize
    - result.append
    - dulwich.pack.SHA1Writer.write
    - os.path.exists
    - dulwich.index.ResolveUndoExtension.__init__
    - dulwich.file._GitFile.close
    - dulwich.index.read_index_dict_with_version
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - enum.Enum.__init__
    - ref.startswith
    - dulwich.index.pathsplit
    - <builtin>.ord
    - value.endswith
    - dulwich.index.validate_path_element_hfs
    - dulwich.filter_branch.CommitFilter._apply_index_filter
    - dulwich.filters.FilterBlobNormalizer.checkout_normalize
    - <builtin>.int
    - io.BytesIO.tell
    - dulwich.hooks.PostReceiveShellHook.__init__
    - tempfile.TemporaryDirectory
    - <builtin>.reversed
    - <builtin>.all
    - entries_list.append
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - io.BytesIO.close
    - dulwich.index.write_index_extension
    - <builtin>.set
    - value.other.serialize
    - dulwich.filter_branch.CommitFilter.__init__
    - contents.decode
    - struct.pack
    - dulwich.pack.SHA1Writer.__init__
    - clean_cmd_raw.decode
    - line.endswith
    - value.split
    - dulwich.index.build_index_from_tree
    - dulwich.index.SparseDirExtension.__init__
    - unicodedata.normalize
    - dulwich.index.Index.read
    - os.open
    - value.serialize
    - dulwich.objects.git_line
    - dulwich.index.read_cache_time
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.filter_branch.CommitFilter._filter_tree_with_subdirectory
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.IndexExtension.from_raw
    - subdirectory.split
    - <builtin>.bytearray
    - filter_env.update
    - dulwich.pack.SHA1Writer.close
    - <builtin>.enumerate
    - dulwich.index.pathjoin
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parsed_args.branch.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 29
    ICount: 43
    IfCount: 20
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 5578
    functionName: dulwich.cli.cmd_lfs.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - attr.startswith
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - dulwich.index._has_directory_changed
    - remote_url.decode
    - store.open_object
    - dulwich.attrs.GitAttributes.write_to_file
    - dulwich.repo.Repo.__init__
    - index.items
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - <builtin>.float
    - dulwich.lfs._is_valid_lfs_url
    - dulwich.porcelain.lfs_smudge
    - urllib3.make_headers
    - <builtin>.range
    - urllib.parse.urlparse
    - contextlib.closing
    - dulwich.porcelain.lfs_migrate
    - pat.split
    - dulwich.client.default_user_agent_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - json.dumps
    - dulwich.attrs.GitAttributes.to_bytes
    - dulwich.attrs.parse_git_attributes
    - parser.print_help
    - lines.append
    - todo.extend
    - patterns.append
    - os.fspath
    - dulwich.lfs.HTTPLFSClient._make_request
    - dulwich.repo.Repo._get_config_condition_matchers
    - filename.encode
    - subsection.encode
    - index.iteritems
    - dulwich.lfs.LFSFilterDriver._download_object
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - store.write_object
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - dulwich.porcelain.lfs_pull
    - parser_smudge.add_argument
    - contextlib.suppress
    - parser_ls.add_argument
    - urllib3.PoolManager
    - dulwich.lfs.LFSClient.download
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - results.items
    - dulwich.attrs.Pattern._compile
    - tree.iteritems
    - ignore_manager.is_ignored
    - matching_sections.sort
    - dulwich.index._tree_to_fs_path
    - filenames.remove
    - ret.append
    - content.endswith
    - urllib.parse.urljoin
    - c.isalnum
    - included_paths.copy
    - global_filters.append
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - os.readlink
    - relpaths.append
    - proxy_server.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - remote_url.endswith
    - dulwich.lfs.LFSClient.from_config
    - no_proxy_value.lower
    - subparsers.add_parser
    - dulwich.repo.read_gitfile
    - re.compile
    - value.lower
    - dulwich.ignore._handle_double_asterisk
    - extra_header.split
    - dulwich.lfs.FileLFSClient.upload
    - resolved_path.is_dir
    - dulwich.ignore.Pattern.__init__
    - logging.warn
    - dulwich.porcelain.add
    - typing.NamedTuple.__init__
    - r.object_store.add_object
    - dulwich.lfs.LFSStore.from_repo
    - dulwich.index._check_entry_for_changes
    - r.object_store.iter_tree_contents
    - parser_migrate.add_argument
    - config.set
    - ret._handle_include_directive
    - argparse.ArgumentParser
    - dulwich.lfs.HTTPLFSClient.__init__
    - dulwich.object_store.DiskObjectStore.__init__
    - host_and_path.split
    - data_chunks.append
    - dulwich.lfs.LFSFilterDriver.__init__
    - value.decode
    - tracked.append
    - os.path.abspath
    - future.result
    - dulwich.porcelain.lfs_untrack
    - parser_track.add_argument
    - <builtin>.sorted
    - re.escape
    - parser_push.add_argument
    - dulwich.lfs.FileLFSClient.download
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    - dulwich.objects.valid_hexsha
    - matching_sections.append
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.environ.get
    - os.mkdir
    - dulwich.attrs.Pattern.__init__
    - parser.parse_args
    - os.path.isfile
    - parser_untrack.add_argument
    - executor.submit
    - stat.S_IFMT
    - timeout_bytes.decode
    - <builtin>.tuple
    - extension.lower
    - header_name.decode
    - dulwich.objects.Blob.__init__
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - dulwich.lfs.HTTPLFSClient.batch
    - dulwich.ignore.read_ignore_patterns
    - lfs_url_bytes.decode
    - <builtin>.str
    - urllib3.ProxyManager
    - os.fsencode
    - line.strip
    - name.encode
    - dulwich.porcelain.lfs_pointer_check
    - r.refs.keys
    - pattern.endswith
    - cs.startswith
    - parser_pull.add_argument
    - dulwich.config.ConfigDict.items
    - tempfile.NamedTemporaryFile
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - r.get_config
    - os.path.relpath
    - dulwich.lfs.LFSFilterDriver.clean
    - stat.S_ISLNK
    - user_agent_bytes.decode
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - upload_action.header.items
    - dulwich.porcelain.lfs_status
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - <builtin>.min
    - os.path.isdir
    - dulwich.porcelain.lfs_push
    - whitespace.append
    - pathlib.Path
    - remote_url.startswith
    - hashlib.sha256
    - pathlib.Path.parent.resolve
    - dulwich.porcelain.lfs_clean
    - files_to_migrate.append
    - dulwich.attrs.parse_gitattributes_file
    - dulwich.lfs.HTTPLFSClient.download
    - dulwich.porcelain.lfs_init
    - line.replace
    - lfs_files.append
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lfs.HTTPLFSClient.upload
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - urllib.request.url2pathname
    - ref.encode
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - r.refs.read_ref
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - no_proxy_value.lstrip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - parser_pointer.add_argument
    - os.makedirs
    - dulwich.lfs.LFSStore.write_object
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - dulwich.index.blob_from_path_and_stat
    - logger.info
    - remote_url_str.endswith
    - commondir.read
    - value.startswith
    - os.remove
    - dulwich.config._check_section_name
    - path.decode
    - config.sections
    - dulwich.lfs.LFSPointer.to_bytes
    - dulwich.index.blob_from_path_and_mode
    - gitattributes.write_to_file
    - download_headers.update
    - sep_corrected_path.decode
    - parser.add_subparsers
    - dulwich.reftable.ReftableRefsContainer.__init__
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.attrs.GitAttributes.__init__
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - pathlib.Path.resolve
    - dulwich.index.get_unstaged_changes
    - os.walk
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - ca_certs_bytes.decode
    - sys.getdefaultencoding
    - dulwich.lfs.LFSPointer.from_bytes
    - <builtin>.bool
    - dulwich.client._urlmatch_http_sections
    - obj_data.get
    - config.get
    - r.get_config_stack
    - urllib.request.Request
    - dulwich.config._parse_section_header_line
    - dulwich.lfs.LFSFilterDriver.smudge
    - stat.S_ISDIR
    - section_dict.items
    - config.write_to_path
    - dulwich.ignore._translate_segment
    - dulwich.lfs.LFSStore.__init__
    - sys.exit
    - extra.append
    - dulwich.lfs.LFSPointer.__init__
    - os.rename
    - subentry.in_path
    - ipaddress.ip_address
    - f.read
    - pointer.is_valid_oid
    - tree_path.replace
    - ref_bytes.startswith
    - dulwich.lfs.FileLFSClient.__init__
    - pattern_obj.pattern.decode
    - dulwich.cli.to_display_str
    - attr.partition
    - no_proxy_value.strip
    - dulwich.cli.format_bytes
    - todo.pop
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - sys.stdout.buffer.write
    - <builtin>.dict
    - dulwich.ignore.translate
    - dulwich.lfs._get_lfs_user_agent
    - pointers_to_fetch.append
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - logger.error
    - os.stat
    - ret.extend
    - <builtin>.hasattr
    - dulwich.attrs.GitAttributes.set_attribute
    - pat.startswith
    - req_headers.update
    - dulwich.index.read_submodule_head
    - pool_manager.request
    - proxy_server_bytes.decode
    - objects_to_push.add
    - dulwich.client.default_urllib3_manager
    - data.get
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - gitattributes.remove_pattern
    - pathlib.Path.is_absolute
    - r.open_index
    - action_data.get
    - os.path.join
    - shutil.rmtree
    - dulwich.config.StackedConfig.get
    - value.strip
    - pathlib.Path.is_symlink
    - json.loads
    - ipaddress.ip_network
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - objects.append
    - urllib.parse.urlparse.hostname.endswith
    - sha.update
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - os.path.exists
    - parser_fetch.add_argument
    - posixpath.join
    - name.startswith
    - unstaged_path.decode
    - text.strip
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - path_str.encode
    - dulwich.repo.BaseRepo.head
    - value.endswith
    - <builtin>.ord
    - <builtin>.int
    - dulwich.lfs.LFSStore.open_object
    - dulwich.porcelain.lfs_track
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.credentials.match_urls
    - <builtin>.all
    - dulwich.attrs._parse_attr
    - url.rstrip
    - dulwich.ignore._handle_leading_patterns
    - dulwich.lfs.LFSClient.__init__
    - data.decode
    - dulwich.attrs._translate_pattern
    - <builtin>.super
    - dulwich.porcelain.lfs_ls_files
    - <builtin>.set
    - urllib.request.Request.add_header
    - lfs_file.read
    - logger.warning
    - dulwich.lfs.LFSClient.upload
    - sha.hexdigest
    - dulwich.attrs.GitAttributes.from_file
    - dulwich.porcelain.path_to_tree_path
    - dulwich.porcelain.get_untracked_paths
    - parser_clean.add_argument
    - attr_strs.append
    - line.endswith
    - ignored.add
    - dulwich.lfs.LFSStore._sha_path
    - dulwich.porcelain.lfs_fetch
    - pat.endswith
    - sys.stdin.buffer.read
    - repo.get_config_stack
    - dulwich.porcelain._walk_working_dir_paths
    - dulwich.attrs.GitAttributes.__iter__
    - remote.encode
    - urllib.request.urlopen
    - f.flush
    - line.rstrip
    - os.lstat
    - ret._values.setdefault
    - verify_action.header.items
    - dulwich.refs.DiskRefsContainer.__init__
    - pattern.encode
    - os.path.getsize
    - dulwich.hooks.PreCommitShellHook.__init__
    - fnmatch.fnmatch
    - dulwich.repo.BaseRepo.__init__
    - attrs.get
    - p.decode
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.bytearray
    - dulwich.client.check_for_proxy_bypass
    - dulwich.credentials.match_partial_url
    - <builtin>.enumerate
    - no_proxy_str.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser_track.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_untrack.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_ls.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_migrate.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_pointer.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_clean.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_smudge.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_fetch.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_pull.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_push.add_argument
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febabf578e0>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8301
    functionName: dulwich.porcelain.lfs_init
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.lfs.LFSStore.from_repo
    - config.set
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - config.write_to_path
    - section_dict.items
    - cs.startswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - r.get_config
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febacba8430>
    - <ast.Constant object at 0x7febacba8460>
    argNames:
    - repo
    - patterns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 8199
    functionName: dulwich.porcelain.lfs_track
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - pathlib.Path.is_absolute
    - attr.startswith
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - dulwich.attrs.GitAttributes.write_to_file
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - tracked.append
    - value.decode
    - os.path.abspath
    - future.result
    - <builtin>.sorted
    - stuff.startswith
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.ignore.IgnoreFilter.__init__
    - dulwich.attrs.GitAttributes.to_bytes
    - multiprocessing.cpu_count
    - dulwich.attrs.parse_git_attributes
    - lines.append
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - filename.encode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - name.startswith
    - subsection.encode
    - unstaged_path.decode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index.blob_from_path_and_mode
    - executor.submit
    - index.iteritems
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dulwich.objects.Blob.__init__
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.porcelain.lfs_track
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - <builtin>.iter
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - dulwich.attrs._parse_attr
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - dulwich.attrs.GitAttributes.from_file
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - os.path.relpath
    - tree_path.replace
    - content.endswith
    - c.isalnum
    - dulwich.porcelain.get_untracked_paths
    - stat.S_ISLNK
    - attr_strs.append
    - line.endswith
    - ignored.add
    - pattern_obj.pattern.decode
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - os.readlink
    - attr.partition
    - pat.endswith
    - relpaths.append
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - <builtin>.dict
    - dulwich.ignore.translate
    - whitespace.append
    - dulwich.attrs.GitAttributes.__iter__
    - pathlib.Path
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.attrs.parse_gitattributes_file
    - dulwich.refs.DiskRefsContainer.__init__
    - pattern.encode
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - dulwich.attrs.GitAttributes.set_attribute
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - resolved_path.is_dir
    - attrs.get
    - <builtin>.bytes
    - p.decode
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.add
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febabf421f0>
    - <ast.Constant object at 0x7febabf42220>
    argNames:
    - repo
    - patterns
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 8252
    functionName: dulwich.porcelain.lfs_untrack
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - gitattributes.remove_pattern
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - pathlib.Path.is_absolute
    - attr.startswith
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - dulwich.attrs.GitAttributes.write_to_file
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - tracked.append
    - value.decode
    - os.path.abspath
    - future.result
    - <builtin>.sorted
    - stuff.startswith
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.ignore.IgnoreFilter.__init__
    - dulwich.attrs.GitAttributes.to_bytes
    - multiprocessing.cpu_count
    - dulwich.attrs.parse_git_attributes
    - lines.append
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - filename.encode
    - dulwich.repo.Repo._get_config_condition_matchers
    - posixpath.join
    - name.startswith
    - subsection.encode
    - unstaged_path.decode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.index.blob_from_path_and_mode
    - executor.submit
    - gitattributes.write_to_file
    - index.iteritems
    - <builtin>.len
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.attrs.GitAttributes.__init__
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dulwich.objects.Blob.__init__
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.porcelain.lfs_track
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - <builtin>.iter
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - dulwich.attrs._parse_attr
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - dulwich.attrs.GitAttributes.from_file
    - dulwich.porcelain.path_to_tree_path
    - os.path.relpath
    - tree_path.replace
    - content.endswith
    - c.isalnum
    - dulwich.porcelain.get_untracked_paths
    - stat.S_ISLNK
    - attr_strs.append
    - line.endswith
    - ignored.add
    - pattern_obj.pattern.decode
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - os.readlink
    - attr.partition
    - pat.endswith
    - relpaths.append
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - <builtin>.dict
    - dulwich.ignore.translate
    - whitespace.append
    - dulwich.attrs.GitAttributes.__iter__
    - pathlib.Path
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.attrs.parse_gitattributes_file
    - dulwich.refs.DiskRefsContainer.__init__
    - pattern.encode
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - dulwich.attrs.GitAttributes.set_attribute
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - resolved_path.is_dir
    - attrs.get
    - <builtin>.bytes
    - p.decode
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.add
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febabf4d700>
    - <ast.Constant object at 0x7febabf4d730>
    argNames:
    - repo
    - ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8384
    functionName: dulwich.porcelain.lfs_ls_files
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.encode
    - dulwich.object_store.iter_tree_contents
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - todo.extend
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - text.strip
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.lfs.LFSPointer.from_bytes
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - data.decode
    - stat.S_ISDIR
    - section_dict.items
    - tree.iteritems
    - cs.startswith
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - extra.append
    - <builtin>.set
    - subentry.in_path
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - todo.pop
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - lfs_files.append
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 7
    IfCount: 9
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febabf4e8e0>
    - <ast.Constant object at 0x7febabf4e910>
    - <ast.Constant object at 0x7febabf4e940>
    - <ast.Constant object at 0x7febabf4e970>
    argNames:
    - repo
    - include
    - exclude
    - everything
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 8436
    functionName: dulwich.porcelain.lfs_migrate
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - r.object_store.add_object
    - pathlib.Path.is_absolute
    - attr.startswith
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.lfs.LFSStore.from_repo
    - dulwich.index._check_entry_for_changes
    - dulwich.attrs.GitAttributes.write_to_file
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - index.items
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dulwich.lfs.LFSFilterDriver.__init__
    - <builtin>.range
    - value.decode
    - tracked.append
    - os.path.abspath
    - dulwich.index.cleanup_mode
    - <builtin>.any
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - <builtin>.sorted
    - future.result
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - unstaged_full_path.relative_to
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - repo.controldir
    - dulwich.lfs.LFSStore.create
    - dulwich.ignore.IgnoreFilter.__init__
    - dulwich.attrs.GitAttributes.to_bytes
    - multiprocessing.cpu_count
    - dulwich.attrs.parse_git_attributes
    - lines.append
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - dulwich.attrs.Pattern.__init__
    - patterns.append
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - filename.encode
    - dulwich.lfs.LFSPointer.to_bytes
    - posixpath.join
    - subsection.encode
    - unstaged_path.decode
    - text.strip
    - os.path.isfile
    - dulwich.config._check_variable_name
    - name.startswith
    - dulwich.index.blob_from_path_and_mode
    - executor.submit
    - <builtin>.len
    - stat.S_IFMT
    - index.iteritems
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - path_str.encode
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.attrs.GitAttributes.__init__
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dirnames.remove
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - dulwich.lfs.LFSPointer.from_bytes
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.porcelain.lfs_track
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.attrs._parse_attr
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - data.decode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.attrs.Pattern._compile
    - dulwich.attrs._translate_pattern
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - r.get_config
    - <builtin>.isinstance
    - dulwich.attrs.GitAttributes.from_file
    - content.endswith
    - c.isalnum
    - dulwich.lfs.LFSFilterDriver.clean
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.porcelain.get_untracked_paths
    - dulwich.porcelain.path_to_tree_path
    - os.path.relpath
    - attr_strs.append
    - line.endswith
    - ignored.add
    - pattern_obj.pattern.decode
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - os.readlink
    - binascii.unhexlify
    - attr.partition
    - pat.endswith
    - index.write
    - relpaths.append
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - <builtin>.dict
    - dulwich.ignore.translate
    - whitespace.append
    - dulwich.attrs.GitAttributes.__iter__
    - dulwich.config._parse_string
    - pathlib.Path
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - os.stat
    - ret.extend
    - ret._values.setdefault
    - files_to_migrate.append
    - dulwich.attrs.parse_gitattributes_file
    - dulwich.refs.DiskRefsContainer.__init__
    - os.path.getsize
    - pattern.encode
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - fnmatch.fnmatch
    - dulwich.attrs.GitAttributes.set_attribute
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - resolved_path.is_dir
    - attrs.get
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - p.decode
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.add
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febad71a070>
    - <ast.Constant object at 0x7febad71a0a0>
    argNames:
    - repo
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8538
    functionName: dulwich.porcelain.lfs_pointer_check
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - text.strip
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.lfs.LFSPointer.from_bytes
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - data.decode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: results.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febabf34a90>
    - <ast.Constant object at 0x7febabf34ac0>
    argNames:
    - repo
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8325
    functionName: dulwich.porcelain.lfs_clean
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.lfs.LFSStore.from_repo
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dulwich.lfs.LFSFilterDriver.__init__
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.lfs.LFSPointer.to_bytes
    - subsection.encode
    - os.path.isfile
    - text.strip
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.lfs.LFSPointer.from_bytes
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - data.decode
    - section_dict.items
    - cs.startswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - r.get_config
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.lfs.LFSFilterDriver.clean
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febabf62ac0>
    - <ast.Constant object at 0x7febabf62af0>
    argNames:
    - repo
    - pointer_content
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 8357
    functionName: dulwich.porcelain.lfs_smudge
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.lfs.LFSStore.from_repo
    - action_data.get
    - no_proxy_value.lstrip
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.lfs.HTTPLFSClient.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - <builtin>.float
    - value.strip
    - json.loads
    - dulwich.lfs._is_valid_lfs_url
    - ipaddress.ip_network
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - host_and_path.split
    - os.makedirs
    - dulwich.lfs.LFSFilterDriver.__init__
    - urllib3.make_headers
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - dulwich.client.default_user_agent_string
    - dulwich.worktree.WorkTreeContainer.__init__
    - objects.append
    - dulwich.objects.check_hexsha
    - urllib.parse.urlparse.hostname.endswith
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - dulwich.objects.valid_hexsha
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    - json.dumps
    - dulwich.lfs.FileLFSClient.download
    - urllib.request.url2pathname
    - matching_sections.append
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - text.strip
    - dulwich.config._check_variable_name
    - <builtin>.len
    - timeout_bytes.decode
    - download_headers.update
    - <builtin>.tuple
    - dulwich.lfs.LFSFilterDriver._download_object
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - header_name.decode
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - ca_certs_bytes.decode
    - <builtin>.int
    - dulwich.lfs.HTTPLFSClient.batch
    - sys.getdefaultencoding
    - dulwich.lfs.LFSPointer.from_bytes
    - <builtin>.bool
    - dulwich.client._urlmatch_http_sections
    - obj_data.get
    - dulwich.lfs.LFSStore.open_object
    - config.get
    - <builtin>.str
    - urllib3.PoolManager
    - urllib3.ProxyManager
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.credentials.match_urls
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - dulwich.lfs.LFSFilterDriver.smudge
    - name.encode
    - data.decode
    - section_dict.items
    - matching_sections.sort
    - cs.startswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - ipaddress.ip_address
    - dulwich.config.ConfigDict.items
    - logger.warning
    - ret.append
    - f.read
    - pointer.is_valid_oid
    - r.get_config
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - content.endswith
    - c.isalnum
    - user_agent_bytes.decode
    - dulwich.lfs.FileLFSClient.__init__
    - line.endswith
    - included_paths.copy
    - dulwich.lfs.LFSStore._sha_path
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - no_proxy_value.strip
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - proxy_server.decode
    - config.get_multivar
    - header_value.decode
    - os.path.isdir
    - dulwich.lfs._get_lfs_user_agent
    - whitespace.append
    - dulwich.config._parse_string
    - remote_url.startswith
    - hashlib.sha256
    - dulwich.object_store.DiskObjectStore.from_config
    - remote_url.endswith
    - dulwich.lfs.LFSClient.from_config
    - no_proxy_value.lower
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.lfs.HTTPLFSClient.download
    - dulwich.repo.BaseRepo.__init__
    - extra_header.split
    - req_headers.update
    - pool_manager.request
    - proxy_server_bytes.decode
    - data.get
    - dulwich.client.default_urllib3_manager
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.bytearray
    - dulwich.client.check_for_proxy_bypass
    - dulwich.credentials.match_partial_url
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - no_proxy_str.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad7167c0>
    - <ast.Constant object at 0x7febad7167f0>
    - <ast.Constant object at 0x7febad716820>
    argNames:
    - repo
    - remote
    - refs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8577
    functionName: dulwich.porcelain.lfs_fetch
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.lfs.LFSStore.from_repo
    - r.object_store.iter_tree_contents
    - remote_url.decode
    - action_data.get
    - no_proxy_value.lstrip
    - store.open_object
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - <builtin>.float
    - value.strip
    - json.loads
    - ipaddress.ip_network
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - urllib3.make_headers
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - dulwich.client.default_user_agent_string
    - dulwich.worktree.WorkTreeContainer.__init__
    - objects.append
    - urllib.parse.urlparse.hostname.endswith
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - dulwich.objects.check_hexsha
    - dulwich.lfs.FileLFSClient.download
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    - dulwich.objects.valid_hexsha
    - json.dumps
    - remote_url_str.endswith
    - matching_sections.append
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - text.strip
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - timeout_bytes.decode
    - download_headers.update
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - header_name.decode
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - store.write_object
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - ca_certs_bytes.decode
    - line.startswith
    - dulwich.lfs.HTTPLFSClient.batch
    - <builtin>.int
    - sys.getdefaultencoding
    - backend.get
    - dulwich.lfs.LFSPointer.from_bytes
    - dulwich.client._urlmatch_http_sections
    - dulwich.lfs.LFSStore.open_object
    - obj_data.get
    - lfs_url_bytes.decode
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - dulwich.lfs.LFSClient.download
    - urllib3.ProxyManager
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.credentials.match_urls
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - url.rstrip
    - dulwich.lfs.LFSClient.__init__
    - data.decode
    - name.encode
    - section_dict.items
    - r.refs.keys
    - matching_sections.sort
    - cs.startswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - ipaddress.ip_address
    - dulwich.config.ConfigDict.items
    - logger.warning
    - ret.append
    - f.read
    - pointer.is_valid_oid
    - <builtin>.isinstance
    - r.get_config
    - urllib.parse.urljoin
    - content.endswith
    - c.isalnum
    - user_agent_bytes.decode
    - line.endswith
    - dulwich.lfs.LFSStore._sha_path
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - no_proxy_value.strip
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - proxy_server.decode
    - os.path.isdir
    - dulwich.lfs._get_lfs_user_agent
    - whitespace.append
    - pointers_to_fetch.append
    - dulwich.config._parse_string
    - remote.encode
    - hashlib.sha256
    - dulwich.object_store.DiskObjectStore.from_config
    - no_proxy_value.lower
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.lfs.HTTPLFSClient.download
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - extra_header.split
    - req_headers.update
    - pool_manager.request
    - proxy_server_bytes.decode
    - data.get
    - dulwich.client.default_urllib3_manager
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.bytearray
    - dulwich.client.check_for_proxy_bypass
    - dulwich.credentials.match_partial_url
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - no_proxy_str.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febad727b50>
    - <ast.Constant object at 0x7febad727b80>
    argNames:
    - repo
    - remote
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 8668
    functionName: dulwich.porcelain.lfs_pull
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.lfs.LFSStore.from_repo
    - r.object_store.iter_tree_contents
    - remote_url.decode
    - action_data.get
    - no_proxy_value.lstrip
    - store.open_object
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - index.items
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - <builtin>.float
    - json.loads
    - ipaddress.ip_network
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - urllib3.make_headers
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - dulwich.client.default_user_agent_string
    - dulwich.worktree.WorkTreeContainer.__init__
    - objects.append
    - urllib.parse.urlparse.hostname.endswith
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - dulwich.objects.check_hexsha
    - dulwich.lfs.FileLFSClient.download
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    - dulwich.objects.valid_hexsha
    - json.dumps
    - remote_url_str.endswith
    - matching_sections.append
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - os.environ.get
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - text.strip
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - timeout_bytes.decode
    - download_headers.update
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - header_name.decode
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - store.write_object
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - ca_certs_bytes.decode
    - dulwich.lfs.HTTPLFSClient.batch
    - <builtin>.int
    - sys.getdefaultencoding
    - backend.get
    - dulwich.lfs.LFSPointer.from_bytes
    - dulwich.client._urlmatch_http_sections
    - dulwich.lfs.LFSStore.open_object
    - obj_data.get
    - lfs_url_bytes.decode
    - config.get
    - urllib3.PoolManager
    - <builtin>.str
    - dulwich.lfs.LFSClient.download
    - urllib3.ProxyManager
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.credentials.match_urls
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - url.rstrip
    - dulwich.lfs.LFSClient.__init__
    - data.decode
    - name.encode
    - section_dict.items
    - r.refs.keys
    - matching_sections.sort
    - cs.startswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - ipaddress.ip_address
    - dulwich.config.ConfigDict.items
    - lfs_file.read
    - logger.warning
    - ret.append
    - f.read
    - pointer.is_valid_oid
    - r.get_config
    - <builtin>.isinstance
    - urllib.parse.urljoin
    - content.endswith
    - c.isalnum
    - user_agent_bytes.decode
    - line.endswith
    - dulwich.lfs.LFSStore._sha_path
    - included_paths.copy
    - f.write
    - dulwich.porcelain.lfs_fetch
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - no_proxy_value.strip
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - proxy_server.decode
    - os.path.isdir
    - dulwich.lfs._get_lfs_user_agent
    - whitespace.append
    - pointers_to_fetch.append
    - dulwich.config._parse_string
    - remote.encode
    - hashlib.sha256
    - dulwich.object_store.DiskObjectStore.from_config
    - no_proxy_value.lower
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.lfs.HTTPLFSClient.download
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - extra_header.split
    - req_headers.update
    - pool_manager.request
    - proxy_server_bytes.decode
    - data.get
    - dulwich.client.default_urllib3_manager
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.bytearray
    - dulwich.client.check_for_proxy_bypass
    - dulwich.credentials.match_partial_url
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - no_proxy_str.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad7226d0>
    - <ast.Constant object at 0x7febad722700>
    - <ast.Constant object at 0x7febad722730>
    argNames:
    - repo
    - remote
    - refs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8709
    functionName: dulwich.porcelain.lfs_push
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ref.encode
    - io.BytesIO.readlines
    - dulwich.lfs.HTTPLFSClient._get_pool_manager
    - r.refs.read_ref
    - dulwich.lfs.LFSStore.from_repo
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - r.object_store.iter_tree_contents
    - remote_url.decode
    - action_data.get
    - no_proxy_value.lstrip
    - store.open_object
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - <builtin>.float
    - value.strip
    - json.loads
    - ipaddress.ip_network
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - data_chunks.append
    - os.makedirs
    - urllib3.make_headers
    - dulwich.lfs.LFSStore.write_object
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.config.ConfigFile.__init__
    - urllib.parse.urlparse
    - contextlib.closing
    - dulwich.client.default_user_agent_string
    - dulwich.worktree.WorkTreeContainer.__init__
    - objects.append
    - dulwich.objects.check_hexsha
    - dulwich.lfs.HTTPLFSClient._parse_batch_response
    - urllib.parse.urlparse.hostname.endswith
    - dulwich.objects.valid_hexsha
    - sha.update
    - repo.controldir
    - json.dumps
    - dulwich.lfs.LFSStore.create
    - remote_url_str.endswith
    - matching_sections.append
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - os.remove
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.lfs.HTTPLFSClient._make_request
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - text.strip
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - timeout_bytes.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - header_name.decode
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - ca_certs_bytes.decode
    - dulwich.lfs.HTTPLFSClient.batch
    - <builtin>.int
    - backend.get
    - sys.getdefaultencoding
    - dulwich.lfs.LFSPointer.from_bytes
    - obj_data.get
    - dulwich.client._urlmatch_http_sections
    - lfs_url_bytes.decode
    - config.get
    - <builtin>.str
    - urllib3.PoolManager
    - urllib3.ProxyManager
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.credentials.match_urls
    - urllib.request.Request
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - url.rstrip
    - dulwich.lfs.LFSClient.__init__
    - data.decode
    - name.encode
    - section_dict.items
    - matching_sections.sort
    - cs.startswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - os.rename
    - ipaddress.ip_address
    - dulwich.config.ConfigDict.items
    - urllib.request.Request.add_header
    - logger.warning
    - ret.append
    - tempfile.NamedTemporaryFile
    - f.read
    - dulwich.lfs.LFSClient.upload
    - sha.hexdigest
    - pointer.is_valid_oid
    - <builtin>.isinstance
    - r.get_config
    - urllib.parse.urljoin
    - content.endswith
    - c.isalnum
    - user_agent_bytes.decode
    - ref_bytes.startswith
    - line.endswith
    - dulwich.lfs.LFSStore._sha_path
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - upload_action.header.items
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - no_proxy_value.strip
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - config.get_multivar
    - header_value.decode
    - proxy_server.decode
    - os.path.isdir
    - dulwich.lfs._get_lfs_user_agent
    - whitespace.append
    - dulwich.config._parse_string
    - remote.encode
    - urllib.request.urlopen
    - hashlib.sha256
    - dulwich.object_store.DiskObjectStore.from_config
    - f.flush
    - no_proxy_value.lower
    - ret.extend
    - ret._values.setdefault
    - verify_action.header.items
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - extra_header.split
    - req_headers.update
    - dulwich.lfs.FileLFSClient.upload
    - pool_manager.request
    - proxy_server_bytes.decode
    - objects_to_push.add
    - data.get
    - dulwich.client.default_urllib3_manager
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - urllib.parse.urlparse.path.rstrip
    - <builtin>.bytearray
    - dulwich.client.check_for_proxy_bypass
    - dulwich.credentials.match_partial_url
    - dulwich.lfs.HTTPLFSClient.upload
    - dulwich.repo.Repo.controldir
    - logging.warn
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - no_proxy_str.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febad6fbc10>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8803
    functionName: dulwich.porcelain.lfs_status
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.lfs.LFSStore.from_repo
    - store.open_object
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - index.items
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.lfs.LFSStore.create
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - text.strip
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.lfs.LFSPointer.from_bytes
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - data.decode
    - section_dict.items
    - cs.startswith
    - dulwich.lfs.LFSStore.__init__
    - <builtin>.super
    - dulwich.lfs.LFSPointer.__init__
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - pointer.is_valid_oid
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5767
    functionName: dulwich.cli.cmd_help.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - parser.add_argument
    - argparse.ArgumentParser
    - <builtin>.sorted
    - parser.parse_args
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 5798
    functionName: dulwich.cli.cmd_format_patch.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - commits_to_format.append
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.objectspec.parse_commit
    - difflib.SequenceMatcher
    - obj.set_raw_string
    - commits_to_format.reverse
    - decoded.splitlines
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.patch.shortid
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.patch.write_commit_patch
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - dulwich.patch._get_sequence_matcher
    - value.strip
    - subprocess.Popen
    - parser.add_argument
    - store.tree_changes
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - io.BytesIO.writelines
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.objectspec.parse_commit_range
    - contextlib.closing
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - contents.encode
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - time.strftime
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - parsed_args.committish.encode
    - patiencediff.PatienceSequenceMatcher
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.diff.ColorizedDiffStream.write
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - p.communicate
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - time.ctime
    - dulwich.objectspec.parse_commit.dereference_tag
    - obj.as_raw_string
    - r.get_walker
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.diff.ColorizedDiffStream.writelines
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - version.encode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - difflib.SequenceMatcher.get_grouped_opcodes
    - typing.cast.id.encode
    - <builtin>.super
    - sys.stdout.write
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - tofile.decode
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - commit.message.decode
    - line.endswith
    - included_paths.copy
    - io.BytesIO.getvalue
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - line_bytes.decode
    - os.path.isdir
    - dulwich.patch.write_object_diff.lines
    - dulwich.patch.unified_diff_with_algorithm
    - dulwich.porcelain.format_patch
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - filenames.append
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - <builtin>.hasattr
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - rich.console.Console.print
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.patch.write_tree_diff
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.patch.get_summary
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 11
    IfCount: 8
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febacdd9d30>
    - <ast.Constant object at 0x7febacdd9d60>
    - <ast.Attribute object at 0x7febacdd9d90>
    - <ast.Constant object at 0x7febacdd9df0>
    - <ast.Constant object at 0x7febacdd9e20>
    - <ast.Constant object at 0x7febacdd9e50>
    - <ast.Constant object at 0x7febacdd9e80>
    argNames:
    - repo
    - committish
    - outstream
    - outdir
    - n
    - stdout
    - version
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 7654
    functionName: dulwich.porcelain.format_patch
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - commits_to_format.append
    - io.BytesIO.readlines
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - commits_to_format.reverse
    - decoded.splitlines
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.patch.shortid
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.patch.write_commit_patch
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch.write_tree_diff
    - dulwich.config.Config.get_boolean
    - dulwich.patch._get_sequence_matcher
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - subprocess.Popen
    - store.tree_changes
    - dulwich.repo.Repo.get_config
    - io.BytesIO.writelines
    - os.makedirs
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.patch._format_range_unified
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - contents.encode
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - time.strftime
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - patiencediff.PatienceSequenceMatcher
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.diff.ColorizedDiffStream.write
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - p.communicate
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - time.ctime
    - obj.as_raw_string
    - r.get_walker
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.diff.ColorizedDiffStream.writelines
    - dulwich.repo.parse_shared_repository
    - version.encode
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.super
    - sys.stdout.write
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - tofile.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - commit.message.decode
    - line.endswith
    - included_paths.copy
    - io.BytesIO.getvalue
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - line_bytes.decode
    - dulwich.patch.write_object_diff.lines
    - os.path.isdir
    - dulwich.patch.unified_diff_with_algorithm
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - filenames.append
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - value.lower
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.patch.patch_filename
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - rich.console.Console.print
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.patch.get_summary
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 5862
    functionName: dulwich.cli.cmd_mailsplit.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - maildir_path.decode
    - mailbox.mbox
    - dulwich.mbox._parse_mbox_from_file
    - os.fspath
    - parser.parse_args
    - result_lines.append
    - md.keys
    - dulwich.porcelain.mailsplit
    - pathlib.Path
    - <builtin>.len
    - output_files.append
    - argparse.ArgumentParser
    - os.unlink
    - message_bytes.split
    - <builtin>.open
    - dulwich.mbox.split_mbox
    - line.lstrip
    - dulwich.mbox.split_maildir
    - parser.add_argument
    - typing.cast.read
    - message_bytes.rstrip
    - mbox.close
    - tempfile.NamedTemporaryFile
    - typing.cast.decode
    - message_bytes.replace
    - tmp.write
    - dulwich.mbox._reverse_mboxrd_escaping
    - mailbox.Maildir
    - <builtin>.sorted
    - <builtin>.isinstance
    - pathlib.Path.is_dir
    - line.startswith
    - <builtin>.bytes
    - f.write
    - typing.cast
    - <builtin>.str
    - output_dir.decode
    - pathlib.Path.exists
    - 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: pathlib.Path.is_dir
    functionSourceFile: pathlib
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febab455250>
    - <ast.Constant object at 0x7febab455280>
    - <ast.Constant object at 0x7febab4552b0>
    - <ast.Constant object at 0x7febab4552e0>
    - <ast.Constant object at 0x7febab455310>
    - <ast.Constant object at 0x7febab455340>
    - <ast.Constant object at 0x7febab455370>
    argNames:
    - input_path
    - output_dir
    - start_number
    - precision
    - keep_cr
    - mboxrd
    - is_maildir
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 9150
    functionName: dulwich.porcelain.mailsplit
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - maildir_path.decode
    - mailbox.mbox
    - dulwich.mbox._parse_mbox_from_file
    - os.fspath
    - result_lines.append
    - md.keys
    - pathlib.Path
    - output_files.append
    - os.unlink
    - message_bytes.split
    - <builtin>.open
    - dulwich.mbox.split_mbox
    - line.lstrip
    - dulwich.mbox.split_maildir
    - typing.cast.read
    - message_bytes.rstrip
    - mbox.close
    - tempfile.NamedTemporaryFile
    - typing.cast.decode
    - message_bytes.replace
    - tmp.write
    - dulwich.mbox._reverse_mboxrd_escaping
    - mailbox.Maildir
    - <builtin>.sorted
    - <builtin>.isinstance
    - pathlib.Path.is_dir
    - line.startswith
    - <builtin>.bytes
    - f.write
    - typing.cast
    - <builtin>.str
    - output_dir.decode
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 13
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 5948
    functionName: dulwich.cli.cmd_mailinfo.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.mailinfo
    - email.utils.parseaddr
    - line.strip
    - <builtin>.print
    - typing.cast.get
    - email.parser.BytesParser
    - <builtin>.enumerate
    - os.fspath
    - parser.parse_args
    - typing.cast.get_payload
    - argparse.ArgumentParser
    - typing.cast.get_content_charset
    - body.splitlines
    - dulwich.patch._find_scissors_line
    - scissors_pattern.match
    - <builtin>.open
    - typing.cast.read
    - parser.add_argument
    - re.compile
    - <builtin>.hasattr
    - email.parser.Parser
    - typing.cast.decode
    - result.strip
    - commit_message.strip
    - dulwich.mbox.mailinfo
    - result.message.endswith
    - <builtin>.isinstance
    - message_lines.append
    - sparser.parsestr
    - patch_lines.append
    - dulwich.patch._munge_subject
    - f.write
    - dulwich.patch.mailinfo
    - body.encode
    - typing.cast
    - <builtin>.str
    - re.sub
    - bparser.parsebytes
    - subject.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febab4307c0>
    - <ast.Constant object at 0x7febab4307f0>
    - <ast.Constant object at 0x7febab430820>
    - <ast.Constant object at 0x7febab430850>
    - <ast.Constant object at 0x7febab430880>
    - <ast.Constant object at 0x7febab4308b0>
    - <ast.Constant object at 0x7febab4308e0>
    - <ast.Constant object at 0x7febab430910>
    argNames:
    - input_path
    - msg_file
    - patch_file
    - keep_subject
    - keep_non_patch
    - encoding
    - scissors
    - message_id
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 9225
    functionName: dulwich.porcelain.mailinfo
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - email.utils.parseaddr
    - line.strip
    - typing.cast.get
    - email.parser.BytesParser
    - <builtin>.enumerate
    - os.fspath
    - typing.cast.get_payload
    - typing.cast.get_content_charset
    - body.splitlines
    - dulwich.patch._find_scissors_line
    - scissors_pattern.match
    - <builtin>.open
    - typing.cast.read
    - re.compile
    - <builtin>.hasattr
    - email.parser.Parser
    - typing.cast.decode
    - result.strip
    - commit_message.strip
    - dulwich.mbox.mailinfo
    - result.message.endswith
    - <builtin>.isinstance
    - message_lines.append
    - sparser.parsestr
    - patch_lines.append
    - dulwich.patch._munge_subject
    - f.write
    - dulwich.patch.mailinfo
    - body.encode
    - typing.cast
    - <builtin>.str
    - re.sub
    - bparser.parsebytes
    - subject.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 6022
    functionName: dulwich.cli.cmd_bundle.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - refs_to_include.append
    - dulwich.bundle.read_bundle
    - dulwich.bundle.write_bundle
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.readlines
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.pack.PackChunkGenerator.__init__
    - data.find
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.RefRecord.__init__
    - object.as_raw_chunks
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - dulwich.refs.DictRefsContainer.allkeys
    - bundle_prerequisites.append
    - int.from_bytes
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.refs.is_per_worktree_ref
    - shutil.rmtree
    - dulwich.refs.RefsContainer.keys
    - dulwich.repo.Repo.__init__
    - ret._handle_include_directive
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.refs._split_ref_line
    - dulwich.cli.cmd_bundle._unbundle.progress
    - dulwich.repo.BaseRepo.get_shallow
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.reftable._decode_ref_value
    - parser.add_argument
    - directory.replace
    - want_objects.add
    - dulwich.repo.Repo.get_config
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.refs.local_branch_name
    - dulwich.bundle._read_bundle
    - os.makedirs
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - value.decode
    - dulwich.cli.cmd_bundle._list_heads
    - prerequisites.append
    - dulwich.refs.DiskRefsContainer.allkeys
    - dulwich.config.ConfigFile.from_path
    - dulwich.cli.cmd_bundle._verify.verify_bundle
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.config.ConfigFile.__init__
    - dulwich.objectspec.parse_commit_range
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.worktree.WorkTreeContainer.__init__
    - ref_arg.encode
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - base.rstrip
    - <builtin>.map
    - msg.decode
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - key.decode
    - logger.info
    - ref_arg.split
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.iter_unpacked
    - hashlib.sha1
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.reftable.RefBlock.decode
    - typing.cast.id.split
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.repo.BaseRepo.generate_pack_data
    - value.hex
    - <builtin>.type
    - <builtin>.enumerate
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - refs.keys
    - path.decode
    - table_data.sort
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.pack.PackStreamReader._buf_len
    - <builtin>.callable
    - subsection.encode
    - os.path.isfile
    - prereq.decode
    - unpacked.sha
    - dulwich.config._check_variable_name
    - dulwich.bundle.Bundle.store_objects
    - <builtin>.len
    - all_refs.pop
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - _TYPE_MAP.get
    - path.lstrip
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.list
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.pack.pack_object_header
    - <builtin>.open
    - have_objects.add
    - line.lstrip
    - dulwich.cli.cmd_bundle._verify
    - dulwich.refs.RefsContainer.allkeys
    - compressor.flush
    - refname.startswith
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - <builtin>.ord
    - os.path.dirname
    - value.endswith
    - sys.stdin.strip
    - refs.items
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.pack.PackData.from_file
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.pack.pack_header_chunks
    - bundle.references.items
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - ref_arg.startswith
    - dulwich.pack.PackStreamReader.read
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - line.strip
    - <builtin>.next
    - dulwich.cli.cmd_bundle._list_heads.list_heads
    - dulwich.config._parse_section_header_line
    - ref.decode
    - search_paths.append
    - bundle.capabilities.items
    - name.encode
    - section_dict.items
    - block.refs.append
    - dulwich.objectspec.parse_ref
    - dulwich.repo.MemoryRepo.get_named_file
    - os.fdopen
    - dulwich.objectspec.to_bytes
    - struct.unpack_from
    - cs.startswith
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - typing.cast.id.encode
    - sys.stdin.buffer.readline
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - <builtin>.max
    - dulwich.file._GitFile.seek
    - dulwich.pack.PackData.__init__
    - object_store.add_object
    - io.BytesIO
    - <builtin>.set
    - missing_prereqs.append
    - dulwich.bundle.create_bundle_from_repo
    - refname.endswith
    - dulwich.config.ConfigDict.items
    - dulwich.objects.ShaFile.from_raw_chunks
    - result.add
    - dulwich.objects.object_class
    - dulwich.pack.write_pack_data
    - files.append
    - ret.append
    - f.read
    - ret.insert
    - struct.pack
    - dulwich.repo.BaseRepo.get_named_file
    - value_bytes.decode
    - object_store.iter_prefix
    - header.extend
    - <builtin>.isinstance
    - content.endswith
    - ret.read
    - c.isalnum
    - obj.set_raw_chunks
    - dulwich.pack.PackChunkGenerator.sha1digest
    - dulwich.file._GitFile.read
    - line.endswith
    - dulwich.refs.read_packed_refs
    - dulwich.pack.pack_object_chunks
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.refs.check_ref_format
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - first_line.startswith
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - typing.cast.encode
    - sys.stdin.buffer.read
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.hooks.PostCommitShellHook.__init__
    - key.startswith
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.reftable.RefRecord.decode
    - os.path.isdir
    - compressor.compress
    - refs.get
    - sys.stdout.buffer.write
    - sha.decode
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - dulwich.config._parse_string
    - os.open
    - whitespace.append
    - end_part.encode
    - struct.unpack
    - line.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.__init__
    - logger.error
    - line.rstrip
    - hashlib.sha1.digest
    - dulwich.reftable.decode_varint_from_stream
    - ret.extend
    - ret._values.setdefault
    - typing.cast.read
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - typing.cast.id.startswith
    - bytes.fromhex
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.encode
    - <builtin>.hasattr
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.BaseRepo.__init__
    - dulwich.cli.cmd_bundle._unbundle
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - typing.cast.write
    - tempfile.SpooledTemporaryFile.read
    - zlib.compressobj
    - key.encode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.hooks.ShellHook.__init__
    - dulwich.cli.cmd_bundle._create
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 17
    IfCount: 12
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 6047
    functionName: dulwich.cli.cmd_bundle._create
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - refs_to_include.append
    - dulwich.bundle.write_bundle
    - dulwich.reftable.ReftableReader.all_refs
    - io.BytesIO.readlines
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - dulwich.objectspec.parse_commit
    - dulwich.pack.PackChunkGenerator.__init__
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - data.find
    - dulwich.reftable.RefRecord.__init__
    - object.as_raw_chunks
    - io.BytesIO.read
    - dulwich.reftable.ReftableReader._read_blocks
    - int.from_bytes
    - bundle_prerequisites.append
    - dulwich.refs.DictRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer._iter_loose_refs
    - dulwich.refs.is_per_worktree_ref
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.refs.RefsContainer.keys
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.refs._split_ref_line
    - dulwich.repo.BaseRepo.get_shallow
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.reftable._decode_ref_value
    - parser.add_argument
    - directory.replace
    - want_objects.add
    - dulwich.repo.Repo.get_config
    - dulwich.refs.DiskRefsContainer.get_packed_refs
    - dulwich.refs.read_packed_refs_with_peeled
    - dulwich.refs.local_branch_name
    - os.makedirs
    - dulwich.reftable.ReftableReader._process_ref_block
    - <builtin>.range
    - dulwich.reftable.ReftableRefsContainer._get_table_files
    - dulwich.refs.DiskRefsContainer.allkeys
    - prerequisites.append
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.objectspec.parse_commit_range
    - dulwich.reftable.ReftableReader._read_header
    - dulwich.reftable.RefBlock.__init__
    - dulwich.refs.DiskRefsContainer.subkeys
    - dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys
    - dulwich.refs.DiskRefsContainer.refpath
    - dulwich.worktree.WorkTreeContainer.__init__
    - ref_arg.encode
    - dulwich.objects.check_hexsha
    - binascii.crc32
    - base.rstrip
    - <builtin>.map
    - dulwich.reftable.RefBlock._find_ref_data_end
    - dulwich.objects.valid_hexsha
    - ref_arg.split
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.iter_unpacked
    - hashlib.sha1
    - setting.strip
    - dulwich.config._is_line_continuation
    - typing.cast.id.split
    - dulwich.reftable.RefBlock.decode
    - os.path.exists
    - commondir.read
    - dulwich.repo.BaseRepo.generate_pack_data
    - value.startswith
    - value.hex
    - <builtin>.type
    - <builtin>.enumerate
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - refs.keys
    - table_data.sort
    - dulwich.repo.Repo._get_config_condition_matchers
    - <builtin>.callable
    - subsection.encode
    - prereq.decode
    - os.path.isfile
    - unpacked.sha
    - dulwich.config._check_variable_name
    - <builtin>.len
    - all_refs.pop
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - path.lstrip
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - <builtin>.list
    - <builtin>.sum
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.pack.pack_object_header
    - have_objects.add
    - <builtin>.open
    - line.lstrip
    - dulwich.refs.RefsContainer.allkeys
    - compressor.flush
    - refname.startswith
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - sys.stdin.strip
    - refs.items
    - os.walk
    - dulwich.refs.DiskRefsContainer.get_peeled
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.pack.pack_header_chunks
    - bundle.references.items
    - io.BytesIO.tell
    - ref_arg.startswith
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - line.strip
    - <builtin>.next
    - dulwich.config._parse_section_header_line
    - search_paths.append
    - bundle.capabilities.items
    - name.encode
    - section_dict.items
    - block.refs.append
    - dulwich.objectspec.parse_ref
    - dulwich.repo.MemoryRepo.get_named_file
    - os.fdopen
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - table_data.append
    - dulwich.refs.DiskRefsContainer._iter_dir
    - typing.cast.id.encode
    - dulwich.reftable._decode_reftable_suffix_and_type
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - <builtin>.max
    - io.BytesIO
    - <builtin>.set
    - dulwich.bundle.create_bundle_from_repo
    - refname.endswith
    - dulwich.config.ConfigDict.items
    - result.add
    - dulwich.pack.write_pack_data
    - files.append
    - ret.append
    - f.read
    - ret.insert
    - struct.pack
    - dulwich.repo.BaseRepo.get_named_file
    - object_store.iter_prefix
    - header.extend
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.pack.PackChunkGenerator.sha1digest
    - line.endswith
    - dulwich.refs.read_packed_refs
    - dulwich.pack.pack_object_chunks
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.refs.check_ref_format
    - first_line.startswith
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.reftable.ReftableRefsContainer.allkeys
    - dulwich.reftable.ReftableRefsContainer.get_peeled
    - dulwich.hooks.PostCommitShellHook.__init__
    - key.startswith
    - <builtin>.getattr
    - dulwich.reftable.RefRecord.decode
    - os.path.isdir
    - compressor.compress
    - refs.get
    - dulwich.hooks.ShellHook.__init__
    - sys.stdout.buffer.write
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - os.open
    - end_part.encode
    - struct.unpack
    - line.decode
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.__init__
    - logger.error
    - line.rstrip
    - hashlib.sha1.digest
    - dulwich.reftable.decode_varint_from_stream
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.reftable.ReftableRefsContainer._read_all_tables
    - bytes.fromhex
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.encode
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - typing.cast.write
    - zlib.compressobj
    - key.encode
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.reftable.ReftableReader.__init__
    - dulwich.reftable.ReftableRefsContainer._read_table_file
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6139
    functionName: dulwich.cli.cmd_bundle._verify
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - dulwich.bundle.read_bundle
    - io.BytesIO.readlines
    - hashlib.sha1.update
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - io.BytesIO.read
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.bundle._read_bundle
    - os.makedirs
    - <builtin>.range
    - value.decode
    - prerequisites.append
    - dulwich.config.ConfigFile.from_path
    - dulwich.cli.cmd_bundle._verify.verify_bundle
    - dulwich.config.ConfigFile.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - key.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.pack.PackStreamReader._buf_len
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.pack.PackData.from_file
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - dulwich.pack.PackStreamReader.read
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - os.fdopen
    - struct.unpack_from
    - cs.startswith
    - sys.stdin.buffer.readline
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - <builtin>.set
    - missing_prereqs.append
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - value_bytes.decode
    - <builtin>.isinstance
    - content.endswith
    - ret.read
    - c.isalnum
    - dulwich.file._GitFile.read
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - sys.stdin.buffer.read
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - sha.decode
    - dulwich.contrib.swift.SwiftPackReader._read
    - whitespace.append
    - dulwich.pack.read_pack_header
    - dulwich.config._parse_string
    - os.open
    - io.BytesIO.seek
    - dulwich.object_store.DiskObjectStore.from_config
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - typing.cast.read
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - <builtin>.hasattr
    - dulwich.file.GitFile
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6179
    functionName: dulwich.cli.cmd_bundle._list_heads
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - sys.stdin.buffer.read
    - dulwich.bundle.read_bundle
    - dulwich.cli.cmd_bundle._list_heads.list_heads
    - <builtin>.getattr
    - ref.decode
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - parser.parse_args
    - sha.decode
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - os.fdopen
    - dulwich.pack.read_pack_header
    - dulwich.contrib.swift.SwiftPackReader._read
    - os.open
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - sys.stdin.buffer.readline
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - argparse.ArgumentParser
    - line.rstrip
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - <builtin>.open
    - typing.cast.read
    - parser.add_argument
    - <builtin>.hasattr
    - dulwich.bundle._read_bundle
    - dulwich.file.GitFile
    - <builtin>.range
    - prerequisites.append
    - value_bytes.decode
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - key.decode
    - line.startswith
    - <builtin>.bytes
    - dulwich.pack.PackData.from_file
    - <builtin>.bytearray
    - bundle.references.items
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - typing.NewType
    - <builtin>.str
    - line.split
    - dulwich.pack.PackStreamReader.read
    - dulwich.file._GitFile.read
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6201
    functionName: dulwich.cli.cmd_bundle._unbundle
    functionSourceFile: dulwich.cli
    functionUses: 1
    functionsReached:
    - dulwich.bundle.read_bundle
    - io.BytesIO.readlines
    - hashlib.sha1.update
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - io.BytesIO.read
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.cli.cmd_bundle._unbundle.progress
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.bundle._read_bundle
    - os.makedirs
    - <builtin>.range
    - value.decode
    - prerequisites.append
    - dulwich.config.ConfigFile.from_path
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - msg.decode
    - dulwich.objects.valid_hexsha
    - key.decode
    - logger.info
    - dulwich.bundle.create_bundle_from_repo._BundlePackData.iter_unpacked
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.pack.PackStreamReader._buf_len
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - dulwich.bundle.Bundle.store_objects
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - _TYPE_MAP.get
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.pack.PackData.from_file
    - bundle.references.items
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - dulwich.pack.PackStreamReader.read
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.iter
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - dulwich.config._parse_section_header_line
    - ref.decode
    - name.encode
    - section_dict.items
    - os.fdopen
    - struct.unpack_from
    - cs.startswith
    - sys.stdin.buffer.readline
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - object_store.add_object
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - dulwich.objects.ShaFile.from_raw_chunks
    - dulwich.objects.object_class
    - ret.append
    - f.read
    - value_bytes.decode
    - <builtin>.isinstance
    - content.endswith
    - ret.read
    - c.isalnum
    - obj.set_raw_chunks
    - dulwich.file._GitFile.read
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - sys.stdin.buffer.read
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - dulwich.contrib.swift.SwiftPackReader._read
    - whitespace.append
    - dulwich.pack.read_pack_header
    - dulwich.config._parse_string
    - os.open
    - io.BytesIO.seek
    - dulwich.object_store.DiskObjectStore.from_config
    - logger.error
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - typing.cast.read
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - <builtin>.hasattr
    - value.lower
    - dulwich.file.GitFile
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6068
    functionName: dulwich.cli.cmd_bundle._create.progress
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - logger.error
    - <builtin>.str
    - <builtin>.isinstance
    - msg.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: msg.decode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdin.strip
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refs_to_include.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_arg.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: end_part.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_arg.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref_arg.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - bundle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6150
    functionName: dulwich.cli.cmd_bundle._verify.verify_bundle
    functionSourceFile: dulwich.cli
    functionUses: 2
    functionsReached:
    - missing_prereqs.append
    - sha.decode
    - 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: missing_prereqs.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - bundle
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6186
    functionName: dulwich.cli.cmd_bundle._list_heads.list_heads
    functionSourceFile: dulwich.cli
    functionUses: 2
    functionsReached:
    - bundle.references.items
    - ref.decode
    - logger.info
    - sha.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6252
    functionName: dulwich.cli.cmd_worktree_add.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.worktree_add
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - branch.encode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - os.path.normpath
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - parsed_args.committish.encode
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - r.get_worktree
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - <builtin>.bool
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.set
    - wt_repo.get_worktree
    - dulwich.config.ConfigDict.items
    - wt_repo.refs.set_symbolic_ref
    - ret.append
    - f.read
    - worktrees.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.worktree.add_worktree
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - commit.encode
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - os.path.basename
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.Repo._init_new_working_directory
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.repo.Repo._get_shared_repository_permissions
    - os.chmod
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - wt_repo.controldir
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febad9f1d00>
    - <ast.Constant object at 0x7febad9f1d30>
    - <ast.Constant object at 0x7febad9f1d60>
    - <ast.Constant object at 0x7febad9f1d90>
    - <ast.Constant object at 0x7febad9f1dc0>
    - <ast.Constant object at 0x7febad9f1df0>
    argNames:
    - repo
    - path
    - branch
    - commit
    - detach
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8882
    functionName: dulwich.porcelain.worktree_add
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - branch.encode
    - dulwich.config.Config.get_boolean
    - os.path.normpath
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.mkdir
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - r.get_worktree
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.set
    - wt_repo.get_worktree
    - dulwich.config.ConfigDict.items
    - wt_repo.refs.set_symbolic_ref
    - ret.append
    - f.read
    - worktrees.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.worktree.add_worktree
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - commit.encode
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - os.path.basename
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.Repo._init_new_working_directory
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.repo.Repo._get_shared_repository_permissions
    - os.chmod
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - wt_repo.controldir
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6307
    functionName: dulwich.cli.cmd_worktree_list.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain.worktree_list
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - wt.branch.decode
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - wt.head.decode
    - name.encode
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - worktrees.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febad9f1310>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8867
    functionName: dulwich.porcelain.worktree_list
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.worktree.read_worktree_lock_reason
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.worktree.list_worktrees
    - head_contents.startswith
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - dulwich.worktree.WorkTreeInfo.__init__
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - worktrees.append
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wt.branch.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: wt.head.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6369
    functionName: dulwich.cli.cmd_worktree_remove.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.remove_worktree
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.porcelain.worktree_remove
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad9edca0>
    - <ast.Constant object at 0x7febad9edcd0>
    - <ast.Constant object at 0x7febad9edd00>
    argNames:
    - repo
    - path
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8917
    functionName: dulwich.porcelain.worktree_remove
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.remove_worktree
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6397
    functionName: dulwich.cli.cmd_worktree_prune.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.worktree_prune
    - io.BytesIO.readlines
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - pruned.append
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - os.stat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.worktree.prune_worktrees
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febada1d4f0>
    - <ast.Constant object at 0x7febada1d520>
    - <ast.Constant object at 0x7febada1d550>
    argNames:
    - repo
    - dry_run
    - expire
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8938
    functionName: dulwich.porcelain.worktree_prune
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - time.time
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - pruned.append
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - os.stat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - dulwich.worktree.prune_worktrees
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6442
    functionName: dulwich.cli.cmd_worktree_lock.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree._find_worktree_id
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - dulwich.porcelain.worktree_lock
    - os.listdir
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.worktree.lock_worktree
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febada1dd60>
    - <ast.Constant object at 0x7febada1dd90>
    - <ast.Constant object at 0x7febada1ddc0>
    argNames:
    - repo
    - path
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8957
    functionName: dulwich.porcelain.worktree_lock
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree._find_worktree_id
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.worktree.lock_worktree
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6470
    functionName: dulwich.cli.cmd_worktree_unlock.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.worktree_unlock
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree._find_worktree_id
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.worktree.unlock_worktree
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febada10640>
    - <ast.Constant object at 0x7febada10670>
    argNames:
    - repo
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8978
    functionName: dulwich.porcelain.worktree_unlock
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree._find_worktree_id
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.worktree.unlock_worktree
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6495
    functionName: dulwich.cli.cmd_worktree_move.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree._find_worktree_id
    - contextlib.closing
    - shutil.move
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - dulwich.porcelain.worktree_move
    - section_dict.items
    - dulwich.worktree.move_worktree
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febada06040>
    - <ast.Constant object at 0x7febada06070>
    - <ast.Constant object at 0x7febada060a0>
    argNames:
    - repo
    - old_path
    - new_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 8996
    functionName: dulwich.porcelain.worktree_move
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree._find_worktree_id
    - contextlib.closing
    - shutil.move
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.worktree.move_worktree
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6525
    functionName: dulwich.cli.cmd_worktree_repair.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - repaired.append
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - gitdir_content.startswith
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - logger.info
    - dulwich.porcelain.worktree_repair
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.worktree.repair_worktree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - wf.write
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.startswith
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febada069d0>
    - <ast.Constant object at 0x7febada06a00>
    argNames:
    - repo
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9017
    functionName: dulwich.porcelain.worktree_repair
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - repaired.append
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - gitdir_content.startswith
    - os.path.isabs
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - os.listdir
    - dulwich.worktree.repair_worktree
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - wf.write
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.startswith
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 25
    IfCount: 12
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6578
    functionName: dulwich.cli.cmd_rerere.run
    functionSourceFile: dulwich.cli
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain.rerere
    - dulwich.rerere._has_conflict_markers
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - argparse.ArgumentParser
    - cache.clear
    - index.items
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - parser.add_argument
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.rerere.RerereCache.from_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.porcelain.rerere_status
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - cache.record_conflict
    - dulwich.porcelain.rerere_forget
    - commondir.read
    - value.startswith
    - os.path.exists
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.rerere.rerere_auto
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - recorded.append
    - value.endswith
    - <builtin>.ord
    - cache.get_resolution
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.bool
    - config.get
    - cache.has_resolution
    - dulwich.rerere.is_rerere_autoupdate
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.porcelain.rerere_diff
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.rerere.is_rerere_enabled
    - cs.startswith
    - <builtin>.super
    - sys.stdout.write
    - <builtin>.set
    - cache.diff
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - enabled.lower
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.porcelain.rerere_clear
    - dulwich.porcelain.rerere_gc
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - os.path.isdir
    - sys.stdout.buffer.write
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - autoupdate.lower
    - cache.status
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - cache.gc
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - resolved.append
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febab45c670>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9304
    functionName: dulwich.porcelain.rerere
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.rerere._has_conflict_markers
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - index.items
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.rerere.RerereCache.from_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - cache.record_conflict
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - dulwich.rerere.rerere_auto
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - recorded.append
    - value.endswith
    - <builtin>.ord
    - cache.get_resolution
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.bool
    - config.get
    - dulwich.rerere.is_rerere_autoupdate
    - cache.has_resolution
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.rerere.is_rerere_enabled
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - enabled.lower
    - f.write
    - typing.NewType
    - line.split
    - dulwich.config._strip_comments
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - autoupdate.lower
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - conflicts.append
    - <builtin>.bytearray
    - resolved.append
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febab457dc0>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9349
    functionName: dulwich.porcelain.rerere_status
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.rerere.RerereCache.from_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - cache.status
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febab43e580>
    - <ast.Constant object at 0x7febab43e5b0>
    argNames:
    - repo
    - conflict_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9365
    functionName: dulwich.porcelain.rerere_diff
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.rerere.RerereCache.from_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - cache.diff
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - cache.status
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febab446880>
    - <ast.Constant object at 0x7febab4468b0>
    argNames:
    - repo
    - pathspec
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9397
    functionName: dulwich.porcelain.rerere_forget
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - cache.clear
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.rerere.RerereCache.from_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febab446f70>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9418
    functionName: dulwich.porcelain.rerere_clear
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - cache.clear
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.rerere.RerereCache.from_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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 0x7febab45f5b0>
    - <ast.Constant object at 0x7febab45f5e0>
    argNames:
    - repo
    - max_age_days
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 9431
    functionName: dulwich.porcelain.rerere_gc
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - dulwich.rerere.RerereCache.from_repo
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - repo.controldir
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - cache.gc
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.rerere.RerereCache.__init__
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 12
    IfCount: 5
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7feba9757a30>
    argNames:
    - argv
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 6750
    functionName: dulwich.cli.main
    functionSourceFile: dulwich.cli
    functionUses: 3
    functionsReached:
    - parser.print_help
    - os.environ.get
    - os.path.isdir
    - os.getpid
    - sys.stdout.isatty
    - os.fdopen
    - os.path.isabs
    - dulwich.cli._should_auto_flush
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - parser.parse_known_args
    - argparse.ArgumentParser
    - sys.stderr.write
    - dulwich.cli.AutoFlushTextIOWrapper.__init__
    - dulwich.cli.enable_pager
    - parser.add_argument
    - logging.basicConfig
    - <builtin>.hasattr
    - logging.fatal
    - <builtin>.sorted
    - <builtin>.isinstance
    - dulwich.cli.AutoFlushTextIOWrapper.env
    - <builtin>.int
    - dulwich.cli.disable_pager
    - dulwich.log_utils._configure_logging_from_trace
    - commands.keys
    - trace_value.lower
    - sys.stderr.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.parse_known_args
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commands.keys
    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: logging.fatal
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 6820
    functionName: dulwich.cli._main
    functionSourceFile: dulwich.cli
    functionUses: 2
    functionsReached:
    - parser.print_help
    - <builtin>.getattr
    - os.environ.get
    - os.path.isdir
    - os.getpid
    - sys.stdout.isatty
    - os.fdopen
    - os.path.isabs
    - dulwich.cli._should_auto_flush
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - parser.parse_known_args
    - argparse.ArgumentParser
    - sys.stderr.write
    - sys.exit
    - signal.signal
    - dulwich.cli.AutoFlushTextIOWrapper.__init__
    - dulwich.cli.enable_pager
    - parser.add_argument
    - logging.basicConfig
    - dulwich.cli.main
    - <builtin>.hasattr
    - logging.fatal
    - <builtin>.sorted
    - <builtin>.isinstance
    - dulwich.cli.AutoFlushTextIOWrapper.env
    - <builtin>.int
    - dulwich.cli.disable_pager
    - dulwich.log_utils._configure_logging_from_trace
    - commands.keys
    - trace_value.lower
    - sys.stderr.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signal.signal
    functionSourceFile: signal
    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: 1
    functionLinenumber: -1
    functionName: dulwich.porcelain
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - typing.TypeVar
    - <builtin>.getattr
    - io.RawIOBase.__init__
    - typing.cast
    - typing.overload
    - replace_me
    - contextlib.contextmanager
    - collections.namedtuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaff9f310>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 456
    functionName: dulwich.porcelain.NoneStream.read
    functionSourceFile: dulwich.porcelain
    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: 460
    functionName: dulwich.porcelain.NoneStream.readall
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.porcelain.NoneStream
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - typing.override
    - typing_extensions.override
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.override
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing_extensions.override
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 481
    functionName: dulwich.porcelain.NoneStream.readinto
    functionSourceFile: dulwich.porcelain
    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
    - b
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 485
    functionName: dulwich.porcelain.NoneStream.write
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - typing.cast
    - <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: io.RawIOBase.__init__
    functionSourceFile: ''
    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
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 503
    functionName: dulwich.porcelain.Error.__init__
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - tz_str
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 520
    functionName: dulwich.porcelain.parse_timezone_format
    functionSourceFile: dulwich.porcelain
    functionUses: 7
    functionsReached:
    - email.utils.parsedate_tz
    - <builtin>.int
    - re.match
    - re.compile
    - tz_str.split
    - re.search
    - <builtin>.abs
    - dulwich.objects.parse_timezone
    - match.groups
    linkageType: pythonLinkage
    raised:
    - TimezoneFormatError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tz_str.split
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.utils.parsedate_tz
    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: re.search
    functionSourceFile: re
    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: match.groups
    functionSourceFile: <builtin>
    functionUses: 8
    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: 575
    functionName: dulwich.porcelain.get_user_timezones
    functionSourceFile: dulwich.porcelain
    functionUses: 6
    functionsReached:
    - email.utils.parsedate_tz
    - <builtin>.int
    - re.match
    - re.compile
    - dulwich.porcelain.parse_timezone_format
    - tz_str.split
    - os.environ.get
    - re.search
    - time.localtime
    - <builtin>.abs
    - dulwich.objects.parse_timezone
    - match.groups
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.localtime
    functionSourceFile: time
    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:
    - path_or_repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 605
    functionName: dulwich.porcelain.open_repo
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 615
    functionName: dulwich.porcelain._noop_context_manager
    functionSourceFile: ''
    functionUses: 234
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae0013a0>
    argNames:
    - default_message
    - explicit_message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 620
    functionName: dulwich.porcelain._get_reflog_message
    functionSourceFile: dulwich.porcelain
    functionUses: 18
    functionsReached:
    - env_action.encode
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: env_action.encode
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febade97c70>
    argNames:
    - repopath
    - path
    - tree_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 668
    functionName: dulwich.porcelain.path_to_tree_path
    functionSourceFile: dulwich.porcelain
    functionUses: 25
    functionsReached:
    - pathlib.Path
    - <builtin>.bytes
    - resolved_path.relative_to
    - pathlib.Path.resolve
    - pathlib.Path.parent.resolve
    - <builtin>.str
    - os.fsdecode
    - os.path.abspath
    - <builtin>.isinstance
    - pathlib.Path.is_symlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resolved_path.relative_to
    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: pathlib.Path.is_symlink
    functionSourceFile: pathlib
    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: pathlib.Path.parent.resolve
    functionSourceFile: pathlib
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - current_sha
    - new_sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 722
    functionName: dulwich.porcelain.DivergedBranches.__init__
    functionSourceFile: dulwich.porcelain
    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:
    - repo
    - current_sha
    - new_sha
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 728
    functionName: dulwich.porcelain.check_diverged
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - dulwich.graph._find_lcas
    - cstates.get
    - cands.append
    - dulwich.graph._find_lcas._has_candidates
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.graph.WorkList.__init__
    - wlst.iter
    - wlst.add
    - <builtin>.len
    - results.sort
    - repo.parents_provider
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - wlst.get
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.graph.find_octopus_base.lookup_parents
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph.can_fast_forward
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    linkageType: pythonLinkage
    raised:
    - DivergedBranches
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6be0>
    - <ast.Constant object at 0x7febaf2a6190>
    argNames:
    - repo
    - reachable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 778
    functionName: dulwich.porcelain.write_commit_graph
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - r.object_store.write_commit_graph
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.refs.as_dict
    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: r.object_store.write_commit_graph
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5a5c70>
    argNames:
    - repo
    - ref_name
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 793
    functionName: dulwich.porcelain.symbolic_ref
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - repo_obj.refs.keys
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - ref_name.decode
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - repo_obj.refs.set_symbolic_ref
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3988
    functionName: dulwich.porcelain._make_branch_ref
    functionSourceFile: dulwich.porcelain
    functionUses: 10
    functionsReached:
    - typing.cast.id.startswith
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.NewType
    - name.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo_obj.refs.keys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo_obj.refs.set_symbolic_ref
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo_obj.refs.pack_refs
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febadba4d00>
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 819
    functionName: dulwich.porcelain._get_variables
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - repo_obj.get_config_stack
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - variable_callbacks.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo_obj.get_config_stack
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 832
    functionName: dulwich.porcelain._get_variables.get_author_ident
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - email.utils.parsedate_tz
    - <builtin>.getattr
    - os.environ.get
    - time.time
    - author_identity.decode
    - dulwich.objects.parse_timezone
    - dulwich.repo._get_default_identity
    - re.match
    - dulwich.porcelain.parse_timezone_format
    - socket.gethostname
    - entry.pw_gecos.split
    - re.search
    - <builtin>.abs
    - default_email.encode
    - user_uc.encode
    - pwd.getpwuid
    - os.getuid
    - dulwich.config.StackedConfig.get
    - email.endswith
    - re.compile
    - default_user.encode
    - tz_str.split
    - <builtin>.isinstance
    - email_uc.encode
    - email.startswith
    - backend.get
    - <builtin>.int
    - dulwich.porcelain.get_user_timezones
    - time.localtime
    - dulwich.repo.get_user_identity
    - match.groups
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: author_identity.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 842
    functionName: dulwich.porcelain._get_variables.get_committer_ident
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - email.utils.parsedate_tz
    - <builtin>.getattr
    - os.environ.get
    - time.time
    - dulwich.objects.parse_timezone
    - dulwich.repo._get_default_identity
    - re.match
    - dulwich.porcelain.parse_timezone_format
    - socket.gethostname
    - entry.pw_gecos.split
    - re.search
    - <builtin>.abs
    - default_email.encode
    - user_uc.encode
    - pwd.getpwuid
    - os.getuid
    - dulwich.config.StackedConfig.get
    - email.endswith
    - re.compile
    - default_user.encode
    - tz_str.split
    - <builtin>.isinstance
    - email_uc.encode
    - email.startswith
    - backend.get
    - <builtin>.int
    - dulwich.porcelain.get_user_timezones
    - committer_identity.decode
    - time.localtime
    - dulwich.repo.get_user_identity
    - match.groups
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: committer_identity.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 852
    functionName: dulwich.porcelain._get_variables.get_editor
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - config.get
    - os.environ.get
    - editor_bytes.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: editor_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 863
    functionName: dulwich.porcelain._get_variables.get_sequence_editor
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - os.environ.get
    - config.get
    - seq_editor_bytes.decode
    - editor_bytes.decode
    - dulwich.porcelain._get_variables.get_editor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: seq_editor_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 875
    functionName: dulwich.porcelain._get_variables.get_pager
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - config.get
    - os.environ.get
    - pager_bytes.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: pager_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 886
    functionName: dulwich.porcelain._get_variables.get_default_branch
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - config.get
    - default_branch_bytes.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: default_branch_bytes.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: variable_callbacks.items
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoding.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: author.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: committer.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.head
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.open_index
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.get_blob_normalizer
    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: modified_files.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.refs.set_if_equals
    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: trailer.value.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: t.value.strip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: comment_char.encode
    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:
    - kwargs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1298
    functionName: dulwich.porcelain._filter_transport_kwargs
    functionSourceFile: dulwich.porcelain
    functionUses: 8
    functionsReached:
    - typing.cast
    - kwargs.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.items
    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: source.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: source.decode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filter_spec.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.porcelain.clone.<lambda1>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - errstream.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: errstream.write
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.clone
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.debug
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.get_config_stack
    functionSourceFile: <builtin>
    functionUses: 44
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.decode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path.is_absolute
    functionSourceFile: pathlib
    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: resolved_path.is_dir
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ignore_manager.is_ignored
    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: ignored.add
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 6
    IfCount: 11
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadb1a580>
    - <ast.Constant object at 0x7febadb1a7f0>
    argNames:
    - frompath
    - basepath
    - index
    - exclude_ignored
    - untracked_files
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3555
    functionName: dulwich.porcelain.get_untracked_paths
    functionSourceFile: dulwich.porcelain
    functionUses: 16
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - stuff.startswith
    - <builtin>.any
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.ignore.IgnoreFilter.__init__
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.ignore.IgnoreFilter.from_path
    - os.path.dirname
    - dirnames.remove
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dulwich.ignore.IgnoreFilter.append_pattern
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.all
    - <builtin>.iter
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - section_dict.items
    - ignore_manager.is_ignored
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - os.path.relpath
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - pat.endswith
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - re.compile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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: relpaths.append
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unstaged_path.decode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unstaged_full_path.relative_to
    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:
    - subdir
    - parentdir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1578
    functionName: dulwich.porcelain._is_subdir
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - subdir_abs.startswith
    - os.path.realpath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.realpath
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subdir_abs.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae4348e0>
    - <ast.Constant object at 0x7febae4340d0>
    argNames:
    - repo
    - target_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1592
    functionName: dulwich.porcelain.clean
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - io.BytesIO.readlines
    - subdir_abs.startswith
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - os.path.realpath
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - pathlib.Path.is_symlink
    - config.get_boolean
    - dulwich.porcelain._is_subdir
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - os.getcwd
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.ignore.IgnoreFilter.__init__
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - os.rmdir
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.ignore.IgnoreFilter.from_path
    - os.path.dirname
    - dirnames.remove
    - value.endswith
    - <builtin>.ord
    - pathlib.Path.resolve
    - dulwich.ignore.IgnoreFilter.append_pattern
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - os.listdir
    - <builtin>.int
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - <builtin>.reversed
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - name.encode
    - section_dict.items
    - ignore_manager.is_ignored
    - pattern.endswith
    - dulwich.ignore._translate_segment
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - content.endswith
    - os.path.relpath
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - pat.endswith
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - dulwich.porcelain._walk_working_dir_paths
    - os.path.isdir
    - dulwich.ignore.translate
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf80b9d0>
    argNames:
    - frompath
    - basepath
    - prune_dirnames
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3517
    functionName: dulwich.porcelain._walk_working_dir_paths
    functionSourceFile: dulwich.porcelain
    functionUses: 18
    functionsReached:
    - os.walk
    - os.path.join
    - dirnames.remove
    - filenames.remove
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: blob_normalizer.checkin_normalize
    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: destination.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febaed618b0>
    argNames:
    - commit
    - contents
    - default_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1819
    functionName: dulwich.porcelain.commit_decode
    functionSourceFile: dulwich.porcelain
    functionUses: 6
    functionsReached:
    - commit.encoding.decode
    - contents.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: commit.encoding.decode
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febadfcd4f0>
    argNames:
    - commit
    - contents
    - default_encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1830
    functionName: dulwich.porcelain.commit_encode
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - typing.cast.id.encoding.decode
    - contents.encode
    - typing.cast.encoding.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: typing.cast.id.encoding.decode
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.encoding.decode
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 10
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7febadfcdac0>
    argNames:
    - commit
    - decode
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1841
    functionName: dulwich.porcelain.print_commit
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - time.strftime
    - commit.encoding.decode
    - dulwich.porcelain.log.decode_wrapper
    - <builtin>.len
    - dulwich.objects.format_timezone
    - contents.decode
    - dulwich.porcelain.commit_decode
    - c.decode
    - dulwich.porcelain.show_commit._StreamWrapper.write
    - <builtin>.isinstance
    - data.encode
    - time.gmtime
    - commit.id.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1933
    functionName: dulwich.porcelain.show_commit._StreamWrapper.write
    functionSourceFile: dulwich.porcelain
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit.id.decode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.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: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2107
    functionName: dulwich.porcelain.log.decode_wrapper
    functionSourceFile: dulwich.porcelain
    functionUses: 4
    functionsReached:
    - commit.encoding.decode
    - contents.decode
    - dulwich.porcelain.commit_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: time.gmtime
    functionSourceFile: time
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7febadac1310>
    argNames:
    - tag
    - decode
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1875
    functionName: dulwich.porcelain.print_tag
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - outstream.write
    - dulwich.objects.format_timezone
    - time.strftime
    - time.gmtime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7febaf896ee0>
    argNames:
    - repo
    - blob
    - decode
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1895
    functionName: dulwich.porcelain.show_blob
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - outstream.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7febaf8963a0>
    argNames:
    - repo
    - commit
    - decode
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1912
    functionName: dulwich.porcelain.show_commit
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - dulwich.porcelain.log.decode_wrapper
    - io.BytesIO.readlines
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - difflib.SequenceMatcher
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.patch.shortid
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - dulwich.patch.write_tree_diff
    - dulwich.config.Config.get_boolean
    - dulwich.patch._get_sequence_matcher
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - store.tree_changes
    - dulwich.repo.Repo.get_config
    - io.BytesIO.writelines
    - os.makedirs
    - <builtin>.range
    - dulwich.patch.gen_diff_header
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - commit.id.decode
    - time.gmtime
    - io.BytesIO.write
    - contextlib.closing
    - dulwich.patch._format_range_unified
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.valid_hexsha
    - fromfile.decode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - <builtin>.enumerate
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - time.strftime
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - c.decode
    - patiencediff.PatienceSequenceMatcher
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.diff.ColorizedDiffStream.write
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - data.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - obj.as_raw_string
    - outstream.write
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.diff.ColorizedDiffStream.writelines
    - commit.encoding.decode
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - dulwich.porcelain.commit_decode
    - name.encode
    - section_dict.items
    - cs.startswith
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.super
    - io.BytesIO
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - contents.decode
    - ret.append
    - f.read
    - tofile.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - io.BytesIO.getvalue
    - f.write
    - dulwich.porcelain.show_commit._StreamWrapper.__init__
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.patch.is_binary
    - dulwich.hooks.PostCommitShellHook.__init__
    - line_bytes.decode
    - dulwich.patch.write_object_diff.lines
    - os.path.isdir
    - dulwich.patch.unified_diff_with_algorithm
    - io.BytesIO.seek
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - content.splitlines
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.write_object_diff
    - dulwich.repo.BaseRepo.__init__
    - dulwich.porcelain.print_commit
    - dulwich.patch.patch_filename
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - rich.console.Console.print
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.porcelain.show_commit._StreamWrapper.write
    - dulwich.objects.S_ISGITLINK
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1930
    functionName: dulwich.porcelain.show_commit._StreamWrapper.__init__
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7febaf20a9d0>
    argNames:
    - repo
    - tree
    - decode
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1967
    functionName: dulwich.porcelain.show_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - outstream.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Attribute object at 0x7febaef5e3a0>
    argNames:
    - repo
    - tag
    - decode
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1985
    functionName: dulwich.porcelain.show_tag
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.porcelain.show_object
    - handlers.get
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - time.gmtime
    - contextlib.closing
    - dulwich.porcelain.print_tag
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - time.strftime
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - outstream.write
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.format_timezone
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - repo
    - obj
    - decode
    - outstream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2006
    functionName: dulwich.porcelain.show_object
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - handlers.get
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handlers.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - changes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2025
    functionName: dulwich.porcelain.print_name_status
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - path1.decode
    - path2.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: path1.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path2.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.get_walker
    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: outstream.writelines
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - x
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 2152
    functionName: dulwich.porcelain.show.decode
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - commit.encoding.decode
    - x.decode
    - dulwich.porcelain.commit_decode
    - contents.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: x.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: old_tree.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_tree.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: byte_paths.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: r.object_store.tree_changes
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_to_check.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaebf8820>
    - <ast.Constant object at 0x7febaebf8a00>
    - <ast.Constant object at 0x7febaebf8640>
    argNames:
    - repo
    - outstream
    - commit_sha
    - paths
    - diff_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 87
    functionName: dulwich.diff.diff_index_to_tree
    functionSourceFile: dulwich.diff
    functionUses: 2
    functionsReached:
    - dulwich.patch.is_binary
    - line_bytes.decode
    - dulwich.index.commit_tree.add_tree
    - dulwich.patch.write_object_diff.lines
    - difflib.SequenceMatcher
    - obj.set_raw_string
    - dulwich.patch.unified_diff_with_algorithm
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - dulwich.objects.Tree.__init__
    - path.rsplit
    - difflib.SequenceMatcher.get_grouped_opcodes
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.objects.ShaFile.from_string
    - content.splitlines
    - patiencediff.PatienceSequenceMatcher
    - dulwich.objects.Tree.add
    - <builtin>.super
    - dulwich.patch.shortid
    - dulwich.objects.ShaFile.__init__
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - object_store.add_object
    - dulwich.patch._get_sequence_matcher
    - dulwich.index.commit_tree.build_tree
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - dulwich.diff.ColorizedDiffStream.write
    - io.BytesIO.writelines
    - dulwich.patch.write_object_diff.content
    - dulwich.patch.gen_diff_header
    - dulwich.patch.write_object_diff
    - tofile.decode
    - index.iterobjects
    - <builtin>.isinstance
    - dulwich.patch.patch_filename
    - line.startswith
    - repo.object_store.tree_changes
    - <builtin>.bytes
    - dulwich.index.commit_index
    - io.BytesIO.write
    - dulwich.patch._format_range_unified
    - rich.console.Console.print
    - repo.open_index
    - obj.as_raw_string
    - dulwich.objects.S_ISGITLINK
    - dulwich.index.pathjoin
    - fromfile.decode
    - dulwich.diff.ColorizedDiffStream.writelines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 31
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 44
    ICount: 30
    IfCount: 31
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf33caf0>
    - <ast.Constant object at 0x7febaf33c0d0>
    argNames:
    - repo
    - outstream
    - commit_sha
    - paths
    - diff_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 134
    functionName: dulwich.diff.diff_working_tree_to_tree
    functionSourceFile: dulwich.diff
    functionUses: 2
    functionsReached:
    - blob.splitlines
    - todo.pop
    - dulwich.object_store.iter_tree_contents
    - <builtin>.getattr
    - line_bytes.decode
    - todo.extend
    - path.startswith
    - difflib.SequenceMatcher
    - dulwich.patch.write_blob_diff
    - stat.S_ISDIR
    - path.decode
    - dulwich.patch.unified_diff_with_algorithm
    - tree.iteritems
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - os.readlink
    - difflib.SequenceMatcher.get_grouped_opcodes
    - stat.S_IFMT
    - <builtin>.len
    - patiencediff.PatienceSequenceMatcher
    - os.path.join
    - <builtin>.super
    - dulwich.patch.shortid
    - stat.S_ISSOCK
    - dulwich.diff.ColorizedDiffStream.writelines
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - extra.append
    - os.lstat
    - <builtin>.set
    - dulwich.patch._get_sequence_matcher
    - <builtin>.open
    - subentry.in_path
    - repo.get_blob_normalizer
    - dulwich.diff.ColorizedDiffStream.write
    - logger.warning
    - dulwich.objects.Blob.__init__
    - f.read
    - dulwich.patch.gen_diff_header
    - tofile.decode
    - <builtin>.sorted
    - <builtin>.isinstance
    - <builtin>.any
    - index.paths
    - dulwich.patch.patch_filename
    - stat.S_ISLNK
    - stat.S_ISFIFO
    - line.startswith
    - <builtin>.bytes
    - dulwich.patch._format_range_unified
    - rich.console.Console.print
    - repo.open_index
    - processed_paths.add
    - dulwich.diff.should_include_path
    - dulwich.patch.write_blob_diff.lines
    - stat.S_ISREG
    - dulwich.objects.S_ISGITLINK
    - fromfile.decode
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 20
    IfCount: 17
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadeb8280>
    - <ast.Constant object at 0x7febadeb8190>
    argNames:
    - repo
    - outstream
    - paths
    - diff_algorithm
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 380
    functionName: dulwich.diff.diff_working_tree_to_index
    functionSourceFile: dulwich.diff
    functionUses: 2
    functionsReached:
    - blob.splitlines
    - <builtin>.getattr
    - line_bytes.decode
    - path.startswith
    - difflib.SequenceMatcher
    - stat.S_ISDIR
    - dulwich.patch.write_blob_diff
    - dulwich.patch.unified_diff_with_algorithm
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    - tree_path.decode
    - difflib.SequenceMatcher.get_grouped_opcodes
    - index.iteritems
    - stat.S_IFMT
    - <builtin>.len
    - os.path.join
    - patiencediff.PatienceSequenceMatcher
    - <builtin>.super
    - dulwich.patch.shortid
    - stat.S_ISSOCK
    - patiencediff.PatienceSequenceMatcher.get_grouped_opcodes
    - os.lstat
    - dulwich.patch._get_sequence_matcher
    - <builtin>.open
    - repo.get_blob_normalizer
    - dulwich.objects.S_ISGITLINK
    - dulwich.diff.ColorizedDiffStream.write
    - logger.warning
    - dulwich.objects.Blob.__init__
    - f.read
    - dulwich.patch.gen_diff_header
    - tofile.decode
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.patch.patch_filename
    - stat.S_ISLNK
    - stat.S_ISFIFO
    - line.startswith
    - <builtin>.bytes
    - dulwich.patch._format_range_unified
    - rich.console.Console.print
    - repo.open_index
    - dulwich.diff.should_include_path
    - dulwich.patch.write_blob_diff.lines
    - stat.S_ISREG
    - os.readlink
    - fromfile.decode
    - dulwich.diff.ColorizedDiffStream.writelines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2319
    functionName: dulwich.porcelain._canonical_part
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - url.rsplit
    - name.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url.rsplit
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.get_config
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.set
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.write_to_path
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: submodules_to_update.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: submodule_name.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url_value.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sub_repo.close
    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: sub_repo.get_config
    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: sub_config.set
    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: sub_config.write_to_path
    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: sub_repo.index_path
    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: path_segments.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tag.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tag_timezone.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3994
    functionName: dulwich.porcelain._make_tag_ref
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - typing.cast.id.startswith
    - typing.cast.startswith
    - dulwich.refs.local_tag_name
    - typing.NewType
    - name.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.verify
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.verify
    functionSourceFile: typing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tagname.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tag_obj.verify
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Attribute object at 0x7febaff845e0>
    argNames:
    - repo
    - outstream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2686
    functionName: dulwich.porcelain.tag_list
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 2698
    functionName: dulwich.porcelain.tag_delete
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - dulwich.porcelain._make_tag_ref
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2716
    functionName: dulwich.porcelain._make_notes_ref
    functionSourceFile: dulwich.porcelain
    functionUses: 8
    functionsReached:
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: note.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.notes.set_note
    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: r.notes.remove_note
    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: r.notes.get_note
    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: r.notes.list_notes
    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: r.refs.keys
    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: replacements.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_sha.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4000
    functionName: dulwich.porcelain._make_replace_ref
    functionSourceFile: dulwich.porcelain
    functionUses: 4
    functionsReached:
    - typing.NewType
    - name.encode
    - dulwich.refs.local_replace_name
    - <builtin>.isinstance
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: replacement_sha.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: treeish.decode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.hex
    functionSourceFile: typing
    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: index.clear
    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: index.commit
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5301
    functionName: dulwich.porcelain._get_worktree_update_config
    functionSourceFile: dulwich.porcelain
    functionUses: 12
    functionsReached:
    - repo.get_config
    - config.get_boolean
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaec83b80>
    argNames:
    - repo
    - remote_location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 3051
    functionName: dulwich.porcelain.get_remote_repo
    functionSourceFile: dulwich.porcelain
    functionUses: 7
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - encoded_location.decode
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - active_ref.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - remote_location.encode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - config.has_section
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.get_branch_remote
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4346
    functionName: dulwich.porcelain.get_branch_remote
    functionSourceFile: dulwich.porcelain
    functionUses: 8
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - active_ref.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote_location.encode
    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: config.has_section
    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: encoded_location.decode
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refspecs.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4328
    functionName: dulwich.porcelain.active_branch
    functionSourceFile: dulwich.porcelain
    functionUses: 10
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - active_ref.startswith
    - os.fspath
    - path.decode
    - dulwich.config._check_section_name
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    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: refspecs.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: spec.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: refspecs_bytes.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - refs
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3153
    functionName: dulwich.porcelain.push.update_refs
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - dulwich.graph._find_lcas
    - cstates.get
    - cands.append
    - dulwich.graph._find_lcas._has_candidates
    - typing.cast.id.split
    - <builtin>.min
    - dulwich.graph.can_fast_forward.lookup_stamp
    - dulwich.objectspec.parse_reftuples
    - dulwich.graph.WorkList.__init__
    - refs.keys
    - dulwich.objectspec.parse_ref
    - r.refs.keys
    - wlst.iter
    - dulwich.objectspec.to_bytes
    - wlst.add
    - <builtin>.len
    - results.sort
    - typing.cast.id.encode
    - dulwich.refs.DictRefsContainer.__init__
    - dulwich.refs.local_tag_name
    - <builtin>.super
    - repo.parents_provider
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - wlst.get
    - typing.cast.id.startswith
    - dulwich.objectspec.parse_reftuple
    - typing.cast.startswith
    - dulwich.lru_cache._LRUNode.run_cleanup
    - dulwich.refs.local_branch_name
    - ret.append
    - dulwich.graph.find_octopus_base.lookup_parents
    - selected_refs.extend
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.lru_cache.LRUCache.__init__
    - dulwich.graph.find_merge_base.lookup_stamp
    - typing.cast
    - dulwich.porcelain.check_diverged
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.graph.can_fast_forward
    - typing.NewType
    - dulwich.lru_cache.LRUCache._update_max_cache
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - typing.cast.encode
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selected_refs.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.get_url
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - have
    - want
    - ofs_delta
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3191
    functionName: dulwich.porcelain.push.generate_pack_data_wrapper
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - <builtin>.set
    - r.generate_pack_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.generate_pack_data
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.porcelain.push.<lambda1>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - errstream.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.send_pack
    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: refspecs_normalized.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5fe1c0>
    argNames:
    - remote_refs
    - depth
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 3297
    functionName: dulwich.porcelain.pull.determine_wants
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.objectspec.parse_reftuple
    - dulwich.objectspec.to_bytes
    - typing.cast.startswith
    - typing.cast.id.split
    - dulwich.refs.local_branch_name
    - typing.cast.id.encode
    - dulwich.refs.DictRefsContainer.__init__
    - dulwich.refs.local_tag_name
    - ret.append
    - <builtin>.super
    - dulwich.objectspec.parse_ref
    - typing.NewType
    - selected_refs.extend
    - dulwich.objectspec.parse_reftuples
    - <builtin>.isinstance
    - <builtin>.set
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3325
    functionName: dulwich.porcelain.pull.progress
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - errstream.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.refs.follow
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 5
    IfCount: 8
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febad5e6c70>
    - <ast.Constant object at 0x7febad5e6ca0>
    - <ast.Constant object at 0x7febad5e6cd0>
    - <ast.Constant object at 0x7febad5e6d00>
    - <ast.Constant object at 0x7febad5e6d30>
    argNames:
    - r
    - merge_commit_id
    - no_commit
    - no_ff
    - message
    - author
    - committer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 6287
    functionName: dulwich.porcelain._do_merge
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - time.time
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - obj.set_raw_string
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - wlst.iter
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - parents_to_check.insert
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - os.unlink
    - repo.path.encode
    - wlst.get
    - os.getuid
    - dulwich.config.StackedConfig.get
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.merge.recursive_merge
    - default_user.encode
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - dulwich.index.cleanup_mode
    - <builtin>.sorted
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - mergetag.as_raw_string
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph.find_merge_base.lookup_parents
    - all_paths.add
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - todo.extend
    - os.environ.get
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.graph.can_fast_forward.lookup_stamp
    - element.lower
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - result.extend
    - dulwich.objects.Tree.__init__
    - logging.warning
    - dulwich.index._check_file_matches
    - wlst.add
    - <builtin>.len
    - stat.S_IFMT
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - results.sort
    - entry.pw_gecos.split
    - sep_corrected_path.decode
    - dulwich.index.detect_case_only_renames.normalize_path
    - message.encode
    - os.rmdir
    - <builtin>.list
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - normalized.lower
    - dulwich.lru_cache._LRUNode.run_cleanup
    - stat.S_IMODE
    - os.path.dirname
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.objects.Tree.iteritems
    - dulwich.graph.find_octopus_base.lookup_stamp
    - email.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - os.listdir
    - typing.cast.id.lookup_path
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - element.decode
    - <builtin>.reversed
    - r.get_config_stack
    - platform.system
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - cands.append
    - path.startswith
    - stat.S_ISDIR
    - dulwich.graph.WorkList.__init__
    - dulwich.index._normalize_path_element_default
    - typing.cast.id.items
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - dulwich.graph.can_fast_forward.lookup_parents
    - default_email.encode
    - object_store.add_object
    - parents_provider.get_parents
    - <builtin>.set
    - email.endswith
    - dulwich.index._transition_to_file
    - dulwich.merge.three_way_merge
    - blob_obj.raw_length
    - contents.decode
    - dulwich.merge._create_virtual_commit
    - f.read
    - target_path.decode
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - r.get_config
    - dulwich.graph.find_merge_base
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - path.split
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.cast
    - typing.NewType
    - typing.cast.id.decode
    - dulwich.index._remove_empty_parents
    - value.split
    - filter_path.startswith
    - os.readlink
    - base_tree.items
    - binascii.unhexlify
    - dulwich.repo.get_user_identity
    - dulwich._objects.sorted_tree_items
    - base_tree.lookup_path
    - todo.pop
    - index.write
    - dulwich.graph._find_lcas
    - cstates.get
    - current_target.encode
    - headers.extend
    - unicodedata.normalize
    - <builtin>.getattr
    - <builtin>.min
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - headers.append
    - dulwich.objects.Tree.add
    - repo.parents_provider
    - user_uc.encode
    - r.get_gitattributes
    - os.lstat
    - old_paths_normalized.items
    - pwd.getpwuid
    - dulwich.objects.S_ISGITLINK
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - email_uc.encode
    - dulwich.index._transition_to_absent
    - dulwich.lru_cache.LRUCache.__init__
    - conflicts.append
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.graph.find_merge_base.lookup_stamp
    - merged_entries.items
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf54cfa0>
    argNames:
    - repo
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 3827
    functionName: dulwich.porcelain.get_tree_changes
    functionSourceFile: dulwich.porcelain
    functionUses: 8
    functionsReached:
    - io.BytesIO.readlines
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - index.changes_from_tree
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit.author.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: authors.setdefault
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: authors.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.porcelain.shortlog.<lambda1>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: items.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dirnames.remove
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filenames.remove
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - dir_path
    - base_rel_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 3595
    functionName: dulwich.porcelain.get_untracked_paths.directory_has_non_ignored_files
    functionSourceFile: dulwich.porcelain
    functionUses: 1
    functionsReached:
    - ignore_manager.is_ignored
    - os.listdir
    - os.path.isfile
    - os.path.join
    - os.path.isdir
    - dulwich.porcelain.get_untracked_paths.directory_has_non_ignored_files
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - dirpath
    - dirnames
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 3613
    functionName: dulwich.porcelain.get_untracked_paths.prune_dirnames
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - resolved_path.relative_to
    - os.path.isdir
    - name.startswith
    - ignore_manager.is_ignored
    - pathlib.Path
    - os.path.isfile
    - <builtin>.len
    - os.path.join
    - pathlib.Path.parent.resolve
    - os.fsdecode
    - untracked_dir_list.append
    - pathlib.Path.is_symlink
    - ignored_dirs.append
    - <builtin>.range
    - pathlib.Path.resolve
    - dulwich.porcelain.get_untracked_paths.directory_has_non_ignored_files
    - os.path.abspath
    - <builtin>.any
    - <builtin>.isinstance
    - dulwich.porcelain.path_to_tree_path
    - os.path.relpath
    - <builtin>.bytes
    - os.listdir
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ignored_dirs.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: untracked_dir_list.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rev.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.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: pathspec.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: compiled_pattern.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: index.changes_from_tree
    functionSourceFile: <builtin>
    functionUses: 9
    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 0x7febaf4dcb20>
    - <ast.Constant object at 0x7febaf4dc160>
    - <ast.Constant object at 0x7febaf4dc280>
    argNames:
    - backend
    - dumb
    - handlers
    - fallback_app
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 790
    functionName: dulwich.web.make_wsgi_chain
    functionSourceFile: dulwich.web
    functionUses: 4
    functionsReached:
    - dulwich.web.GunzipFilter.__init__
    - dulwich.web.LimitedInputFilter.__init__
    - dulwich.web.HTTPGitApplication.__init__
    - <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: wsgiref.simple_server.make_server
    functionSourceFile: wsgiref
    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: wsgiref.simple_server.make_server.serve_forever
    functionSourceFile: wsgiref
    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: objectish.encode
    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: original_objectish.encode
    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: r.refs.add_if_new
    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: objectish_ref.startswith
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo_config.set
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo_config.write_to_path
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fnmatch.fnmatchcase
    functionSourceFile: fnmatch
    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: sort_key.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: branches.sort
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - branch_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 4172
    functionName: dulwich.porcelain.branch_list.get_commit_date
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - typing.cast.id.startswith
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.cast
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: dulwich.porcelain.branch_list.<lambda1>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.porcelain.branch_list.get_commit_date
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.cast
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: dulwich.porcelain.branch_list.<lambda2>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - typing.cast.id.startswith
    - dulwich.porcelain.branch_list.get_commit_date
    - typing.cast.startswith
    - dulwich.refs.local_branch_name
    - typing.cast
    - typing.NewType
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - branch_name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4228
    functionName: dulwich.porcelain.branch_remotes_list.get_commit_date
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - typing.cast
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: dulwich.porcelain.branch_remotes_list.<lambda1>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.cast
    - typing.NewType
    - dulwich.porcelain.branch_remotes_list.get_commit_date
    linkageType: 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: dulwich.porcelain.branch_remotes_list.<lambda2>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - typing.cast
    - typing.NewType
    - dulwich.porcelain.branch_remotes_list.get_commit_date
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4254
    functionName: dulwich.porcelain._get_branch_merge_status
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - wlst.iter
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.lru_cache.LRUCache._remove_lru
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - wlst.get
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.graph.find_merge_base.lookup_parents
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.graph.can_fast_forward.lookup_stamp
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - wlst.add
    - <builtin>.len
    - results.sort
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - dulwich.lru_cache._LRUNode.run_cleanup
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.graph.find_octopus_base.lookup_stamp
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - r.refs.as_dict
    - backend.get
    - <builtin>.int
    - dulwich.graph.can_fast_forward
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - cands.append
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.graph.WorkList.__init__
    - cs.startswith
    - <builtin>.super
    - dulwich.graph.can_fast_forward.lookup_parents
    - parents_provider.get_parents
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - dulwich.graph.find_octopus_base.lookup_parents
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.graph._find_lcas
    - cstates.get
    - dulwich.hooks.PostCommitShellHook.__init__
    - <builtin>.min
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - repo.parents_provider
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - dulwich.graph.find_merge_base.lookup_stamp
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: active_ref.startswith
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadd584c0>
    argNames:
    - repo
    - branch_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4366
    functionName: dulwich.porcelain.get_branch_merge
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - active_ref.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - repo
    - branch_name
    - remote_name
    - remote_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 4386
    functionName: dulwich.porcelain.set_branch_tracking
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - config.set
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - config.write_to_path
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - r.get_config
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4473
    functionName: dulwich.porcelain.fetch.progress
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - errstream.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pattern.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.get_object
    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: dulwich.porcelain.for_each_ref.<lambda1>
    functionSourceFile: dulwich.porcelain
    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: prefixes.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filtered_refs.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.porcelain.show_ref.<lambda1>
    functionSourceFile: dulwich.porcelain
    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: branch_refs.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.porcelain.show_branch.<lambda1>
    functionSourceFile: dulwich.porcelain
    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: output_lines.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: branch_commits.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - sha
    - branch_idx
    - visited
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4814
    functionName: dulwich.porcelain.show_branch.collect_commits
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - visited.add
    - commit.message.decode
    - dulwich.porcelain.show_branch.collect_commits
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_commits.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.porcelain.show_branch.<lambda2>
    functionSourceFile: dulwich.porcelain
    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: dulwich.porcelain.show_branch.<lambda3>
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - commit_sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 4887
    functionName: dulwich.porcelain.show_branch.mark_reachable
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - reachable.add
    - dulwich.porcelain.show_branch.mark_reachable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: branch_contains.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: markers.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host_path.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.get_refs
    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: r.object_store.pack_loose_objects
    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: r.object_store._update_pack_cache
    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: r.object_store.generate_pack_bitmaps
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - store
    - treeid
    - base
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 5059
    functionName: dulwich.porcelain.ls_tree.list_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - hexsha.decode
    - name.decode
    - formatted.encode
    - dulwich.porcelain.ls_tree.list_tree
    - dulwich.objects.pretty_format_tree_entry
    - outstream.write
    - stat.S_ISDIR
    - <builtin>.isinstance
    - tree.iteritems
    - posixpath.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: formatted.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.has_section
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.set
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.write_to_path
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5112
    functionName: dulwich.porcelain.remote_remove
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - c.write_to_path
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5128
    functionName: dulwich.porcelain._quote_path
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - char.encode
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: char.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: original_path_str.endswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.rstrip
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5227
    functionName: dulwich.porcelain._get_current_head_tree
    functionSourceFile: dulwich.porcelain
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febab3c4fa0>
    argNames:
    - repo
    - target_tree_id
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 5247
    functionName: dulwich.porcelain._check_uncommitted_changes
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - io.BytesIO.readlines
    - dulwich.index._has_directory_changed
    - r.open_index
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.index._check_entry_for_changes
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - index.changes_from_tree
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - config.get_boolean
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - os.path.abspath
    - future.result
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - contextlib.closing
    - re.escape
    - pat.split
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - dulwich.objects.valid_hexsha
    - dulwich.index.blob_from_path_and_stat
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - os.path.exists
    - commondir.read
    - value.startswith
    - dulwich.porcelain.get_tree_changes
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - name.startswith
    - subsection.encode
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - executor.submit
    - index.iteritems
    - <builtin>.len
    - change.encode
    - sep_corrected_path.decode
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - r.get_blob_normalizer
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.ignore.IgnoreFilter.from_path
    - dulwich.objects.Blob.__init__
    - os.path.dirname
    - dirnames.remove
    - value.endswith
    - pathlib.Path.resolve
    - <builtin>.ord
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.index.get_unstaged_changes
    - contextlib.suppress
    - os.walk
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - path.replace
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - <builtin>.all
    - line.strip
    - dulwich.config._parse_section_header_line
    - dulwich.ignore._handle_leading_patterns
    - status_report.staged.get
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - pattern.endswith
    - cs.startswith
    - dulwich.ignore._translate_segment
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - filenames.remove
    - ret.append
    - f.read
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - collections.namedtuple
    - dulwich.porcelain.path_to_tree_path
    - os.path.relpath
    - tree_path.replace
    - content.endswith
    - c.isalnum
    - dulwich.porcelain.get_untracked_paths
    - stat.S_ISLNK
    - line.endswith
    - included_paths.copy
    - global_filters.append
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - os.readlink
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - pat.endswith
    - dulwich.hooks.PostCommitShellHook.__init__
    - repo.get_config_stack
    - <builtin>.min
    - dulwich.porcelain._walk_working_dir_paths
    - dulwich.porcelain.status
    - target_tree.lookup_path
    - os.path.isdir
    - dulwich.ignore.translate
    - dulwich.porcelain._get_current_head_tree
    - whitespace.append
    - pathlib.Path
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - dulwich.object_store.DiskObjectStore.from_config
    - pathlib.Path.parent.resolve
    - line.rstrip
    - os.lstat
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - re.compile
    - value.lower
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.ignore._handle_double_asterisk
    - line.replace
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - changes.extend
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.ignore.Pattern.__init__
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - CheckoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: status_report.staged.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: changes.extend
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: change.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target_tree.lookup_path
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - source
    - target
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5328
    functionName: dulwich.porcelain._get_worktree_update_config.symlink_wrapper
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - os.symlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - source
    - target
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 5337
    functionName: dulwich.porcelain._get_worktree_update_config.symlink_fallback
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - f.write
    - <builtin>.open
    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 0x7febab3e2370>
    argNames:
    - repo
    - current_tree_id
    - target_tree_id
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 5350
    functionName: dulwich.porcelain._perform_tree_switch
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - dulwich.index.validate_path_element_default
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - os.unlink
    - repo.path.encode
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - dulwich.index.cleanup_mode
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - mergetag.as_raw_string
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - os.path.exists
    - dulwich.objects.ShaFile.as_raw_chunks
    - todo.extend
    - element.lower
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - result.extend
    - logging.warning
    - dulwich.objects.Tree.__init__
    - dulwich.index._check_file_matches
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - dulwich.index.detect_case_only_renames.normalize_path
    - os.rmdir
    - <builtin>.list
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - repo.get_blob_normalizer
    - normalized.lower
    - os.path.dirname
    - stat.S_IMODE
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.index.index_entry_from_stat
    - os.listdir
    - repo.open_index
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - <builtin>.reversed
    - platform.system
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - path.startswith
    - stat.S_ISDIR
    - dulwich.index._normalize_path_element_default
    - dulwich.index._tree_to_fs_path
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - <builtin>.set
    - dulwich.index._transition_to_file
    - blob_obj.raw_length
    - contents.decode
    - f.read
    - target_path.decode
    - <builtin>.isinstance
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - normalized_blob.as_raw_string
    - path.split
    - f.write
    - typing.NewType
    - dulwich.index._remove_empty_parents
    - value.split
    - os.readlink
    - dulwich._objects.sorted_tree_items
    - binascii.unhexlify
    - filter_path.startswith
    - index.write
    - todo.pop
    - headers.extend
    - current_target.encode
    - dulwich.porcelain._get_worktree_update_config
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - headers.append
    - os.lstat
    - old_paths_normalized.items
    - dulwich.objects.S_ISGITLINK
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.submodule.ensure_submodule_placeholder
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febab3b06a0>
    - <ast.Constant object at 0x7febab3b0670>
    argNames:
    - repo
    - target
    - detached
    - new_branch
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5389
    functionName: dulwich.porcelain.update_head
    functionSourceFile: dulwich.porcelain
    functionUses: 5
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - r.refs.set_symbolic_ref
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.refs.set_symbolic_ref
    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: target.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: worktree.stage
    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: new_branch.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.id.decode
    functionSourceFile: typing
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: target_bytes.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: create.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febad69a700>
    - <ast.Constant object at 0x7febad69a6d0>
    argNames:
    - repo
    - file_path
    - target
    - symlink_fn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 5842
    functionName: dulwich.porcelain.reset_file
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - os.fsencode
    - headers.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - dulwich.objectspec.parse_commit
    - dulwich.objectspec.parse_ref
    - dulwich.objects.format_time_entry
    - dulwich.objectspec.to_bytes
    - dulwich.objects.Tree._serialize
    - dulwich.index._remove_file_with_readonly_handling
    - <builtin>.len
    - dulwich.objects.git_line
    - typing.cast.id.encode
    - os.path.join
    - headers.append
    - dulwich.refs.local_tag_name
    - fs_path_bytes.replace
    - os.fsdecode
    - os.unlink
    - <builtin>.list
    - os.lstat
    - dulwich.objectspec.scan_for_short_id
    - dulwich.objects.ShaFile.as_raw_string
    - fs_path_str.encode
    - <builtin>.open
    - dulwich.objects.hex_to_sha
    - typing.cast.id.startswith
    - typing.cast.startswith
    - contents.decode
    - dulwich.refs.local_branch_name
    - typing.cast.lookup_path
    - target_path.decode
    - f.read
    - ret.append
    - dulwich.objects.serialize_tree
    - object_store.iter_prefix
    - dulwich.objects.Tree.iteritems
    - <builtin>.isinstance
    - os.chmod
    - dulwich.index._fs_to_tree_path
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - stat.S_ISLNK
    - dulwich.objects.ShaFile._serialize
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - f.write
    - mergetag.as_raw_string
    - typing.NewType
    - dulwich.index.build_file_from_blob
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - dulwich.objectspec.parse_tree
    - typing.cast.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad697730>
    argNames:
    - repo
    - target
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 5871
    functionName: dulwich.porcelain.checkout_branch
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - dulwich.ignore.IgnoreFilterManager.from_repo
    - name.decode
    - dulwich.index._has_directory_changed
    - dulwich.objects.format_time_entry
    - dulwich.repo.Repo.__init__
    - dulwich.porcelain._make_branch_ref
    - os.fsdecode
    - index.changes_from_tree
    - dulwich.config.Config.get_boolean
    - <builtin>.range
    - new_rename_changes.append
    - contextlib.closing
    - dulwich.objectspec.parse_object
    - pat.split
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - typing.cast.id.split
    - todo.extend
    - os.fspath
    - dulwich.repo.Repo._get_config_condition_matchers
    - result.extend
    - dulwich.porcelain.branch_create
    - subsection.encode
    - index.iteritems
    - dulwich.approxidate.parse_approxidate
    - repo.read_reflog
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - dulwich.objects.Tree.iteritems
    - contextlib.suppress
    - time_str.replace
    - os.listdir
    - path.replace
    - dulwich.index.build_file_from_blob
    - dulwich.repo.Repo.commondir
    - head_ref.startswith
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - time_spec.decode
    - status_report.staged.get
    - dulwich.objectspec.parse_ref
    - ignore_manager.is_ignored
    - dulwich.index._tree_to_fs_path
    - typing.cast.id.encode
    - filenames.remove
    - ret.append
    - target_path.decode
    - content.endswith
    - c.isalnum
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - global_filters.append
    - dulwich.porcelain.update_head
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - os.readlink
    - filter_path.startswith
    - dulwich._objects.sorted_tree_items
    - binascii.unhexlify
    - target_tree.lookup_path
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.object_store.DiskObjectStore.from_config
    - typing.cast.id.startswith
    - dulwich.repo.read_gitfile
    - re.compile
    - r.refs.set_symbolic_ref
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.ignore._handle_double_asterisk
    - dulwich.objects.Tag._serialize
    - dulwich.ignore.Pattern.__init__
    - dulwich.index._transition_to_submodule
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.objectspec._parse_number_suffix
    - typing.NamedTuple.__init__
    - dulwich.index.validate_path_element_default
    - dulwich.objectspec.parse_commit
    - dulwich.index._check_entry_for_changes
    - paths_becoming_dirs.add
    - config.set
    - ret._handle_include_directive
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.objects.hex_to_sha
    - dulwich.objectspec._resolve_object
    - dulwich.refs.local_branch_name
    - value.decode
    - os.path.abspath
    - future.result
    - re.escape
    - dulwich.objects.valid_hexsha
    - submodule_path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - resolved_path.relative_to
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.environ.get
    - dulwich.porcelain.get_tree_changes
    - element.lower
    - case_only_renames.add
    - logging.warning
    - os.path.isfile
    - executor.submit
    - stat.S_IFMT
    - change.encode
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - repo.get_blob_normalizer
    - normalized.lower
    - dulwich.objects.Blob.__init__
    - stat.S_IMODE
    - dulwich.ignore.IgnoreFilter.append_pattern
    - dulwich.diff_tree.tree_changes
    - dulwich.ignore.IgnoreFilterManager.__init__
    - dulwich.hooks.CommitMsgShellHook.__init__
    - new_branch.encode
    - dulwich.ignore.read_ignore_patterns
    - <builtin>.str
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - line.strip
    - dulwich.porcelain.checkout
    - path.startswith
    - name.encode
    - os.fdopen
    - r.refs.keys
    - pattern.endswith
    - cs.startswith
    - dulwich.config.ConfigDict.items
    - dulwich.index._stat_matches_entry
    - <builtin>.isinstance
    - r.get_config
    - collections.namedtuple
    - os.path.relpath
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - f.write
    - rest.endswith
    - typing.NewType
    - dulwich.config._strip_comments
    - current_target.encode
    - <builtin>.min
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.porcelain.status
    - dt.timestamp
    - dulwich.porcelain._get_current_head_tree
    - whitespace.append
    - pathlib.Path
    - dulwich.objects.Tree._serialize
    - pathlib.Path.parent.resolve
    - typing.cast.startswith
    - byte_paths.append
    - line.replace
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - dulwich.objects._format_message
    - repo_config.set
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - dulwich.objects.S_ISGITLINK
    - worktree.stage
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - dulwich.porcelain._get_reflog_message
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - repo_config.write_to_path
    - repo.path.encode
    - dulwich.objectspec.scan_for_short_id
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - dt.replace
    - stuff.startswith
    - dulwich.config.ConfigFile.__init__
    - pattern.startswith
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - r.refs.follow
    - dulwich.refs.parse_remote_ref
    - dulwich.index.blob_from_path_and_stat
    - datetime.datetime.fromtimestamp
    - normalized.endswith
    - commondir.read
    - value.startswith
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.diff_tree._skip_tree
    - dulwich.objects.Tree.__init__
    - dulwich.index.blob_from_path_and_mode
    - spec.isdigit
    - dulwich.index._check_file_matches
    - sep_corrected_path.decode
    - dulwich.refs.local_tag_name
    - os.rmdir
    - dulwich.reftable.ReftableRefsContainer.__init__
    - line.lstrip
    - r.get_blob_normalizer
    - dulwich.ignore.IgnoreFilter.from_path
    - r.get_worktree
    - os.path.dirname
    - dirnames.remove
    - pathlib.Path.resolve
    - dulwich.objects.serialize_tree
    - dulwich.index.get_unstaged_changes
    - os.walk
    - env_action.encode
    - time_spec.strip
    - line.startswith
    - backend.get
    - dulwich.index.index_entry_from_stat
    - dulwich.objectspec.parse_commit.dereference_tag
    - typing.cast.id.lookup_path
    - r.refs.add_if_new
    - config.get
    - r.get_config_stack
    - dulwich.config._parse_section_header_line
    - stat.S_ISDIR
    - section_dict.items
    - config.write_to_path
    - dulwich.objectspec.to_bytes
    - dulwich.ignore._translate_segment
    - dulwich.index.validate_path
    - blob_obj.as_raw_string
    - datetime.datetime.strptime
    - dulwich.index._transition_to_file
    - original_objectish.encode
    - f.read
    - tree_path.replace
    - dulwich.porcelain.set_branch_tracking
    - entries.reverse
    - dulwich.index._remove_empty_parents
    - typing.cast.encode
    - todo.pop
    - index.write
    - headers.extend
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.porcelain._get_worktree_update_config
    - dulwich.ignore.translate
    - target.encode
    - dulwich.config._parse_string
    - concurrent.futures.ThreadPoolExecutor
    - headers.append
    - remainder.split
    - old_paths_normalized.items
    - ret.extend
    - r.refs.set_if_equals
    - <builtin>.hasattr
    - pat.startswith
    - dulwich.index.read_submodule_head
    - dulwich.objects.Commit._serialize
    - os.chmod
    - changes.extend
    - dulwich.objects.Blob._serialize
    - dulwich.porcelain._perform_tree_switch
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - time.time
    - r.open_index
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - shutil.rmtree
    - os.unlink
    - dulwich.config.StackedConfig.get
    - pathlib.Path.is_symlink
    - value.strip
    - typing.cast.lookup_path
    - dulwich.config.ConfigFile.from_path
    - <builtin>.any
    - dulwich.index.cleanup_mode
    - dulwich.porcelain._check_uncommitted_changes
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - submodule_path.count
    - rename_detector.changes_with_renames
    - dulwich.ignore.IgnoreFilter.__init__
    - multiprocessing.cpu_count
    - path.encode
    - os.path.expanduser
    - os.path.exists
    - objectish_ref.startswith
    - name.startswith
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.list
    - ref.startswith
    - dulwich.repo.BaseRepo.head
    - <builtin>.ord
    - value.endswith
    - dulwich.index.validate_path_element_hfs
    - <builtin>.int
    - repo.open_index
    - dulwich.approxidate.parse_relative_time
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.objectspec.parse_tree
    - platform.system
    - <builtin>.all
    - dulwich.ignore._handle_leading_patterns
    - dulwich.index._normalize_path_element_default
    - <builtin>.super
    - <builtin>.set
    - blob_obj.raw_length
    - contents.decode
    - object_store.iter_prefix
    - dulwich.porcelain.path_to_tree_path
    - dulwich.porcelain.get_untracked_paths
    - line.endswith
    - value.split
    - pat.endswith
    - repo.get_config_stack
    - unicodedata.normalize
    - dulwich.porcelain._walk_working_dir_paths
    - target_bytes.startswith
    - os.open
    - dulwich.objects.git_line
    - line.rstrip
    - os.lstat
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.endswith
    - dulwich.index._transition_to_absent
    - <builtin>.bytearray
    - objectish.encode
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febad685f10>
    - <ast.Constant object at 0x7febad685ee0>
    - <ast.Constant object at 0x7febad685eb0>
    argNames:
    - repo
    - patterns
    - force
    - cone
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5890
    functionName: dulwich.porcelain.sparse_checkout
    functionSourceFile: dulwich.porcelain
    functionUses: 3
    functionsReached:
    - io.BytesIO.readlines
    - obj.set_raw_string
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - reinclude_dirs.add
    - dulwich.repo.Repo.__init__
    - index.items
    - os.fsdecode
    - dulwich.objects.ShaFile.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.config.StackedConfig.get
    - dulwich.file.ensure_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - path_str.split
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.sparse_patterns.compute_included_paths_cone
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - raw_line.strip
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.sparse_patterns.apply_included_paths.local_modifications_exist
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - repo.get_blob_normalizer
    - repo_obj.open_index
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - repo_obj.get_worktree
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.bool
    - repo.open_index
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.sparse_patterns.compute_included_paths_full
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - path_bytes.decode
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - normalizer.checkin_normalize
    - included.add
    - typing.NewType
    - dulwich.sparse_patterns.match_gitignore_patterns
    - line.split
    - dulwich.config._strip_comments
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.sparse_patterns.parse_sparse_patterns
    - os.path.isdir
    - entry.set_skip_worktree
    - path_str.startswith
    - dulwich.sparse_patterns.apply_included_paths
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.sparse_patterns.determine_included_paths
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - full_path.encode
    - value.lower
    - fnmatch.fnmatch
    - pat.startswith
    - pat.strip
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised:
    - CheckoutError
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo_obj.get_worktree
    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: repo_obj.open_index
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5947
    functionName: dulwich.porcelain.cone_mode_init
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - obj.set_raw_string
    - os.path.join
    - ret._handle_include_directive
    - reinclude_dirs.add
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - index.items
    - dulwich.objects.ShaFile.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.file.ensure_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - path_str.split
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.sparse_patterns.compute_included_paths_cone
    - dulwich.config.ConfigFile.__init__
    - dulwich.porcelain.sparse_checkout
    - contextlib.closing
    - raw_line.strip
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.sparse_patterns.apply_included_paths.local_modifications_exist
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - repo.get_blob_normalizer
    - repo_obj.open_index
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - repo_obj.get_worktree
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.bool
    - repo.open_index
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.sparse_patterns.compute_included_paths_full
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - path_bytes.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - normalizer.checkin_normalize
    - included.add
    - typing.NewType
    - dulwich.sparse_patterns.match_gitignore_patterns
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.sparse_patterns.parse_sparse_patterns
    - os.path.isdir
    - entry.set_skip_worktree
    - path_str.startswith
    - dulwich.sparse_patterns.apply_included_paths
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.sparse_patterns.determine_included_paths
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - full_path.encode
    - value.lower
    - pat.startswith
    - pat.strip
    - fnmatch.fnmatch
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad5e2cd0>
    argNames:
    - repo
    - dirs
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5970
    functionName: dulwich.porcelain.cone_mode_set
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - obj.set_raw_string
    - os.path.join
    - ret._handle_include_directive
    - reinclude_dirs.add
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - index.items
    - dulwich.objects.ShaFile.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.file.ensure_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - path_str.split
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.sparse_patterns.compute_included_paths_cone
    - dulwich.config.ConfigFile.__init__
    - dulwich.porcelain.sparse_checkout
    - contextlib.closing
    - raw_line.strip
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.sparse_patterns.apply_included_paths.local_modifications_exist
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - repo.get_blob_normalizer
    - repo_obj.open_index
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - repo_obj.get_worktree
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.bool
    - repo.open_index
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.sparse_patterns.compute_included_paths_full
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - path_bytes.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - normalizer.checkin_normalize
    - included.add
    - typing.NewType
    - dulwich.sparse_patterns.match_gitignore_patterns
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.sparse_patterns.parse_sparse_patterns
    - os.path.isdir
    - entry.set_skip_worktree
    - path_str.startswith
    - dulwich.sparse_patterns.apply_included_paths
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.sparse_patterns.determine_included_paths
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - full_path.encode
    - value.lower
    - pat.startswith
    - pat.strip
    - fnmatch.fnmatch
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad5d28b0>
    argNames:
    - repo
    - dirs
    - force
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 5995
    functionName: dulwich.porcelain.cone_mode_add
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - obj.set_raw_string
    - os.path.join
    - ret._handle_include_directive
    - reinclude_dirs.add
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - index.items
    - dulwich.objects.ShaFile.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.file.ensure_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - path_str.split
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.sparse_patterns.compute_included_paths_cone
    - dulwich.config.ConfigFile.__init__
    - dulwich.porcelain.sparse_checkout
    - contextlib.closing
    - raw_line.strip
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.remove
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - dulwich.sparse_patterns.apply_included_paths.local_modifications_exist
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - dulwich.objects.ShaFile.from_string
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - repo.get_blob_normalizer
    - repo_obj.open_index
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - repo_obj.get_worktree
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - <builtin>.bool
    - repo.open_index
    - results.append
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.sparse_patterns.compute_included_paths_full
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - path_bytes.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - normalizer.checkin_normalize
    - included.add
    - typing.NewType
    - dulwich.sparse_patterns.match_gitignore_patterns
    - dulwich.config._strip_comments
    - line.split
    - binascii.unhexlify
    - dulwich.config.ConfigDict.get
    - index.write
    - dulwich.hooks.PostCommitShellHook.__init__
    - dulwich.sparse_patterns.parse_sparse_patterns
    - os.path.isdir
    - entry.set_skip_worktree
    - path_str.startswith
    - dulwich.sparse_patterns.apply_included_paths
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.sparse_patterns.determine_included_paths
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - full_path.encode
    - value.lower
    - pat.startswith
    - pat.strip
    - fnmatch.fnmatch
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 163
    functionName: dulwich.mailmap.Mailmap.from_path
    functionSourceFile: dulwich.mailmap
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - dulwich.mailmap.parse_identity
    - from_identity.strip
    - line.strip
    - name_str.strip
    - dulwich.mailmap.Mailmap.add_entry
    - line.split
    - email_str.rstrip
    - dulwich.mailmap.Mailmap.__init__
    - dulwich.mailmap.read_mailmap
    - text.rsplit
    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 0x7febaf95bb80>
    argNames:
    - self
    - map
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: dulwich.mailmap.Mailmap.__init__
    functionSourceFile: dulwich.mailmap
    functionUses: 3
    functionsReached:
    - dulwich.mailmap.Mailmap.add_entry
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contact.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - identity
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 135
    functionName: dulwich.mailmap.Mailmap.lookup
    functionSourceFile: dulwich.mailmap
    functionUses: 2
    functionsReached:
    - dulwich.mailmap.parse_identity
    - name_str.strip
    - <builtin>.isinstance
    - email_str.rstrip
    - text.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: o.check
    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:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6077
    functionName: dulwich.porcelain.stash_list
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - stash.stashes
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.stash.Stash.from_repo
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.stash.Stash.__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: stash.push
    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: stash.pop
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - repo
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6108
    functionName: dulwich.porcelain.stash_drop
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.repo.parse_graftpoints
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dulwich.hooks.ShellHook.__init__
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.stash.Stash.from_repo
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - stash.drop
    - dulwich.stash.Stash.__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: stash.drop
    functionSourceFile: <builtin>
    functionUses: 1
    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 0x7febad5cf9d0>
    argNames:
    - object_store
    - object_id
    - min_length
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 6123
    functionName: dulwich.porcelain.find_unique_abbrev
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - obj_id.decode
    - <builtin>.range
    - <builtin>.isinstance
    - object_id.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: object_id.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj_id.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.slice
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key_str.rsplit
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime
    functionSourceFile: datetime
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tags.items
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.porcelain.describe.<lambda1>
    functionSourceFile: dulwich.porcelain
    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: latest_commit.id.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry.commit.id.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febad5e5550>
    argNames:
    - repo
    - path
    - committish
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 6249
    functionName: dulwich.porcelain.get_object_by_path
    functionSourceFile: dulwich.porcelain
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.objectspec.parse_commit
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.objectspec.scan_for_short_id
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.refs.local_branch_name
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - contextlib.closing
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - dulwich.porcelain.commit_encode
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - contents.encode
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - dulwich.refs.local_tag_name
    - extension.lower
    - typing.cast.encoding.decode
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - tree.lookup_path
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.objectspec.parse_commit.dereference_tag
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.objectspec.parse_ref
    - dulwich.objectspec.to_bytes
    - cs.startswith
    - typing.cast.id.encode
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - object_store.iter_prefix
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - typing.cast.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - dulwich.object_store.tree_lookup_path
    - ret._values.setdefault
    - typing.cast.id.startswith
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - typing.cast.startswith
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - typing.cast.id.encoding.decode
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.get_gitattributes
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febad64dd00>
    - <ast.Constant object at 0x7febad64dd30>
    - <ast.Constant object at 0x7febad64dd60>
    - <ast.Constant object at 0x7febad64dd90>
    - <ast.Constant object at 0x7febad64ddc0>
    argNames:
    - r
    - merge_commit_ids
    - no_commit
    - no_ff
    - message
    - author
    - committer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 6408
    functionName: dulwich.porcelain._do_octopus_merge
    functionSourceFile: dulwich.porcelain
    functionUses: 2
    functionsReached:
    - commit_id.decode
    - r.object_store.add_object
    - dulwich.index.validate_path_element_default
    - time.time
    - dulwich._diff_tree._merge_entries
    - dulwich.index.validate_path_element_ntfs
    - obj.set_raw_string
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - wlst.iter
    - dulwich.index._remove_file_with_readonly_handling
    - socket.gethostname
    - os.path.join
    - dulwich.diff_tree.TreeChange.delete
    - shutil.rmtree
    - parents_to_check.insert
    - dulwich.lru_cache.LRUCache._remove_lru
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - os.unlink
    - repo.path.encode
    - wlst.get
    - dulwich.config.StackedConfig.get
    - os.getuid
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.merge.recursive_merge
    - dulwich.porcelain._do_merge
    - default_user.encode
    - os.makedirs
    - typing.cast.lookup_path
    - dulwich.objects.is_blob
    - <builtin>.range
    - new_rename_changes.append
    - dulwich.index.cleanup_mode
    - <builtin>.sorted
    - dulwich.objects.ShaFile._serialize
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - mergetag.as_raw_string
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.graph.find_merge_base.lookup_parents
    - all_paths.add
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.graph._find_lcas._has_candidates
    - os.path.exists
    - todo.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.environ.get
    - dulwich.graph.can_fast_forward.lookup_stamp
    - element.lower
    - dulwich.merge.octopus_merge
    - dulwich.diff_tree._skip_tree
    - case_only_renames.add
    - result.extend
    - dulwich.objects.Tree.__init__
    - logging.warning
    - dulwich.index._check_file_matches
    - wlst.add
    - <builtin>.len
    - stat.S_IFMT
    - results.sort
    - typing.cast.items
    - dulwich.objects.ShaFile.from_string
    - sep_corrected_path.decode
    - dulwich.index.detect_case_only_renames.normalize_path
    - other_commits.append
    - entry.pw_gecos.split
    - next_lcas.extend
    - message.encode
    - os.rmdir
    - <builtin>.list
    - dulwich.diff_tree.walk_trees
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - normalized.lower
    - dulwich.lru_cache._LRUNode.run_cleanup
    - stat.S_IMODE
    - os.path.dirname
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - dulwich.lru_cache.LRUCache._remove_node
    - dulwich.objects.Tree.iteritems
    - dulwich.graph.find_octopus_base.lookup_stamp
    - email.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - <builtin>.int
    - os.listdir
    - typing.cast.id.lookup_path
    - dulwich.submodule.ensure_submodule_placeholder
    - repo.open_index
    - dulwich.merge.Merger.merge_blobs
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - results.append
    - dulwich.lru_cache.LRUCache.cleanup
    - element.decode
    - <builtin>.reversed
    - r.get_config_stack
    - platform.system
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - cands.append
    - path.startswith
    - stat.S_ISDIR
    - dulwich.graph.WorkList.__init__
    - dulwich.index._normalize_path_element_default
    - typing.cast.id.items
    - dulwich.repo._get_default_identity
    - dulwich.merge.Merger.__init__
    - dulwich.index._tree_to_fs_path
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - dulwich.graph.can_fast_forward.lookup_parents
    - object_store.add_object
    - parents_provider.get_parents
    - default_email.encode
    - <builtin>.set
    - dulwich.index._transition_to_file
    - email.endswith
    - dulwich.merge.three_way_merge
    - blob_obj.raw_length
    - contents.decode
    - dulwich.merge._create_virtual_commit
    - f.read
    - target_path.decode
    - dulwich.graph.find_octopus_base.lookup_parents
    - r.get_config
    - <builtin>.isinstance
    - dulwich.graph.find_merge_base
    - tree_path.replace
    - dulwich.index._normalize_path_element_hfs
    - stat.S_ISLNK
    - normalized_blob.as_raw_string
    - dulwich.objects.is_tree
    - path.split
    - dulwich.merge.Merger.merge_trees
    - f.write
    - typing.cast
    - typing.NewType
    - typing.cast.id.decode
    - dulwich.index._remove_empty_parents
    - value.split
    - filter_path.startswith
    - os.readlink
    - base_tree.items
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - dulwich.repo.get_user_identity
    - base_tree.lookup_path
    - todo.pop
    - index.write
    - dulwich.graph._find_lcas
    - cstates.get
    - current_target.encode
    - headers.extend
    - unicodedata.normalize
    - <builtin>.min
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - headers.append
    - dulwich.objects.Tree.add
    - repo.parents_provider
    - os.lstat
    - r.get_gitattributes
    - old_paths_normalized.items
    - user_uc.encode
    - pwd.getpwuid
    - dulwich.objects.S_ISGITLINK
    - branch_names.append
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.graph.find_octopus_base
    - os.chmod
    - dulwich.objects.Commit._serialize
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - email_uc.encode
    - dulwich.lru_cache.LRUCache.__init__
    - conflicts.append
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.graph.find_merge_base.lookup_stamp
    - <builtin>.enumerate
    - merged_entries.items
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other_commits.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: branch_names.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: merge_commit_ids.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack.iter_unpacked
    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: upstream_ref.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: upstream.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: head.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: limit.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: head_commits.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit.message.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: commit_ref.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commits_to_revert.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: original_message.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: original_message.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: commit_to_revert.id.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gc.garbage_collect
    functionSourceFile: gc
    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: r.object_store.prune
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaec31a30>
    - <ast.Constant object at 0x7febaec31850>
    - <ast.Constant object at 0x7febaec31f70>
    argNames:
    - repo
    - tasks
    - auto
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 359
    functionName: dulwich.maintenance.run_maintenance
    functionSourceFile: dulwich.maintenance
    functionUses: 2
    functionsReached:
    - MAINTENANCE_TASKS.items
    - task.run
    - MAINTENANCE_TASKS.get
    - dulwich.maintenance.get_enabled_tasks
    - logger.error
    - result.tasks_failed.append
    - result.tasks_run.append
    - <builtin>.str
    - result.tasks_succeeded.append
    - task.is_enabled
    - enabled_tasks.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 9
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - repo
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 405
    functionName: dulwich.maintenance.register_repository
    functionSourceFile: dulwich.maintenance
    functionUses: 2
    functionsReached:
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - <builtin>.getattr
    - value.startswith
    - name.encode
    - <builtin>.enumerate
    - os.fspath
    - dulwich.config._check_section_name
    - values.items
    - dulwich.config.ConfigDict.set
    - os.fdopen
    - whitespace.append
    - subsection.encode
    - dulwich.config._parse_string
    - os.open
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - ret._handle_include_directive
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - repo_config.write_to_path
    - <builtin>.list
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - <builtin>.open
    - value.replace
    - value.encode
    - <builtin>.hasattr
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - schedule_config.items
    - <builtin>.range
    - ret.append
    - dulwich.file.GitFile
    - dulwich.config._escape_value
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - <builtin>.isinstance
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - dulwich.config.ConfigFile.write_to_path
    - dulwich.config.ConfigDict.get_multivar
    - section_dict.set
    - line.startswith
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - io.BytesIO.write
    - line.endswith
    - <builtin>.bytearray
    - repo.get_config
    - included_paths.copy
    - repo_config.set
    - dulwich.config.ConfigFile.write_to_file
    - dulwich.config._format_string
    - dulwich.config.ConfigFile.from_file
    - repo_path.encode
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf817580>
    argNames:
    - repo
    - force
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 470
    functionName: dulwich.maintenance.unregister_repository
    functionSourceFile: dulwich.maintenance
    functionUses: 2
    functionsReached:
    - os.path.expanduser
    - setting.strip
    - dulwich.config._is_line_continuation
    - dulwich.config._parse_section_header_line
    - io.BytesIO.readlines
    - <builtin>.enumerate
    - os.fspath
    - dulwich.config._check_section_name
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.config._check_variable_name
    - <builtin>.len
    - ret._handle_include_directive
    - <builtin>.super
    - <builtin>.list
    - ret.extend
    - <builtin>.set
    - ret._values.setdefault
    - value.strip
    - line.lstrip
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - <builtin>.range
    - ret.append
    - os.path.abspath
    - dulwich.config.ConfigFile.from_path
    - content.endswith
    - dulwich.config.ConfigFile.__init__
    - c.isalnum
    - existing_repos.remove
    - line.startswith
    - global_config.write_to_path
    - <builtin>.bytes
    - line.endswith
    - <builtin>.bytearray
    - included_paths.copy
    - global_config.get_multivar
    - dulwich.config.ConfigFile.from_file
    - repo_path.encode
    - dulwich.config._strip_comments
    - line.split
    - global_config.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: object_store._iter_loose_objects
    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: object_store._get_shafile_path
    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: r.get_rebase_state_manager
    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: onto.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subdirectory_filter.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - old_ref
    - new_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 7633
    functionName: dulwich.porcelain.filter_branch.rename_tag
    functionSourceFile: dulwich.porcelain
    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: commits_to_format.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commits_to_format.reverse
    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: filenames.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - repo
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: dulwich.bisect.BisectState.__init__
    functionSourceFile: dulwich.bisect
    functionUses: 8
    functionsReached:
    - repo.controldir
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 10
    IfCount: 6
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7febaefb31c0>
    - <ast.Constant object at 0x7febaefb3100>
    - <ast.Constant object at 0x7febaefb3880>
    - <ast.Constant object at 0x7febaefb3310>
    - <ast.Constant object at 0x7febaefb3d90>
    - <ast.Constant object at 0x7febaefb3b20>
    argNames:
    - self
    - bad
    - good
    - paths
    - no_checkout
    - term_bad
    - term_good
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 51
    functionName: dulwich.bisect.BisectState.start
    functionSourceFile: dulwich.bisect
    functionUses: 4
    functionsReached:
    - queue.pop
    - dulwich.bisect.BisectState.mark_bad
    - dulwich.bisect.BisectState._get_commit_subject
    - os.path.exists
    - path.decode
    - filename.startswith
    - <builtin>.len
    - dulwich.bisect.BisectState._estimate_steps
    - os.path.join
    - _TYPE_MAP.get
    - rev.decode
    - <builtin>.set
    - obj.message.decode
    - <builtin>.open
    - candidates.append
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - dulwich.bisect.BisectState.mark_good
    - os.makedirs
    - bad_sha.decode
    - f.read
    - skip_shas.add
    - <builtin>.isinstance
    - next_commit.decode
    - candidates.remove
    - queue.append
    - os.listdir
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - good_shas.append
    - visited.add
    - dulwich.object_store.peel_sha
    - typing.NewType
    - message.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 9
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 305
    functionName: dulwich.bisect.BisectState._find_next_commit
    functionSourceFile: dulwich.bisect
    functionUses: 11
    functionsReached:
    - queue.pop
    - dulwich.bisect.BisectState._get_commit_subject
    - os.path.exists
    - filename.startswith
    - <builtin>.len
    - dulwich.bisect.BisectState._estimate_steps
    - os.path.join
    - <builtin>.set
    - obj.message.decode
    - <builtin>.open
    - candidates.append
    - dulwich.bisect.BisectState._append_to_log
    - bad_sha.decode
    - f.read
    - skip_shas.add
    - <builtin>.isinstance
    - next_commit.decode
    - candidates.remove
    - queue.append
    - os.listdir
    - dulwich.bisect.BisectState._find_bisect_candidates
    - f.write
    - good_shas.append
    - visited.add
    - typing.NewType
    - message.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadba4d60>
    argNames:
    - self
    - rev
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 131
    functionName: dulwich.bisect.BisectState.mark_bad
    functionSourceFile: dulwich.bisect
    functionUses: 6
    functionsReached:
    - queue.pop
    - dulwich.bisect.BisectState._get_commit_subject
    - os.path.exists
    - filename.startswith
    - <builtin>.len
    - dulwich.bisect.BisectState._estimate_steps
    - os.path.join
    - _TYPE_MAP.get
    - rev.decode
    - <builtin>.set
    - obj.message.decode
    - <builtin>.open
    - candidates.append
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - bad_sha.decode
    - f.read
    - skip_shas.add
    - <builtin>.isinstance
    - next_commit.decode
    - candidates.remove
    - queue.append
    - os.listdir
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - good_shas.append
    - visited.add
    - dulwich.object_store.peel_sha
    - typing.NewType
    - message.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6df0>
    argNames:
    - self
    - rev
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 161
    functionName: dulwich.bisect.BisectState.mark_good
    functionSourceFile: dulwich.bisect
    functionUses: 6
    functionsReached:
    - queue.pop
    - dulwich.bisect.BisectState._get_commit_subject
    - os.path.exists
    - filename.startswith
    - <builtin>.len
    - dulwich.bisect.BisectState._estimate_steps
    - os.path.join
    - _TYPE_MAP.get
    - rev.decode
    - <builtin>.set
    - obj.message.decode
    - <builtin>.open
    - candidates.append
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - bad_sha.decode
    - f.read
    - skip_shas.add
    - <builtin>.isinstance
    - next_commit.decode
    - candidates.remove
    - queue.append
    - os.listdir
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - good_shas.append
    - visited.add
    - dulwich.object_store.peel_sha
    - typing.NewType
    - message.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5a56a0>
    argNames:
    - self
    - revs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 193
    functionName: dulwich.bisect.BisectState.skip
    functionSourceFile: dulwich.bisect
    functionUses: 4
    functionsReached:
    - queue.pop
    - dulwich.bisect.BisectState._get_commit_subject
    - os.path.exists
    - filename.startswith
    - <builtin>.len
    - dulwich.bisect.BisectState._estimate_steps
    - os.path.join
    - _TYPE_MAP.get
    - rev.decode
    - <builtin>.set
    - obj.message.decode
    - <builtin>.open
    - candidates.append
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState._append_to_log
    - bad_sha.decode
    - f.read
    - skip_shas.add
    - <builtin>.isinstance
    - next_commit.decode
    - candidates.remove
    - queue.append
    - os.listdir
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - good_shas.append
    - visited.add
    - dulwich.object_store.peel_sha
    - typing.NewType
    - message.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf055100>
    argNames:
    - self
    - commit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 220
    functionName: dulwich.bisect.BisectState.reset
    functionSourceFile: dulwich.bisect
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - original.startswith
    - os.listdir
    - dulwich.objects.object_class
    - os.path.exists
    - os.path.join
    - f.read
    - os.remove
    - typing.NewType
    - dulwich.object_store.peel_sha
    - _TYPE_MAP.get
    - os.rmdir
    - <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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 265
    functionName: dulwich.bisect.BisectState.get_log
    functionSourceFile: dulwich.bisect
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - os.path.join
    - f.read
    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: log_file.read
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: content.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - log_content
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 274
    functionName: dulwich.bisect.BisectState.replay
    functionSourceFile: dulwich.bisect
    functionUses: 2
    functionsReached:
    - queue.pop
    - dulwich.bisect.BisectState.mark_bad
    - line.strip
    - dulwich.bisect.BisectState._get_commit_subject
    - arg.encode
    - os.path.exists
    - path.decode
    - filename.startswith
    - log_content.splitlines
    - <builtin>.len
    - dulwich.bisect.BisectState.start
    - dulwich.bisect.BisectState._estimate_steps
    - os.path.join
    - _TYPE_MAP.get
    - rev.decode
    - <builtin>.set
    - obj.message.decode
    - <builtin>.open
    - candidates.append
    - dulwich.objects.object_class
    - dulwich.bisect.BisectState.skip
    - dulwich.bisect.BisectState._append_to_log
    - dulwich.bisect.BisectState.mark_good
    - os.makedirs
    - bad_sha.decode
    - f.read
    - skip_shas.add
    - <builtin>.isinstance
    - next_commit.decode
    - line.startswith
    - candidates.remove
    - queue.append
    - os.listdir
    - dulwich.bisect.BisectState._find_bisect_candidates
    - dulwich.bisect.BisectState._find_next_commit
    - f.write
    - good_shas.append
    - visited.add
    - typing.NewType
    - dulwich.object_store.peel_sha
    - line.split
    - message.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.read_reflog
    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: gc.find_reachable_objects
    functionSourceFile: gc
    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: r._reflog_path
    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: pattern_obj.pattern.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tracked.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gitattributes.remove_pattern
    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: gitattributes.write_to_file
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lfs_files.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: files_to_migrate.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_str.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote_url.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: remote_url_str.endswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lfs_url_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.object_store.iter_tree_contents
    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: store.open_object
    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: pointers_to_fetch.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: store.write_object
    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: lfs_file.read
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.refs.read_ref
    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: ref_bytes.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: objects_to_push.add
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.warn
    functionSourceFile: logging
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit_ids.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf33ca60>
    - <ast.Constant object at 0x7febaf33ca00>
    - <ast.Constant object at 0x7febaf33c7f0>
    argNames:
    - maildir_path
    - output_dir
    - start_number
    - precision
    - keep_cr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: dulwich.mbox.split_maildir
    functionSourceFile: dulwich.mbox
    functionUses: 2
    functionsReached:
    - <builtin>.open
    - pathlib.Path
    - <builtin>.bytes
    - maildir_path.decode
    - f.write
    - output_files.append
    - <builtin>.str
    - message_bytes.replace
    - output_dir.decode
    - mailbox.Maildir
    - <builtin>.sorted
    - <builtin>.isinstance
    - pathlib.Path.exists
    - md.keys
    - pathlib.Path.is_dir
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febadf33880>
    - <ast.Constant object at 0x7febadf33790>
    - <ast.Constant object at 0x7febadf33eb0>
    - <ast.Constant object at 0x7febadf33b50>
    argNames:
    - input_file
    - output_dir
    - start_number
    - precision
    - keep_cr
    - mboxrd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 45
    functionName: dulwich.mbox.split_mbox
    functionSourceFile: dulwich.mbox
    functionUses: 2
    functionsReached:
    - mailbox.mbox
    - dulwich.mbox._parse_mbox_from_file
    - result_lines.append
    - pathlib.Path
    - output_files.append
    - os.unlink
    - message_bytes.split
    - <builtin>.open
    - line.lstrip
    - typing.cast.read
    - message_bytes.rstrip
    - mbox.close
    - tempfile.NamedTemporaryFile
    - typing.cast.decode
    - message_bytes.replace
    - tmp.write
    - dulwich.mbox._reverse_mboxrd_escaping
    - <builtin>.isinstance
    - pathlib.Path.is_dir
    - line.startswith
    - <builtin>.bytes
    - f.write
    - <builtin>.str
    - output_dir.decode
    - pathlib.Path.exists
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7febaf896b20>
    - <ast.Constant object at 0x7febaf8968b0>
    - <ast.Constant object at 0x7febaf8963a0>
    - <ast.Constant object at 0x7febaf896c40>
    - <ast.Constant object at 0x7febaf896cd0>
    argNames:
    - input_file
    - keep_subject
    - keep_non_patch
    - encoding
    - scissors
    - message_id
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 248
    functionName: dulwich.mbox.mailinfo
    functionSourceFile: dulwich.mbox
    functionUses: 2
    functionsReached:
    - email.utils.parseaddr
    - line.strip
    - typing.cast.get
    - email.parser.BytesParser
    - <builtin>.enumerate
    - typing.cast.get_payload
    - typing.cast.get_content_charset
    - body.splitlines
    - dulwich.patch._find_scissors_line
    - scissors_pattern.match
    - typing.cast.read
    - <builtin>.open
    - re.compile
    - <builtin>.hasattr
    - email.parser.Parser
    - typing.cast.decode
    - result.strip
    - commit_message.strip
    - <builtin>.isinstance
    - message_lines.append
    - sparser.parsestr
    - patch_lines.append
    - dulwich.patch._munge_subject
    - dulwich.patch.mailinfo
    - body.encode
    - <builtin>.str
    - re.sub
    - bparser.parsebytes
    - subject.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.message.endswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cache.status
    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: cache.diff
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cache.clear
    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: cache.gc
    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: dulwich.mailmap
    functionSourceFile: dulwich.mailmap
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: dulwich.mailmap.parse_identity
    functionSourceFile: dulwich.mailmap
    functionUses: 5
    functionsReached:
    - email_str.rstrip
    - name_str.strip
    - text.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.rsplit
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name_str.strip
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email_str.rstrip
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 53
    functionName: dulwich.mailmap.read_mailmap
    functionSourceFile: dulwich.mailmap
    functionUses: 3
    functionsReached:
    - dulwich.mailmap.parse_identity
    - line.strip
    - name_str.strip
    - line.split
    - email_str.rstrip
    - from_identity.strip
    - text.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: from_identity.strip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febae0018e0>
    argNames:
    - self
    - canonical_identity
    - from_identity
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 110
    functionName: dulwich.mailmap.Mailmap.add_entry
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.stash
    functionSourceFile: dulwich.stash
    functionUses: 0
    functionsReached:
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febaf331430>
    argNames:
    - self
    - repo
    - ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: dulwich.stash.Stash.__init__
    functionSourceFile: dulwich.stash
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 87
    functionName: dulwich.stash.Stash._reflog_path
    functionSourceFile: dulwich.stash
    functionUses: 0
    functionsReached:
    - os.fsdecode
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 90
    functionName: dulwich.stash.Stash.stashes
    functionSourceFile: dulwich.stash
    functionUses: 2
    functionsReached:
    - dulwich.reflog.parse_reflog_line
    - <builtin>.getattr
    - dulwich.reflog.read_reflog
    - begin.split
    - os.fspath
    - dulwich.objects.parse_timezone
    - os.fdopen
    - os.open
    - dulwich.file._GitFile.__init__
    - line.rstrip
    - <builtin>.abs
    - <builtin>.list
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.isinstance
    - <builtin>.int
    - rest.rsplit
    - line.split
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 107
    functionName: dulwich.stash.Stash.drop
    functionSourceFile: dulwich.stash
    functionUses: 1
    functionsReached:
    - dulwich.reflog.parse_reflog_line
    - dulwich.reflog.drop_reflog_entry
    - os.remove
    - f.seek
    - dulwich.reflog.format_reflog_line
    - begin.split
    - dulwich.objects.parse_timezone
    - f.truncate
    - <builtin>.len
    - <builtin>.abs
    - f.tell
    - <builtin>.open
    - dulwich.objects.format_timezone
    - log.append
    - <builtin>.int
    - rest.rsplit
    - f.write
    - <builtin>.str
    - line.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 5
    IfCount: 14
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 118
    functionName: dulwich.stash.Stash.pop
    functionSourceFile: dulwich.stash
    functionUses: 0
    functionsReached:
    - dulwich.object_store.iter_tree_contents
    - dulwich.reflog.parse_reflog_line
    - dulwich.index.validate_path_element_default
    - dulwich.reflog.drop_reflog_entry
    - dulwich.index.validate_path_element_ntfs
    - dulwich.reflog.format_reflog_line
    - dulwich.objects.format_time_entry
    - f.truncate
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - os.stat_result
    - os.unlink
    - f.tell
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - os.makedirs
    - dulwich.index.cleanup_mode
    - log.append
    - dulwich.objects.ShaFile._serialize
    - mergetag.as_raw_string
    - os.path.exists
    - todo.extend
    - dulwich.objects.ShaFile.as_raw_chunks
    - os.mkdir
    - os.remove
    - element.lower
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.list
    - dulwich.objects.ShaFile.as_raw_string
    - dulwich.stash.Stash.drop
    - <builtin>.open
    - normalized.lower
    - os.path.dirname
    - <builtin>.ord
    - dulwich.index.validate_path_element_hfs
    - dulwich.objects.serialize_tree
    - dulwich.objects.Tree.iteritems
    - dulwich.index.index_entry_from_stat
    - <builtin>.int
    - <builtin>.str
    - dulwich.index.build_file_from_blob
    - element.rstrip
    - element.decode
    - <builtin>.reversed
    - os.fsencode
    - blob_normalizer.checkout_normalize
    - begin.split
    - stat.S_ISDIR
    - dulwich.objects.parse_timezone
    - dulwich.index._normalize_path_element_default
    - tree.iteritems
    - dulwich.index._tree_to_fs_path
    - dulwich.index.validate_path
    - <builtin>.abs
    - extra.append
    - subentry.in_path
    - contents.decode
    - target_path.decode
    - f.read
    - <builtin>.isinstance
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - rest.rsplit
    - path.split
    - f.write
    - typing.NewType
    - line.split
    - value.split
    - binascii.unhexlify
    - dulwich._objects.sorted_tree_items
    - todo.pop
    - headers.extend
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - repo_index.write
    - f.seek
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - headers.append
    - os.lstat
    - dulwich.objects.format_timezone
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.objects._format_message
    - dulwich.objects.Blob._serialize
    - dulwich.objects.S_ISGITLINK
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaee6d6a0>
    argNames:
    - src
    - dst
    - target_is_directory
    - dir_fd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 173
    functionName: dulwich.stash.Stash.pop.symlink_fn
    functionSourceFile: dulwich.stash
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - f.write
    - <builtin>.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.stat_result
    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: repo_index.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febadba4d60>
    - <ast.Constant object at 0x7febadba4370>
    - <ast.Constant object at 0x7febadba4b50>
    argNames:
    - self
    - committer
    - author
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 289
    functionName: dulwich.stash.Stash.push
    functionSourceFile: dulwich.stash
    functionUses: 0
    functionsReached:
    - dulwich.index.index_entry_from_path
    - dulwich.index.validate_path_element_default
    - io.BytesIO.readlines
    - dulwich.index.validate_path_element_ntfs
    - dulwich._diff_tree._merge_entries
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - paths_becoming_dirs.add
    - dulwich.objects.format_time_entry
    - dulwich.index._remove_file_with_readonly_handling
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.diff_tree.TreeChange.delete
    - parents_to_check.insert
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - os.unlink
    - repo.path.encode
    - typing.TypedDict.__init__
    - dulwich.config.Config.get_boolean
    - dulwich.config.StackedConfig.get
    - dulwich.object_store.DiskObjectStore.__init__
    - value.strip
    - dulwich.objects.hex_to_sha
    - config.get_boolean
    - dulwich.index._ensure_parent_dir_exists
    - dulwich.repo.Repo.get_config
    - os.makedirs
    - <builtin>.range
    - new_rename_changes.append
    - value.decode
    - dulwich.index.cleanup_mode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - dulwich.objects.ShaFile._serialize
    - dulwich.repo.parse_graftpoints
    - dulwich.index.get_path_element_normalizer
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - mergetag.as_raw_string
    - dulwich.objects.check_hexsha
    - stat.S_ISREG
    - submodule_path.count
    - rename_detector.changes_with_renames
    - submodule_path.encode
    - dulwich.index.blob_from_path_and_stat
    - dulwich.index.iter_fresh_objects
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - dulwich.index.commit_tree.add_tree
    - dulwich.objects.ShaFile.as_raw_chunks
    - todo.extend
    - commondir.read
    - value.startswith
    - element.lower
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - case_only_renames.add
    - dulwich.diff_tree._skip_tree
    - result.extend
    - dulwich.repo.Repo._get_config_condition_matchers
    - logging.warning
    - dulwich.objects.Tree.__init__
    - dulwich.index.blob_from_path_and_mode
    - os.path.isfile
    - subsection.encode
    - dulwich.index._check_file_matches
    - dulwich.config._check_variable_name
    - <builtin>.len
    - stat.S_IFMT
    - sep_corrected_path.decode
    - <builtin>.tuple
    - dulwich.index.detect_case_only_renames.normalize_path
    - extension.lower
    - path.lstrip
    - os.rmdir
    - <builtin>.list
    - dulwich.diff_tree.walk_trees
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - dulwich.objects.ShaFile.as_raw_string
    - <builtin>.open
    - line.lstrip
    - dulwich.repo.BaseRepo.head
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - normalized.lower
    - stat.S_IMODE
    - os.path.dirname
    - dulwich.index.validate_path_element_hfs
    - <builtin>.ord
    - dulwich.objects.Blob.__init__
    - dulwich.diff_tree.tree_changes
    - dulwich.objects.serialize_tree
    - value.endswith
    - dulwich.objects.Tree.iteritems
    - index.commit
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - dulwich.index.index_entry_from_stat
    - backend.get
    - os.listdir
    - <builtin>.int
    - repo.open_index
    - dulwich.index.build_file_from_blob
    - dulwich._diff_tree._is_tree
    - element.rstrip
    - dulwich.index.update_working_tree
    - element.decode
    - dulwich.hooks.PostReceiveShellHook.__init__
    - <builtin>.reversed
    - dulwich.repo.Repo.commondir
    - platform.system
    - os.fsencode
    - dulwich.repo.parse_shared_repository
    - <builtin>.iter
    - blob_normalizer.checkout_normalize
    - dulwich.config._parse_section_header_line
    - path.startswith
    - name.encode
    - stat.S_ISDIR
    - section_dict.items
    - dulwich.index._normalize_path_element_default
    - dulwich.index._tree_to_fs_path
    - path.rsplit
    - cs.startswith
    - dulwich.index.validate_path
    - <builtin>.super
    - blob_obj.as_raw_string
    - object_store.add_object
    - <builtin>.set
    - dulwich.index._transition_to_file
    - blob_obj.raw_length
    - dulwich.config.ConfigDict.items
    - contents.decode
    - ret.append
    - f.read
    - target_path.decode
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - tree_path.replace
    - stat.S_ISLNK
    - dulwich.index._normalize_path_element_hfs
    - dulwich.index.index_entry_from_directory
    - line.endswith
    - normalized_blob.as_raw_string
    - path.split
    - included_paths.copy
    - f.write
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.index._remove_empty_parents
    - value.split
    - os.readlink
    - dulwich._objects.sorted_tree_items
    - binascii.unhexlify
    - filter_path.startswith
    - dulwich.config.ConfigDict.get
    - index.write
    - todo.pop
    - headers.extend
    - current_target.encode
    - dulwich.hooks.PostCommitShellHook.__init__
    - unicodedata.normalize
    - <builtin>.getattr
    - os.path.isdir
    - dulwich.index._check_symlink_matches
    - dulwich.index.detect_case_only_renames
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.objects.Tree._serialize
    - dulwich.objects.git_line
    - dulwich.object_store.DiskObjectStore.from_config
    - headers.append
    - dulwich.objects.Tree.add
    - dulwich.index.iter_fresh_entries
    - os.lstat
    - old_paths_normalized.items
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.index.commit_tree.build_tree
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - dulwich.objects.S_ISGITLINK
    - value.lower
    - dulwich.index._normalize_path_element_ntfs
    - dulwich.repo.BaseRepo.__init__
    - dulwich.index.read_submodule_head
    - dulwich.objects.Commit._serialize
    - os.chmod
    - dulwich.objects.Tag._serialize
    - dulwich.index._transition_to_absent
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.objects._format_message
    - dulwich.index._transition_to_submodule
    - dulwich.objects.Blob._serialize
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.submodule.ensure_submodule_placeholder
    - dulwich.index.pathjoin
    - dulwich.hooks.ShellHook.__init__
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 377
    functionName: dulwich.stash.Stash.__getitem__
    functionSourceFile: dulwich.stash
    functionUses: 0
    functionsReached:
    - dulwich.stash.Stash.stashes
    - dulwich.reflog.parse_reflog_line
    - <builtin>.getattr
    - dulwich.reflog.read_reflog
    - begin.split
    - os.fspath
    - dulwich.objects.parse_timezone
    - os.fdopen
    - os.open
    - dulwich.file._GitFile.__init__
    - line.rstrip
    - <builtin>.abs
    - <builtin>.list
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.isinstance
    - <builtin>.int
    - rest.rsplit
    - line.split
    - <builtin>.reversed
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 381
    functionName: dulwich.stash.Stash.__len__
    functionSourceFile: dulwich.stash
    functionUses: 0
    functionsReached:
    - dulwich.stash.Stash.stashes
    - dulwich.reflog.parse_reflog_line
    - <builtin>.getattr
    - dulwich.reflog.read_reflog
    - begin.split
    - os.fspath
    - dulwich.objects.parse_timezone
    - os.fdopen
    - os.open
    - <builtin>.len
    - dulwich.file._GitFile.__init__
    - line.rstrip
    - <builtin>.abs
    - <builtin>.list
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.isinstance
    - <builtin>.int
    - rest.rsplit
    - line.split
    - <builtin>.reversed
    linkageType: 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: dulwich.diff
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - path
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: dulwich.diff.should_include_path
    functionSourceFile: dulwich.diff
    functionUses: 4
    functionsReached:
    - path.startswith
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: repo.object_store.tree_changes
    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: index.paths
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: processed_paths.add
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stat.S_ISFIFO
    functionSourceFile: stat
    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: stat.S_ISSOCK
    functionSourceFile: stat
    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: tree_path.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.util.find_spec
    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: rich.console.Console
    functionSourceFile: rich
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line_bytes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 610
    functionName: dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    functionSourceFile: dulwich.diff
    functionUses: 21
    functionsReached:
    - line.startswith
    - rich.console.Console.print
    - line_bytes.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: line_bytes.decode
    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: rich.console.Console.print
    functionSourceFile: rich
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 647
    functionName: dulwich.diff.ColorizedDiffStream.close
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached:
    - line.startswith
    - rich.console.Console.print
    - <builtin>.hasattr
    - line_bytes.decode
    - dulwich.diff.ColorizedDiffStream.flush
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 654
    functionName: dulwich.diff.ColorizedDiffStream.closed
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 658
    functionName: dulwich.diff.ColorizedDiffStream.fileno
    functionSourceFile: dulwich.diff
    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: 662
    functionName: dulwich.diff.ColorizedDiffStream.isatty
    functionSourceFile: dulwich.diff
    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: dulwich.diff.ColorizedDiffStream.isatty.<lambda1>
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febadf50970>
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 666
    functionName: dulwich.diff.ColorizedDiffStream.read
    functionSourceFile: dulwich.diff
    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: 670
    functionName: dulwich.diff.ColorizedDiffStream.readable
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febadf50d60>
    argNames:
    - self
    - limit
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 674
    functionName: dulwich.diff.ColorizedDiffStream.readline
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febae4e8b80>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 678
    functionName: dulwich.diff.ColorizedDiffStream.readlines
    functionSourceFile: dulwich.diff
    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 0x7febae4e8a60>
    argNames:
    - self
    - offset
    - whence
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 682
    functionName: dulwich.diff.ColorizedDiffStream.seek
    functionSourceFile: dulwich.diff
    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: 686
    functionName: dulwich.diff.ColorizedDiffStream.seekable
    functionSourceFile: dulwich.diff
    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: 690
    functionName: dulwich.diff.ColorizedDiffStream.tell
    functionSourceFile: dulwich.diff
    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 0x7febaf142e80>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 694
    functionName: dulwich.diff.ColorizedDiffStream.truncate
    functionSourceFile: dulwich.diff
    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: 698
    functionName: dulwich.diff.ColorizedDiffStream.writable
    functionSourceFile: dulwich.diff
    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: 702
    functionName: dulwich.diff.ColorizedDiffStream.__enter__
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 706
    functionName: dulwich.diff.ColorizedDiffStream.__exit__
    functionSourceFile: dulwich.diff
    functionUses: 0
    functionsReached:
    - line.startswith
    - rich.console.Console.print
    - <builtin>.hasattr
    - line_bytes.decode
    - dulwich.diff.ColorizedDiffStream.flush
    - dulwich.diff.ColorizedDiffStream._colorize_and_write_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 715
    functionName: dulwich.diff.ColorizedDiffStream.__iter__
    functionSourceFile: dulwich.diff
    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: 719
    functionName: dulwich.diff.ColorizedDiffStream.__next__
    functionSourceFile: dulwich.diff
    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: dulwich.mbox
    functionSourceFile: dulwich.mbox
    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: output_dir.decode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mailbox.mbox
    functionSourceFile: mailbox
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - file_obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: dulwich.mbox._parse_mbox_from_file
    functionSourceFile: dulwich.mbox
    functionUses: 3
    functionsReached:
    - typing.cast.read
    - mbox.close
    - tempfile.NamedTemporaryFile
    - mailbox.mbox
    - tmp.write
    - os.unlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - message_bytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 223
    functionName: dulwich.mbox._reverse_mboxrd_escaping
    functionSourceFile: dulwich.mbox
    functionUses: 3
    functionsReached:
    - line.startswith
    - result_lines.append
    - message_bytes.split
    - line.lstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message_bytes.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: message_bytes.rstrip
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output_files.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: maildir_path.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mailbox.Maildir
    functionSourceFile: mailbox
    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: md.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: tmp.write
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mbox.close
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message_bytes.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result_lines.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.bisect
    functionSourceFile: dulwich.bisect
    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: 47
    functionName: dulwich.bisect.BisectState.is_active
    functionSourceFile: dulwich.bisect
    functionUses: 0
    functionsReached:
    - os.path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rev.decode
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 417
    functionName: dulwich.bisect.BisectState._get_commit_subject
    functionSourceFile: dulwich.bisect
    functionUses: 12
    functionsReached:
    - <builtin>.isinstance
    - message.split
    - obj.message.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 426
    functionName: dulwich.bisect.BisectState._append_to_log
    functionSourceFile: dulwich.bisect
    functionUses: 12
    functionsReached:
    - <builtin>.open
    - f.write
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: original.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log_content.splitlines
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: arg.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: good_shas.append
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: skip_shas.add
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - bad_sha
    - good_shas
    - skip_shas
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 373
    functionName: dulwich.bisect.BisectState._find_bisect_candidates
    functionSourceFile: dulwich.bisect
    functionUses: 12
    functionsReached:
    - candidates.remove
    - queue.pop
    - queue.append
    - candidates.append
    - visited.add
    - <builtin>.isinstance
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - num_candidates
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 432
    functionName: dulwich.bisect.BisectState._estimate_steps
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: next_commit.decode
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: queue.append
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: candidates.remove
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.message.decode
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: dulwich.web
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - dulwich.server.DictBackend.__init__
    - dulwich.web.make_wsgi_chain
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - optparse.OptionParser
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - os.getcwd
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - trace_value.lower
    - dulwich.objects.valid_hexsha
    - logger.info
    - wsgiref.simple_server.make_server
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - wsgiref.simple_server.make_server.serve_forever
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - _DULWICH_LOGGER.removeHandler
    - <builtin>.open
    - line.lstrip
    - logging.basicConfig
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - os.getpid
    - name.encode
    - section_dict.items
    - os.fdopen
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - parser.add_option
    - dulwich.config.ConfigDict.items
    - ret.append
    - dulwich.web.HTTPGitApplication.__init__
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.web.GunzipFilter.__init__
    - line.endswith
    - dulwich.log_utils._configure_logging_from_trace
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.web.LimitedInputFilter.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dulwich.log_utils.remove_null_handler
    - <builtin>.dict
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.log_utils._get_trace_target
    - sys.stderr.write
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.web.main
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.log_utils.default_logging_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 0x7febaf191e80>
    argNames:
    - self
    - status
    - response_headers
    - exc_info
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 88
    functionName: dulwich.web.StartResponse.__call__
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached: []
    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 0x7febaf399be0>
    - <ast.Constant object at 0x7febaf3997f0>
    argNames:
    - self
    - backend
    - args
    - proto
    - stateless_rpc
    - advertise_refs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 130
    functionName: dulwich.web.HandlerConstructor.__call__
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febaebfa700>
    argNames:
    - now
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 170
    functionName: dulwich.web.cache_forever_headers
    functionSourceFile: dulwich.web
    functionUses: 1
    functionsReached:
    - time.time
    - dulwich.web.date_time_string
    - time.gmtime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1a7d60>
    argNames:
    - timestamp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: dulwich.web.date_time_string
    functionSourceFile: dulwich.web
    functionUses: 2
    functionsReached:
    - time.time
    - time.gmtime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - mat
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: dulwich.web.url_prefix
    functionSourceFile: dulwich.web
    functionUses: 8
    functionsReached:
    - mat.start
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mat.start
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 245
    functionName: dulwich.web.get_repo
    functionSourceFile: dulwich.web
    functionUses: 7
    functionsReached:
    - typing.cast
    - dulwich.web.url_prefix
    - backend.open_repository
    - mat.start
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - f
    - content_type
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 250
    functionName: dulwich.web.send_file
    functionSourceFile: dulwich.web
    functionUses: 3
    functionsReached:
    - f.close
    - req.not_found
    - f.read
    - req.respond
    - req.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: req.not_found
    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: req.respond
    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: req.error
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 277
    functionName: dulwich.web._url_to_path
    functionSourceFile: dulwich.web
    functionUses: 3
    functionsReached:
    - url.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url.replace
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 281
    functionName: dulwich.web.get_text_file
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - backend.open_repository
    - mat.group
    - f.close
    - req.not_found
    - dulwich.web.url_prefix
    - mat.start
    - dulwich.web.send_file
    - f.read
    - req.nocache
    - typing.cast
    - dulwich.web._url_to_path
    - typing.cast.get_named_file
    - req.respond
    - dulwich.web.get_repo
    - url.replace
    - logger.info
    - req.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: req.nocache
    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: mat.group
    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: typing.cast.get_named_file
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 300
    functionName: dulwich.web.get_loose_object
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - req.cache_forever
    - mat.group
    - typing.cast.object_store.contains_loose
    - backend.open_repository
    - req.not_found
    - dulwich.web.url_prefix
    - mat.start
    - typing.cast
    - req.respond
    - dulwich.web.get_repo
    - logger.info
    - req.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: typing.cast.object_store.contains_loose
    functionSourceFile: typing
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.cache_forever
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 329
    functionName: dulwich.web.get_pack_file
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - req.cache_forever
    - mat.group
    - f.close
    - backend.open_repository
    - req.not_found
    - dulwich.web.url_prefix
    - mat.start
    - dulwich.web.send_file
    - f.read
    - typing.cast
    - dulwich.web._url_to_path
    - typing.cast.get_named_file
    - req.respond
    - dulwich.web.get_repo
    - url.replace
    - logger.info
    - req.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 352
    functionName: dulwich.web.get_idx_file
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - req.cache_forever
    - mat.group
    - f.close
    - backend.open_repository
    - req.not_found
    - dulwich.web.url_prefix
    - mat.start
    - dulwich.web.send_file
    - f.read
    - typing.cast
    - dulwich.web._url_to_path
    - typing.cast.get_named_file
    - req.respond
    - dulwich.web.get_repo
    - url.replace
    - logger.info
    - req.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 12
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 375
    functionName: dulwich.web.get_info_refs
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - req.not_found
    - handler.handle
    - req.forbidden
    - urllib.parse.parse_qs
    - dulwich.web.get_repo
    - req.handlers.get
    - backend.open_repository
    - dulwich.web.url_prefix
    - <builtin>.super
    - _TYPE_MAP.get
    - io.BytesIO
    - dulwich.protocol.ReceivableProtocol.__init__
    - typing.cast.get_refs
    - dulwich.server.generate_info_refs
    - handler.proto.write_pkt_line
    - dulwich.objects.object_class
    - mat.start
    - req.nocache
    - refs.items
    - urllib.parse.parse_qs.get
    - <builtin>.sorted
    - <builtin>.isinstance
    - service.encode
    - dulwich.protocol.write_info_refs
    - typing.cast
    - <builtin>.str
    - dulwich.object_store.peel_sha
    - req.respond
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.parse_qs
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.parse_qs.get
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.forbidden
    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: service.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.handlers.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: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 406
    functionName: dulwich.web.get_info_refs.write_fn
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler.proto.write_pkt_line
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 433
    functionName: dulwich.web.get_info_packs
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - dulwich.server.generate_objects_info_packs
    - os.fsencode
    - backend.open_repository
    - dulwich.web.url_prefix
    - mat.start
    - req.nocache
    - typing.cast
    - req.respond
    - dulwich.web.get_repo
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 452
    functionName: dulwich.web._chunk_iter
    functionSourceFile: dulwich.web
    functionUses: 2
    functionsReached:
    - f.readline
    - line.rstrip
    - f.read
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - f
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 465
    functionName: dulwich.web.ChunkReader.__init__
    functionSourceFile: dulwich.web
    functionUses: 1
    functionsReached:
    - <builtin>.int
    - f.read
    - dulwich.web._chunk_iter
    - line.rstrip
    - f.readline
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - input
    - max_bytes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 502
    functionName: dulwich.web._LengthLimitedFile.__init__
    functionSourceFile: dulwich.web
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.UnaryOp object at 0x7febaf8ceb20>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 506
    functionName: dulwich.web._LengthLimitedFile.read
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - dulwich.web._LengthLimitedFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - backend
    - mat
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 525
    functionName: dulwich.web.handle_service_request
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - mat.group
    - req.not_found
    - handler.handle
    - dulwich.web._chunk_iter
    - req.forbidden
    - dulwich.web.get_repo
    - req.handlers.get
    - backend.open_repository
    - dulwich.web.url_prefix
    - <builtin>.super
    - line.rstrip
    - io.BytesIO
    - dulwich.protocol.ReceivableProtocol.__init__
    - dulwich.web.ChunkReader.__init__
    - mat.start
    - f.read
    - req.nocache
    - service.encode
    - f.readline
    - <builtin>.int
    - req.environ.get
    - typing.cast
    - <builtin>.str
    - req.respond
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 555
    functionName: dulwich.web.handle_service_request.write_fn
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req.environ.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5fe400>
    - <ast.Constant object at 0x7febaf5fe970>
    argNames:
    - self
    - environ
    - start_response
    - dumb
    - handlers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 580
    functionName: dulwich.web.HTTPGitRequest.__init__
    functionSourceFile: dulwich.web
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 602
    functionName: dulwich.web.HTTPGitRequest.add_header
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7febadf44490>
    - <ast.Constant object at 0x7febadf44df0>
    - <ast.Constant object at 0x7febadf44a30>
    argNames:
    - self
    - status
    - content_type
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 606
    functionName: dulwich.web.HTTPGitRequest.respond
    functionSourceFile: dulwich.web
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 621
    functionName: dulwich.web.HTTPGitRequest.not_found
    functionSourceFile: dulwich.web
    functionUses: 1
    functionsReached:
    - dulwich.web.HTTPGitRequest.respond
    - message.encode
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 628
    functionName: dulwich.web.HTTPGitRequest.forbidden
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - dulwich.web.HTTPGitRequest.respond
    - message.encode
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 635
    functionName: dulwich.web.HTTPGitRequest.error
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.error
    - message.encode
    - dulwich.web.HTTPGitRequest.respond
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 642
    functionName: dulwich.web.HTTPGitRequest.nocache
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 646
    functionName: dulwich.web.HTTPGitRequest.cache_forever
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - time.time
    - time.gmtime
    - dulwich.web.date_time_string
    - dulwich.web.cache_forever_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: 1
    functionLinenumber: -1
    functionName: dulwich.web.HTTPGitApplication
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febadc0ef10>
    - <ast.Constant object at 0x7febadc0e220>
    - <ast.Constant object at 0x7febaf1a4bb0>
    argNames:
    - self
    - backend
    - dumb
    - handlers
    - fallback_app
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 685
    functionName: dulwich.web.HTTPGitApplication.__init__
    functionSourceFile: dulwich.web
    functionUses: 6
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environ
    - start_response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 709
    functionName: dulwich.web.HTTPGitApplication.__call__
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - dulwich.web.HTTPGitRequest.respond
    - dulwich.web.HTTPGitRequest.__init__
    - message.encode
    - dulwich.web.HTTPGitRequest.not_found
    - logger.info
    - spath.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: spath.search
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - application
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 743
    functionName: dulwich.web.GunzipFilter.__init__
    functionSourceFile: dulwich.web
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environ
    - start_response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 747
    functionName: dulwich.web.GunzipFilter.__call__
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - gzip.GzipFile
    - dulwich.web.HTTPGitApplication.__init__
    - environ.pop
    - <builtin>.dict
    - environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: environ.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: gzip.GzipFile
    functionSourceFile: gzip
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: environ.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - application
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 768
    functionName: dulwich.web.LimitedInputFilter.__init__
    functionSourceFile: dulwich.web
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - environ
    - start_response
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 772
    functionName: dulwich.web.LimitedInputFilter.__call__
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - dulwich.web.GunzipFilter.__init__
    - environ.get
    - <builtin>.int
    - dulwich.web._LengthLimitedFile.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exc_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 810
    functionName: dulwich.web.ServerHandlerLogger.log_exception
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - format
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 822
    functionName: dulwich.web.ServerHandlerLogger.log_message
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 826
    functionName: dulwich.web.ServerHandlerLogger.log_error
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exc_info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 834
    functionName: dulwich.web.WSGIRequestHandlerLogger.log_exception
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - format
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 846
    functionName: dulwich.web.WSGIRequestHandlerLogger.log_message
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 850
    functionName: dulwich.web.WSGIRequestHandlerLogger.log_error
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.error
    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: 854
    functionName: dulwich.web.WSGIRequestHandlerLogger.handle
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - wsgiref.simple_server.WSGIRequestHandler.rfile.readline
    - wsgiref.simple_server.ServerHandler.run
    - wsgiref.simple_server.WSGIRequestHandler.get_environ
    - wsgiref.simple_server.WSGIRequestHandler.parse_request
    - wsgiref.simple_server.WSGIRequestHandler.get_stderr
    - wsgiref.simple_server.WSGIRequestHandler.server.get_app
    - wsgiref.simple_server.ServerHandler.__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: wsgiref.simple_server.WSGIRequestHandler.rfile.readline
    functionSourceFile: wsgiref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsgiref.simple_server.WSGIRequestHandler.parse_request
    functionSourceFile: wsgiref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsgiref.simple_server.WSGIRequestHandler.get_stderr
    functionSourceFile: wsgiref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsgiref.simple_server.WSGIRequestHandler.get_environ
    functionSourceFile: wsgiref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsgiref.simple_server.ServerHandler.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsgiref.simple_server.WSGIRequestHandler.server.get_app
    functionSourceFile: wsgiref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsgiref.simple_server.ServerHandler.run
    functionSourceFile: wsgiref
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - client_address
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 873
    functionName: dulwich.web.WSGIServerLogger.handle_error
    functionSourceFile: dulwich.web
    functionUses: 0
    functionsReached:
    - logger.exception
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Attribute object at 0x7febaf372970>
    argNames:
    - argv
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 880
    functionName: dulwich.web.main
    functionSourceFile: dulwich.web
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.isabs
    - dulwich.server.DictBackend.__init__
    - dulwich.web.make_wsgi_chain
    - os.path.join
    - shutil.rmtree
    - ret._handle_include_directive
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - optparse.OptionParser
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - dulwich.config.ConfigFile.__init__
    - os.getcwd
    - dulwich.worktree.WorkTreeContainer.__init__
    - dulwich.objects.check_hexsha
    - trace_value.lower
    - dulwich.objects.valid_hexsha
    - logger.info
    - wsgiref.simple_server.make_server
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - value.startswith
    - os.environ.get
    - wsgiref.simple_server.make_server.serve_forever
    - os.fspath
    - dulwich.config._check_section_name
    - parser.parse_args
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - _DULWICH_LOGGER.removeHandler
    - <builtin>.open
    - line.lstrip
    - logging.basicConfig
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - os.getpid
    - name.encode
    - section_dict.items
    - os.fdopen
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - parser.add_option
    - dulwich.config.ConfigDict.items
    - ret.append
    - dulwich.web.HTTPGitApplication.__init__
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - dulwich.web.GunzipFilter.__init__
    - line.endswith
    - dulwich.log_utils._configure_logging_from_trace
    - included_paths.copy
    - f.write
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.web.LimitedInputFilter.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - dulwich.log_utils.remove_null_handler
    - <builtin>.dict
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.log_utils._get_trace_target
    - sys.stderr.write
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    - dulwich.log_utils.default_logging_config
    linkageType: 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: dulwich.maintenance
    functionSourceFile: dulwich.maintenance
    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: 1
    functionLinenumber: -1
    functionName: dulwich.maintenance.MaintenanceResult
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - dataclasses.field
    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 0x7febadd48730>
    - <ast.Constant object at 0x7febadd48280>
    argNames:
    - self
    - repo
    - auto
    - progress
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 60
    functionName: dulwich.maintenance.MaintenanceTask.__init__
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: dulwich.maintenance.MaintenanceTask
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - abc.abstractmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: abc.abstractmethod
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: dulwich.maintenance.MaintenanceTask.run
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 85
    functionName: dulwich.maintenance.MaintenanceTask.is_enabled
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - config.get_boolean
    - dulwich.maintenance.MaintenanceTask.default_enabled
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 105
    functionName: dulwich.maintenance.MaintenanceTask.default_enabled
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 119
    functionName: dulwich.maintenance.GcTask.default_enabled
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: dulwich.maintenance.GcTask.run
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - gc.garbage_collect
    linkageType: pythonLinkage
    raised: []
    returnType: 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: 144
    functionName: dulwich.maintenance.CommitGraphTask.default_enabled
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 148
    functionName: dulwich.maintenance.CommitGraphTask.run
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: dulwich.maintenance.LooseObjectsTask.run
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 201
    functionName: dulwich.maintenance.IncrementalRepackTask.run
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    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: 0
    functionLinenumber: 250
    functionName: dulwich.maintenance.PackRefsTask.run
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 271
    functionName: dulwich.maintenance.PrefetchTask.run
    functionSourceFile: dulwich.maintenance
    functionUses: 0
    functionsReached:
    - dulwich.client.SSHGitClient.from_parsedurl
    - dulwich.config.apply_instead_of
    - io.BytesIO.readlines
    - stripped_refs.items
    - dulwich.client.BundleClient.__init__
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - n.startswith
    - dulwich.config.iter_instead_of
    - user_host.rsplit
    - encoded_location.decode
    - dulwich.porcelain._get_reflog_message
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - ref.endswith
    - dulwich.repo.Repo.__init__
    - orig_url.startswith
    - n.endswith
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.client._win32_url_to_path
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - dulwich.protocol.agent_string
    - os.makedirs
    - <builtin>.range
    - value.decode
    - needle.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - dulwich.porcelain.fetch
    - urllib.parse.urlparse
    - contextlib.closing
    - repo.get_config
    - dulwich.worktree.WorkTreeContainer.__init__
    - r.refs.follow
    - dulwich.objects.check_hexsha
    - <builtin>.map
    - dulwich.objects.valid_hexsha
    - dulwich.client.TCPGitClient.__init__
    - gc.maybe_auto_gc
    - path.encode
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - commondir.read
    - dulwich.client.get_transport_and_path
    - os.environ.get
    - value.startswith
    - urllib.parse.urlparse._replace
    - os.fspath
    - active_ref.startswith
    - path.decode
    - dulwich.config._check_section_name
    - config.sections
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - urllib.parse.urlunparse
    - <builtin>.tuple
    - extension.lower
    - path.lstrip
    - dulwich.porcelain._noop_context_manager
    - <builtin>.list
    - dulwich.porcelain.open_repo_closing
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.client.TCPGitClient.from_parsedurl
    - dulwich.repo.Repo.get_named_file
    - ref.startswith
    - <builtin>.open
    - line.lstrip
    - remote_location.encode
    - dulwich.client.LocalGitClient.__init__
    - config_ssh_command.decode
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.client.GitClient.__init__
    - replacement.decode
    - env_action.encode
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - remote_name.encode
    - dulwich.porcelain.get_remote_repo
    - config.get
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - r.get_config_stack
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - dulwich.refs.extract_tag_name
    - cs.startswith
    - <builtin>.super
    - dulwich.client.AbstractHttpGitClient.from_parsedurl
    - <builtin>.set
    - base_parsed._replace
    - dulwich.config.ConfigDict.items
    - dulwich.refs.extract_branch_name
    - ret.append
    - f.read
    - <builtin>.isinstance
    - r.get_config
    - f.readline
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - dulwich.refs._import_remote_refs
    - urllib.parse.urlunparse.rstrip
    - f.write
    - nturl2path.url2pathname
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.client.SSHGitClient.__init__
    - dulwich.hooks.PostCommitShellHook.__init__
    - config.get_multivar
    - os.path.isdir
    - dulwich.client.parse_rsync_url
    - dulwich.client.AbstractHttpGitClient.__init__
    - config.has_section
    - dulwich.client.LocalGitClient.from_parsedurl
    - whitespace.append
    - dulwich.config._parse_string
    - dulwich.porcelain.active_branch
    - dulwich.object_store.DiskObjectStore.from_config
    - dulwich.client._get_transport_and_path_from_url
    - logger.error
    - dulwich.client.BundleClient._is_bundle_file
    - ret.extend
    - ret._values.setdefault
    - dulwich.porcelain.get_branch_remote
    - location.split
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - client.fetch
    - value.lower
    - remotes.add
    - dulwich.repo.BaseRepo.__init__
    - dulwich.protocol.capability_agent
    - <builtin>.bytes
    - <builtin>.issubclass
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.protocol.strip_peeled_refs
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - refs_container.import_refs
    - urllib.parse.unquote
    - dulwich.repo.parse_graftpoints
    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 0x7febadb6a0d0>
    argNames:
    - repo
    - task_filter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 330
    functionName: dulwich.maintenance.get_enabled_tasks
    functionSourceFile: dulwich.maintenance
    functionUses: 3
    functionsReached:
    - task.is_enabled
    - enabled_tasks.append
    - MAINTENANCE_TASKS.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: MAINTENANCE_TASKS.items
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: task.is_enabled
    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: enabled_tasks.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.tasks_run.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: MAINTENANCE_TASKS.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: result.tasks_failed.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: task.run
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.tasks_succeeded.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: schedule_config.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: global_config.get_multivar
    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: existing_repos.remove
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: global_config.set
    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: global_config.write_to_path
    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: dulwich.lfs_server
    functionSourceFile: dulwich.lfs_server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - status_code
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: dulwich.lfs_server.LFSRequestHandler.send_json_response
    functionSourceFile: dulwich.lfs_server
    functionUses: 2
    functionsReached:
    - http.server.BaseHTTPRequestHandler.send_response
    - <builtin>.len
    - http.server.BaseHTTPRequestHandler.wfile.write
    - http.server.BaseHTTPRequestHandler.end_headers
    - <builtin>.str
    - http.server.BaseHTTPRequestHandler.send_header
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.server.BaseHTTPRequestHandler.send_response
    functionSourceFile: http
    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: http.server.BaseHTTPRequestHandler.send_header
    functionSourceFile: http
    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: http.server.BaseHTTPRequestHandler.end_headers
    functionSourceFile: http
    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: http.server.BaseHTTPRequestHandler.wfile.write
    functionSourceFile: http
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 56
    functionName: dulwich.lfs_server.LFSRequestHandler.do_POST
    functionSourceFile: dulwich.lfs_server
    functionUses: 0
    functionsReached:
    - dulwich.lfs_server.LFSRequestHandler.handle_verify
    - dulwich.lfs_server.LFSRequestHandler.send_json_response
    - batch_request.get
    - dulwich.lfs_server.LFSRequestHandler._object_exists
    - http.server.BaseHTTPRequestHandler.path.strip
    - http.server.BaseHTTPRequestHandler.send_response
    - <builtin>.len
    - http.server.BaseHTTPRequestHandler.end_headers
    - http.server.BaseHTTPRequestHandler.rfile.read
    - http.server.BaseHTTPRequestHandler.path.endswith
    - dulwich.lfs_server.LFSRequestHandler.handle_batch
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    - json.loads
    - obj.get
    - http.server.BaseHTTPRequestHandler.wfile.write
    - http.server.BaseHTTPRequestHandler.send_error
    - http.server.BaseHTTPRequestHandler.send_header
    - response_objects.append
    - <builtin>.int
    - <builtin>.str
    - http.server.BaseHTTPRequestHandler.path.startswith
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 79
    functionName: dulwich.lfs_server.LFSRequestHandler.handle_batch
    functionSourceFile: dulwich.lfs_server
    functionUses: 1
    functionsReached:
    - json.loads
    - response_objects.append
    - obj.get
    - <builtin>.int
    - http.server.BaseHTTPRequestHandler.send_response
    - <builtin>.len
    - http.server.BaseHTTPRequestHandler.end_headers
    - http.server.BaseHTTPRequestHandler.wfile.write
    - dulwich.lfs_server.LFSRequestHandler.send_json_response
    - http.server.BaseHTTPRequestHandler.send_error
    - http.server.BaseHTTPRequestHandler.rfile.read
    - <builtin>.str
    - batch_request.get
    - dulwich.lfs_server.LFSRequestHandler._object_exists
    - http.server.BaseHTTPRequestHandler.send_header
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.server.BaseHTTPRequestHandler.path.startswith
    functionSourceFile: http
    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: http.server.BaseHTTPRequestHandler.path.endswith
    functionSourceFile: http
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 205
    functionName: dulwich.lfs_server.LFSRequestHandler.handle_verify
    functionSourceFile: dulwich.lfs_server
    functionUses: 1
    functionsReached:
    - json.loads
    - <builtin>.int
    - http.server.BaseHTTPRequestHandler.send_response
    - <builtin>.len
    - http.server.BaseHTTPRequestHandler.end_headers
    - http.server.BaseHTTPRequestHandler.send_error
    - http.server.BaseHTTPRequestHandler.rfile.read
    - dulwich.lfs_server.LFSRequestHandler._object_exists
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    - http.server.BaseHTTPRequestHandler.path.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: http.server.BaseHTTPRequestHandler.send_error
    functionSourceFile: http
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 65
    functionName: dulwich.lfs_server.LFSRequestHandler.do_PUT
    functionSourceFile: dulwich.lfs_server
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - http.server.BaseHTTPRequestHandler.send_response
    - hashlib.sha256
    - <builtin>.len
    - <builtin>.min
    - http.server.BaseHTTPRequestHandler.send_error
    - http.server.BaseHTTPRequestHandler.end_headers
    - chunks.append
    - dulwich.lfs_server.LFSRequestHandler.handle_upload
    - http.server.BaseHTTPRequestHandler.rfile.read
    - http.server.BaseHTTPRequestHandler.server.lfs_store.write_object
    - http.server.BaseHTTPRequestHandler.path.startswith
    - dulwich.lfs_server.LFSRequestHandler._object_exists
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    - http.server.BaseHTTPRequestHandler.path.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 166
    functionName: dulwich.lfs_server.LFSRequestHandler.handle_upload
    functionSourceFile: dulwich.lfs_server
    functionUses: 1
    functionsReached:
    - http.server.BaseHTTPRequestHandler.send_response
    - <builtin>.int
    - hashlib.sha256
    - <builtin>.len
    - <builtin>.min
    - http.server.BaseHTTPRequestHandler.send_error
    - http.server.BaseHTTPRequestHandler.end_headers
    - chunks.append
    - http.server.BaseHTTPRequestHandler.rfile.read
    - http.server.BaseHTTPRequestHandler.server.lfs_store.write_object
    - dulwich.lfs_server.LFSRequestHandler._object_exists
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    - http.server.BaseHTTPRequestHandler.path.strip
    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: 72
    functionName: dulwich.lfs_server.LFSRequestHandler.do_GET
    functionSourceFile: dulwich.lfs_server
    functionUses: 0
    functionsReached:
    - http.server.BaseHTTPRequestHandler.send_response
    - <builtin>.len
    - http.server.BaseHTTPRequestHandler.end_headers
    - http.server.BaseHTTPRequestHandler.send_error
    - http.server.BaseHTTPRequestHandler.wfile.write
    - dulwich.lfs_server.LFSRequestHandler.handle_download
    - f.read
    - <builtin>.str
    - http.server.BaseHTTPRequestHandler.path.startswith
    - http.server.BaseHTTPRequestHandler.send_header
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    - http.server.BaseHTTPRequestHandler.path.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: dulwich.lfs_server.LFSRequestHandler.handle_download
    functionSourceFile: dulwich.lfs_server
    functionUses: 1
    functionsReached:
    - http.server.BaseHTTPRequestHandler.send_response
    - <builtin>.len
    - http.server.BaseHTTPRequestHandler.end_headers
    - http.server.BaseHTTPRequestHandler.wfile.write
    - http.server.BaseHTTPRequestHandler.send_error
    - f.read
    - <builtin>.str
    - http.server.BaseHTTPRequestHandler.send_header
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    - http.server.BaseHTTPRequestHandler.path.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: http.server.BaseHTTPRequestHandler.rfile.read
    functionSourceFile: http
    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: batch_request.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: obj.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: response_objects.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - oid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 234
    functionName: dulwich.lfs_server.LFSRequestHandler._object_exists
    functionSourceFile: dulwich.lfs_server
    functionUses: 5
    functionsReached:
    - http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.server.BaseHTTPRequestHandler.path.strip
    functionSourceFile: http
    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: http.server.BaseHTTPRequestHandler.server.lfs_store.open_object
    functionSourceFile: http
    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: http.server.BaseHTTPRequestHandler.server.lfs_store.write_object
    functionSourceFile: http
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - format
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 243
    functionName: dulwich.lfs_server.LFSRequestHandler.log_message
    functionSourceFile: dulwich.lfs_server
    functionUses: 0
    functionsReached:
    - <builtin>.super
    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 0x7febaff9f550>
    argNames:
    - self
    - server_address
    - lfs_store
    - log_requests
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 252
    functionName: dulwich.lfs_server.LFSServer.__init__
    functionSourceFile: dulwich.lfs_server
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaeda3460>
    - <ast.Constant object at 0x7febaeda3a00>
    - <ast.Constant object at 0x7febaeda3070>
    - <ast.Constant object at 0x7febaeda3fa0>
    argNames:
    - host
    - port
    - lfs_dir
    - log_requests
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 270
    functionName: dulwich.lfs_server.run_lfs_server
    functionSourceFile: dulwich.lfs_server
    functionUses: 0
    functionsReached:
    - os.path.join
    - dulwich.lfs.LFSStore.__init__
    - os.mkdir
    - os.path.isdir
    - dulwich.lfs_server.LFSServer.__init__
    - <builtin>.super
    - tempfile.mkdtemp
    - dulwich.lfs.LFSStore.create
    linkageType: 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: dulwich.fastexport
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: dulwich.fastexport.split_email
    functionSourceFile: dulwich.fastexport
    functionUses: 2
    functionsReached:
    - email.rstrip
    - text.rsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.rstrip
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - outf
    - store
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: dulwich.fastexport.GitFastExporter.__init__
    functionSourceFile: dulwich.fastexport
    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
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 78
    functionName: dulwich.fastexport.GitFastExporter.print_cmd
    functionSourceFile: dulwich.fastexport
    functionUses: 4
    functionsReached:
    - cmd.__bytes__
    - <builtin>.hasattr
    - cmd.__repr__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cmd.__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: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cmd.__repr__
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 90
    functionName: dulwich.fastexport.GitFastExporter._allocate_marker
    functionSourceFile: dulwich.fastexport
    functionUses: 5
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - blob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 99
    functionName: dulwich.fastexport.GitFastExporter._export_blob
    functionSourceFile: dulwich.fastexport
    functionUses: 4
    functionsReached:
    - <builtin>.str
    - dulwich.fastexport.GitFastExporter._allocate_marker
    - fastimport.commands.BlobCommand
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fastimport.commands.BlobCommand
    functionSourceFile: fastimport
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - blob
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 112
    functionName: dulwich.fastexport.GitFastExporter.emit_blob
    functionSourceFile: dulwich.fastexport
    functionUses: 3
    functionsReached:
    - cmd.__bytes__
    - cmd.__repr__
    - fastimport.commands.BlobCommand
    - dulwich.fastexport.GitFastExporter.print_cmd
    - <builtin>.hasattr
    - dulwich.fastexport.GitFastExporter._allocate_marker
    - <builtin>.str
    - dulwich.fastexport.GitFastExporter._export_blob
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - base_tree
    - new_tree
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 125
    functionName: dulwich.fastexport.GitFastExporter._iter_files
    functionSourceFile: dulwich.fastexport
    functionUses: 2
    functionsReached:
    - cmd.__bytes__
    - fastimport.commands.FileModifyCommand
    - cmd.__repr__
    - dulwich.fastexport.GitFastExporter.emit_blob
    - fastimport.commands.BlobCommand
    - dulwich.fastexport.GitFastExporter.print_cmd
    - <builtin>.hasattr
    - dulwich.fastexport.GitFastExporter._allocate_marker
    - fastimport.commands.FileDeleteCommand
    - <builtin>.str
    - fastimport.commands.FileRenameCommand
    - stat.S_ISDIR
    - <builtin>.isinstance
    - dulwich.fastexport.GitFastExporter._export_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: fastimport.commands.FileDeleteCommand
    functionSourceFile: fastimport
    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: fastimport.commands.FileRenameCommand
    functionSourceFile: fastimport
    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: fastimport.commands.FileModifyCommand
    functionSourceFile: fastimport
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaf3a2e50>
    argNames:
    - self
    - commit
    - ref
    - base_tree
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 154
    functionName: dulwich.fastexport.GitFastExporter._export_commit
    functionSourceFile: dulwich.fastexport
    functionUses: 1
    functionsReached:
    - dulwich.fastexport.GitFastExporter.emit_blob
    - fastimport.commands.FileDeleteCommand
    - stat.S_ISDIR
    - dulwich.fastexport.GitFastExporter._export_blob
    - text.rsplit
    - dulwich.fastexport.GitFastExporter._iter_files
    - dulwich.fastexport.GitFastExporter.print_cmd
    - dulwich.fastexport.GitFastExporter._allocate_marker
    - fastimport.commands.FileRenameCommand
    - <builtin>.list
    - fastimport.commands.FileModifyCommand
    - <builtin>.hasattr
    - fastimport.commands.CommitCommand
    - <builtin>.isinstance
    - cmd.__bytes__
    - email.rstrip
    - cmd.__repr__
    - fastimport.commands.BlobCommand
    - dulwich.fastexport.split_email
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fastimport.commands.CommitCommand
    functionSourceFile: fastimport
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7febaee6a310>
    argNames:
    - self
    - commit
    - ref
    - base_tree
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 184
    functionName: dulwich.fastexport.GitFastExporter.emit_commit
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - dulwich.fastexport.GitFastExporter.emit_blob
    - fastimport.commands.FileDeleteCommand
    - stat.S_ISDIR
    - dulwich.fastexport.GitFastExporter._export_blob
    - text.rsplit
    - dulwich.fastexport.GitFastExporter._iter_files
    - dulwich.fastexport.GitFastExporter.print_cmd
    - dulwich.fastexport.GitFastExporter._allocate_marker
    - dulwich.fastexport.GitFastExporter._export_commit
    - fastimport.commands.FileRenameCommand
    - <builtin>.list
    - fastimport.commands.FileModifyCommand
    - <builtin>.hasattr
    - fastimport.commands.CommitCommand
    - <builtin>.isinstance
    - cmd.__bytes__
    - email.rstrip
    - cmd.__repr__
    - fastimport.commands.BlobCommand
    - dulwich.fastexport.split_email
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaee6ab80>
    - <ast.Constant object at 0x7febaee6a250>
    - <ast.Constant object at 0x7febaee6ae80>
    argNames:
    - self
    - repo
    - params
    - verbose
    - outf
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 207
    functionName: dulwich.fastexport.GitImportProcessor.__init__
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - fastimport.processor.ImportProcessor.__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: fastimport.processor.ImportProcessor.__init__
    functionSourceFile: fastimport
    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
    - objectish
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 228
    functionName: dulwich.fastexport.GitImportProcessor.lookup_object
    functionSourceFile: dulwich.fastexport
    functionUses: 2
    functionsReached:
    - typing.NewType
    - objectish.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: objectish.startswith
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 241
    functionName: dulwich.fastexport.GitImportProcessor.import_stream
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - fastimport.parser.ImportParser
    - fastimport.processor.ImportProcessor.process
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fastimport.parser.ImportParser
    functionSourceFile: fastimport
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fastimport.processor.ImportProcessor.process
    functionSourceFile: fastimport
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 254
    functionName: dulwich.fastexport.GitImportProcessor.blob_handler
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - obj.set_raw_string
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.ShaFile.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 261
    functionName: dulwich.fastexport.GitImportProcessor.checkpoint_handler
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 6
    IfCount: 14
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 264
    functionName: dulwich.fastexport.GitImportProcessor.commit_handler
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - todo.pop
    - dulwich.object_store.iter_tree_contents
    - author_email.encode
    - dulwich.index.commit_tree.add_tree
    - todo.extend
    - committer_email.encode
    - obj.set_raw_string
    - author_name.encode
    - stat.S_ISDIR
    - dulwich.fastexport.GitImportProcessor.lookup_object
    - commit.parents.append
    - tree.iteritems
    - dulwich.fastexport.GitImportProcessor._reset_base
    - dulwich.objects.Tree.__init__
    - path.rsplit
    - dulwich.objects.ShaFile.from_string
    - dulwich.objects.Tree.add
    - <builtin>.super
    - committer_name.encode
    - objectish.startswith
    - dulwich.objects.ShaFile.__init__
    - dulwich.objects.Commit.__init__
    - object_store.add_object
    - extra.append
    - cmd.iter_files
    - subentry.in_path
    - dulwich.index.commit_tree.build_tree
    - dulwich.index.pathsplit
    - dulwich.index.commit_tree
    - <builtin>.isinstance
    - <builtin>.int
    - typing.NewType
    - <builtin>.str
    - dulwich.index.pathjoin
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: author_name.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: author_email.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: committer_name.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: committer_email.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - commit_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 350
    functionName: dulwich.fastexport.GitImportProcessor._reset_base
    functionSourceFile: dulwich.fastexport
    functionUses: 2
    functionsReached:
    - subentry.in_path
    - todo.pop
    - dulwich.object_store.iter_tree_contents
    - todo.extend
    - stat.S_ISDIR
    - tree.iteritems
    - <builtin>.isinstance
    - extra.append
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cmd.iter_files
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commit.parents.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 347
    functionName: dulwich.fastexport.GitImportProcessor.progress_handler
    functionSourceFile: dulwich.fastexport
    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
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 370
    functionName: dulwich.fastexport.GitImportProcessor.reset_handler
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - dulwich.fastexport.GitImportProcessor._reset_base
    - subentry.in_path
    - todo.pop
    - dulwich.object_store.iter_tree_contents
    - todo.extend
    - typing.NewType
    - objectish.startswith
    - stat.S_ISDIR
    - tree.iteritems
    - <builtin>.isinstance
    - extra.append
    - dulwich.fastexport.GitImportProcessor.lookup_object
    - <builtin>.reversed
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 379
    functionName: dulwich.fastexport.GitImportProcessor.tag_handler
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - dulwich.objects.Tag.__init__
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 388
    functionName: dulwich.fastexport.GitImportProcessor.feature_handler
    functionSourceFile: dulwich.fastexport
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - cmd.feature_name.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: cmd.feature_name.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.__main__
    functionSourceFile: dulwich.__main__
    functionUses: 0
    functionsReached:
    - parser.print_help
    - <builtin>.getattr
    - os.environ.get
    - os.path.isdir
    - os.getpid
    - sys.stdout.isatty
    - os.fdopen
    - os.path.isabs
    - dulwich.cli._should_auto_flush
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - parser.parse_known_args
    - argparse.ArgumentParser
    - sys.stderr.write
    - sys.exit
    - signal.signal
    - dulwich.cli.AutoFlushTextIOWrapper.__init__
    - dulwich.cli.enable_pager
    - parser.add_argument
    - logging.basicConfig
    - dulwich.cli.main
    - <builtin>.hasattr
    - logging.fatal
    - <builtin>.sorted
    - <builtin>.isinstance
    - dulwich.cli.AutoFlushTextIOWrapper.env
    - <builtin>.int
    - dulwich.cli.disable_pager
    - trace_value.lower
    - dulwich.log_utils._configure_logging_from_trace
    - commands.keys
    - dulwich.cli._main
    - sys.stderr.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.cloud.gcs
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaee6a8e0>
    argNames:
    - self
    - bucket
    - subpath
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: dulwich.cloud.gcs.GcsObjectStore.__init__
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: dulwich.cloud.gcs.GcsObjectStore.__repr__
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: dulwich.cloud.gcs.GcsObjectStore._remove_pack_by_name
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - posixpath.join
    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: 72
    functionName: dulwich.cloud.gcs.GcsObjectStore._iter_pack_names
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - posixpath.basename
    - posixpath.splitext
    - packs.items
    - packs.setdefault
    - <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: posixpath.basename
    functionSourceFile: posixpath
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: posixpath.splitext
    functionSourceFile: posixpath
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packs.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packs.items
    functionSourceFile: <builtin>
    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
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 81
    functionName: dulwich.cloud.gcs.GcsObjectStore._load_pack_data
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 1
    functionsReached:
    - <builtin>.min
    - <builtin>.getattr
    - f.seek
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - posixpath.join
    - dulwich.pack.read_pack_header
    - io.BytesIO.seek
    - io.BytesIO.read
    - os.open
    - os.fdopen
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - tempfile.SpooledTemporaryFile
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - typing.cast
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - b.download_to_file
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.download_to_file
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 92
    functionName: dulwich.cloud.gcs.GcsObjectStore._load_pack_index
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 1
    functionsReached:
    - mmap.mmap
    - f.seek
    - io.BytesIO.read
    - posixpath.join
    - struct.unpack_from
    - dulwich.pack.load_pack_index_file
    - struct.unpack
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.fileno
    - tempfile.SpooledTemporaryFile
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - dulwich.pack.PackIndex3.__init__
    - b.download_to_file
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 99
    functionName: dulwich.cloud.gcs.GcsObjectStore._get_pack
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - dulwich.pack.Pack.from_lazy_objects
    - dulwich.pack.Pack.__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: 6
    functionLinenumber: -1
    functionName: dulwich.cloud.gcs.GcsObjectStore._get_pack.<lambda1>
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - <builtin>.min
    - <builtin>.getattr
    - f.seek
    - dulwich.cloud.gcs.GcsObjectStore._load_pack_data
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - posixpath.join
    - io.BytesIO.read
    - os.open
    - os.fdopen
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - <builtin>.max
    - tempfile.SpooledTemporaryFile
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - typing.cast.read
    - <builtin>.open
    - dulwich.file.GitFile
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - typing.cast
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - b.download_to_file
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: dulwich.cloud.gcs.GcsObjectStore._get_pack.<lambda2>
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - mmap.mmap
    - f.seek
    - io.BytesIO.read
    - posixpath.join
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - struct.unpack
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.fileno
    - tempfile.SpooledTemporaryFile
    - ret.append
    - <builtin>.range
    - dulwich.cloud.gcs.GcsObjectStore._load_pack_index
    - dulwich.file._GitFile.fileno
    - os.fstat
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - dulwich.pack.PackIndex3.__init__
    - b.download_to_file
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - basename
    - pack_file
    - index_file
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: dulwich.cloud.gcs.GcsObjectStore._upload_pack
    functionSourceFile: dulwich.cloud.gcs
    functionUses: 0
    functionsReached:
    - datablob.upload_from_file
    - idxblob.upload_from_file
    - posixpath.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: idxblob.upload_from_file
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datablob.upload_from_file
    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: dulwich.cloud
    functionSourceFile: dulwich.cloud
    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: dulwich.contrib.paramiko_vendor
    functionSourceFile: dulwich.contrib.paramiko_vendor
    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
    - client
    - channel
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: dulwich.contrib.paramiko_vendor._ParamikoWrapper.__init__
    functionSourceFile: dulwich.contrib.paramiko_vendor
    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: 64
    functionName: dulwich.contrib.paramiko_vendor._ParamikoWrapper.stderr
    functionSourceFile: dulwich.contrib.paramiko_vendor
    functionUses: 0
    functionsReached:
    - typing.cast
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: dulwich.contrib.paramiko_vendor._ParamikoWrapper.can_read
    functionSourceFile: dulwich.contrib.paramiko_vendor
    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
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 80
    functionName: dulwich.contrib.paramiko_vendor._ParamikoWrapper.write
    functionSourceFile: dulwich.contrib.paramiko_vendor
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febadf8f970>
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: dulwich.contrib.paramiko_vendor._ParamikoWrapper.read
    functionSourceFile: dulwich.contrib.paramiko_vendor
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - dulwich.contrib.paramiko_vendor._ParamikoWrapper.read
    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: 110
    functionName: dulwich.contrib.paramiko_vendor._ParamikoWrapper.close
    functionSourceFile: dulwich.contrib.paramiko_vendor
    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
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 120
    functionName: dulwich.contrib.paramiko_vendor.ParamikoSSHVendor.__init__
    functionSourceFile: dulwich.contrib.paramiko_vendor
    functionUses: 0
    functionsReached:
    - <builtin>.open
    - paramiko.config.SSHConfig
    - os.path.expanduser
    - ssh_config.parse
    - dulwich.contrib.paramiko_vendor.ParamikoSSHVendor._load_ssh_config
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 129
    functionName: dulwich.contrib.paramiko_vendor.ParamikoSSHVendor._load_ssh_config
    functionSourceFile: dulwich.contrib.paramiko_vendor
    functionUses: 1
    functionsReached:
    - <builtin>.open
    - paramiko.config.SSHConfig
    - os.path.expanduser
    - ssh_config.parse
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: paramiko.config.SSHConfig
    functionSourceFile: paramiko
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssh_config.parse
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 7
    IfCount: 12
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febafdbcb80>
    - <ast.Constant object at 0x7febafdbce50>
    - <ast.Constant object at 0x7febafdbcdf0>
    - <ast.Constant object at 0x7febafdbcca0>
    - <ast.Constant object at 0x7febafdbc1f0>
    - <ast.Constant object at 0x7febafdbc250>
    argNames:
    - self
    - host
    - command
    - username
    - port
    - password
    - pkey
    - key_filename
    - protocol_version
    - kwargs
    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: 144
    functionName: dulwich.contrib.paramiko_vendor.ParamikoSSHVendor.run_command
    functionSourceFile: dulwich.contrib.paramiko_vendor
    functionUses: 0
    functionsReached:
    - client.connect
    - <builtin>.int
    - host_config.get
    - client.get_transport
    - connection_kwargs.update
    - paramiko.client.MissingHostKeyPolicy
    - channel.exec_command
    - transport.open_session
    - paramiko.SSHClient
    - client.set_missing_host_key_policy
    - <builtin>.isinstance
    - dulwich.contrib.paramiko_vendor._ParamikoWrapper.__init__
    - channel.set_environment_variable
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: paramiko.SSHClient
    functionSourceFile: paramiko
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host_config.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: connection_kwargs.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: paramiko.client.MissingHostKeyPolicy
    functionSourceFile: paramiko
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.set_missing_host_key_policy
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.connect
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.get_transport
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: transport.open_session
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: channel.set_environment_variable
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: channel.exec_command
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: dulwich.contrib.swift
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.main
    - <builtin>.print
    - <builtin>.len
    - commands.keys
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 7
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: dulwich.contrib.swift.PackInfoMissingObjectFinder.next
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - item.path.encode
    - name.encode
    - dulwich.object_store.MissingObjectFinder.add_todo
    - <builtin>.isinstance
    - obj.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: item.path.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febae651670>
    - <ast.Constant object at 0x7febae651a60>
    argNames:
    - path
    - file
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: dulwich.contrib.swift.load_conf
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - configparser.ConfigParser.read
    - configparser.ConfigParser.read_file
    - os.path.isfile
    - configparser.ConfigParser
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: configparser.ConfigParser
    functionSourceFile: configparser
    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: configparser.ConfigParser.read_file
    functionSourceFile: configparser
    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: configparser.ConfigParser.read
    functionSourceFile: configparser
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - scon
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 197
    functionName: dulwich.contrib.swift.swift_load_pack_index
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - mmap.mmap
    - io.BytesIO.read
    - dulwich.pack.load_pack_index_file
    - struct.unpack_from
    - struct.unpack
    - <builtin>.len
    - <builtin>.super
    - io.BytesIO.fileno
    - io.BytesIO
    - scon.get_object
    - ret.append
    - <builtin>.range
    - dulwich.file._GitFile.fileno
    - os.fstat
    - <builtin>.isinstance
    - dulwich.pack.PackIndex2.__init__
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack._load_file_contents
    - dulwich.pack.PackIndex1.__init__
    - dulwich.pack.PackIndex3.__init__
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scon.get_object
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - pack_data
    - pack_index
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 213
    functionName: dulwich.contrib.swift.pack_info_create
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - stat.S_IFMT
    - zlib.compress
    - dulwich.pack.Pack.__init__
    - <builtin>.isinstance
    - ret.check_length_and_checksum
    - stat.S_ISDIR
    - dulwich.pack.Pack.from_objects
    - dulwich.objects.S_ISGITLINK
    - tree_obj.items
    - pack.iterobjects
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tree_obj.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf2a6250>
    - <ast.Constant object at 0x7febaf2a69a0>
    argNames:
    - filename
    - scon
    - file
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 252
    functionName: dulwich.contrib.swift.load_pack_info
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - json.loads
    - f.close
    - zlib.decompress
    - <builtin>.hasattr
    - scon.get_object
    - f.read
    - typing.cast
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - root
    - conf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 293
    functionName: dulwich.contrib.swift.SwiftConnector.__init__
    functionSourceFile: dulwich.contrib.swift
    functionUses: 4
    functionsReached:
    - auth_httpclient.request
    - json.loads
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v2
    - urllib.parse.urlparse
    - <builtin>.next
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v1
    - configparser.ConfigParser.getint
    - path.endswith
    - configparser.ConfigParser.get
    - <builtin>.str
    - ret.read
    - geventhttpclient.HTTPClient.from_url
    - json.dumps
    - posixpath.join
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: configparser.ConfigParser.get
    functionSourceFile: configparser
    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: configparser.ConfigParser.getint
    functionSourceFile: configparser
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 334
    functionName: dulwich.contrib.swift.SwiftConnector.swift_auth_v1
    functionSourceFile: dulwich.contrib.swift
    functionUses: 5
    functionsReached:
    - auth_httpclient.request
    - geventhttpclient.HTTPClient.from_url
    - urllib.parse.urlparse
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 365
    functionName: dulwich.contrib.swift.SwiftConnector.swift_auth_v2
    functionSourceFile: dulwich.contrib.swift
    functionUses: 5
    functionsReached:
    - auth_httpclient.request
    - json.loads
    - urllib.parse.urlparse
    - <builtin>.next
    - path.endswith
    - ret.read
    - geventhttpclient.HTTPClient.from_url
    - json.dumps
    - posixpath.join
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: geventhttpclient.HTTPClient.from_url
    functionSourceFile: geventhttpclient
    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: auth_httpclient.request
    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: ret.read
    functionSourceFile: <builtin>
    functionUses: 94
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 412
    functionName: dulwich.contrib.swift.SwiftConnector.test_root_exists
    functionSourceFile: dulwich.contrib.swift
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 426
    functionName: dulwich.contrib.swift.SwiftConnector.create_root
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.test_root_exists
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 439
    functionName: dulwich.contrib.swift.SwiftConnector.get_container_objects
    functionSourceFile: dulwich.contrib.swift
    functionUses: 29
    functionsReached:
    - json.loads
    - typing.cast
    - ret.read
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 457
    functionName: dulwich.contrib.swift.SwiftConnector.get_object_stat
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - ret.items
    - header.lower
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.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: header.lower
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - content
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 478
    functionName: dulwich.contrib.swift.SwiftConnector.put_object
    functionSourceFile: dulwich.contrib.swift
    functionUses: 15
    functionsReached:
    - io.BytesIO.seek
    - <builtin>.len
    - <builtin>.str
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 492
    functionName: dulwich.contrib.swift.SwiftConnector.put_object._send
    functionSourceFile: dulwich.contrib.swift
    functionUses: 16
    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 0x7febaeeca4f0>
    argNames:
    - self
    - name
    - range
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 508
    functionName: dulwich.contrib.swift.SwiftConnector.get_object
    functionSourceFile: dulwich.contrib.swift
    functionUses: 11
    functionsReached:
    - typing.cast
    - ret.read
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 535
    functionName: dulwich.contrib.swift.SwiftConnector.del_object
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 550
    functionName: dulwich.contrib.swift.SwiftConnector.del_root
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - json.loads
    - dulwich.contrib.swift.SwiftConnector.del_object
    - typing.cast
    - ret.read
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    linkageType: pythonLinkage
    raised:
    - SwiftException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - scon
    - filename
    - pack_length
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 577
    functionName: dulwich.contrib.swift.SwiftPackReader.__init__
    functionSourceFile: dulwich.contrib.swift
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7febaf0802e0>
    argNames:
    - self
    - more
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 593
    functionName: dulwich.contrib.swift.SwiftPackReader._read
    functionSourceFile: dulwich.contrib.swift
    functionUses: 52
    functionsReached:
    - <builtin>.isinstance
    - ret.read
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 627
    functionName: dulwich.contrib.swift.SwiftPackReader.seek
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - ret.read
    - <builtin>.min
    - dulwich.contrib.swift.SwiftPackReader._read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 637
    functionName: dulwich.contrib.swift.SwiftPackReader.read_checksum
    functionSourceFile: dulwich.contrib.swift
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    - ret.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - scon
    - filename
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 658
    functionName: dulwich.contrib.swift.SwiftPackData.__init__
    functionSourceFile: dulwich.contrib.swift
    functionUses: 2
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.lru_cache.LRUSizeCache.__init__
    - <builtin>.min
    - hashlib.sha1.update
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - dulwich.pack.read_pack_header
    - io.BytesIO.seek
    - struct.unpack_from
    - <builtin>.len
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - dulwich.lru_cache.LRUSizeCache._update_max_size
    - <builtin>.max
    - dulwich.lru_cache.LRUCache._remove_lru
    - io.BytesIO
    - typing.cast.read
    - dulwich.lru_cache._LRUNode.run_cleanup
    - <builtin>.range
    - dulwich.lru_cache.LRUCache._remove_node
    - <builtin>.isinstance
    - dulwich.contrib.swift.SwiftPackReader.read
    - ret.read
    - <builtin>.bytes
    - <builtin>.int
    - dulwich.lru_cache.LRUCache.__init__
    - <builtin>.bytearray
    - tempfile.SpooledTemporaryFile.read
    - io.BytesIO.tell
    - typing.cast
    - <builtin>.str
    - dulwich.lru_cache.LRUCache._update_max_cache
    - dulwich.pack.PackStreamReader._read
    - dulwich.pack.PackStreamReader.read
    - dulwich.lru_cache.LRUCache.cleanup
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 680
    functionName: dulwich.contrib.swift.SwiftPackData.get_object_at
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - <builtin>.min
    - decomp_obj.decompress
    - hashlib.sha1.update
    - dulwich.pack.unpack_object
    - dulwich.pack.PackStreamReader._buf_len
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.read
    - io.BytesIO.seek
    - decomp_chunks.append
    - <builtin>.len
    - zlib.decompressobj
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - <builtin>.super
    - <builtin>.max
    - dulwich.pack.take_msb_bytes
    - io.BytesIO
    - <builtin>.sum
    - dulwich.contrib.swift.SwiftPackReader.seek
    - typing.cast.read
    - <builtin>.ord
    - ret.append
    - <builtin>.range
    - <builtin>.isinstance
    - dulwich.pack.UnpackedObject.__init__
    - ret.read
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.PackStreamReader.recv
    - <builtin>.bytes
    - <builtin>.bytearray
    - comp_chunks.append
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - io.BytesIO.tell
    - unpacked._obj
    - <builtin>.str
    - dulwich.pack.PackStreamReader._read
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 721
    functionName: dulwich.contrib.swift.SwiftPack.__init__
    functionSourceFile: dulwich.contrib.swift
    functionUses: 26
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: dulwich.contrib.swift.SwiftPack.__init__.<lambda1>
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - json.loads
    - dulwich.contrib.swift.load_pack_info
    - f.close
    - zlib.decompress
    - <builtin>.hasattr
    - scon.get_object
    - f.read
    - typing.cast
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 740
    functionName: dulwich.contrib.swift.SwiftPack.pack_info
    functionSourceFile: dulwich.contrib.swift
    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
    - scon
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 754
    functionName: dulwich.contrib.swift.SwiftObjectStore.__init__
    functionSourceFile: dulwich.contrib.swift
    functionUses: 4
    functionsReached:
    - <builtin>.super
    - posixpath.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sha
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 786
    functionName: dulwich.contrib.swift.SwiftObjectStore.pack_info_get
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - typing.cast
    - pack_info.get
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pack_info.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7febaf1659d0>
    argNames:
    - self
    - heads
    - common
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 803
    functionName: dulwich.contrib.swift.SwiftObjectStore._collect_ancestors
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - queue.pop
    - dulwich.contrib.swift.SwiftObjectStore._collect_ancestors._find_parents
    - <builtin>.hasattr
    - bases.add
    - typing.cast
    - commits.add
    - queue.extend
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - commit
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 809
    functionName: dulwich.contrib.swift.SwiftObjectStore._collect_ancestors._find_parents
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - typing.cast
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 9
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 844
    functionName: dulwich.contrib.swift.SwiftObjectStore.add_pack.commit
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.pack.SHA1Writer.write
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - dulwich.pack.PackData.get_stored_checksum
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - posixpath.join
    - io.BytesIO.seek
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - dulwich.pack.read_pack_header
    - os.open
    - prev_pack.close
    - struct.unpack_from
    - dulwich.contrib.swift.SwiftPackReader._read
    - os.fdopen
    - <builtin>.len
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - tempfile.SpooledTemporaryFile.seek
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - hashlib.sha1.digest
    - dulwich.pack.Pack.check_length_and_checksum
    - typing.cast.read
    - <builtin>.open
    - PackIndexer.for_pack_data
    - hashlib.sha1.hexdigest
    - dulwich.pack.write_pack_index_v2
    - io.BytesIO.write_sha
    - <builtin>.ord
    - dulwich.file.GitFile
    - dulwich.contrib.swift.SwiftPackData.get_stored_checksum
    - collections.defaultdict
    - <builtin>.range
    - dulwich.contrib.swift.SwiftPackReader.read_checksum
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - largetable.append
    - ret.read
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.pack.PackData.iterentries
    - <builtin>.bytes
    - io.BytesIO.write
    - dulwich.pack.PackData.sorted_entries
    - dulwich.pack.iter_sha1
    - <builtin>.bytearray
    - dulwich.contrib.swift.SwiftConnector.put_object
    - tempfile.SpooledTemporaryFile.read
    - dulwich.contrib.swift.SwiftPack.__init__
    - io.BytesIO.tell
    - typing.cast
    - <builtin>.str
    - dulwich.pack.PackStreamReader._read
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.file._GitFile.read
    linkageType: 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: 875
    functionName: dulwich.contrib.swift.SwiftObjectStore.add_pack.abort
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 878
    functionName: dulwich.contrib.swift.SwiftObjectStore.add_pack.commit_wrapper
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.SwiftPackReader.__init__
    - dulwich.pack.SHA1Writer.write
    - hashlib.sha1
    - dulwich.file._GitFile.write
    - dulwich.pack.PackData.get_stored_checksum
    - <builtin>.getattr
    - <builtin>.min
    - hashlib.sha1.update
    - os.fspath
    - dulwich.pack.PackStreamReader._buf_len
    - io.BytesIO.read
    - posixpath.join
    - io.BytesIO.seek
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - dulwich.pack.read_pack_header
    - os.open
    - prev_pack.close
    - struct.unpack_from
    - dulwich.contrib.swift.SwiftObjectStore.add_pack.commit
    - dulwich.contrib.swift.SwiftPackReader._read
    - <builtin>.len
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.PackStreamCopier._read
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - tempfile.SpooledTemporaryFile.seek
    - os.fdopen
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - hashlib.sha1.digest
    - dulwich.pack.Pack.check_length_and_checksum
    - typing.cast.read
    - <builtin>.open
    - PackIndexer.for_pack_data
    - hashlib.sha1.hexdigest
    - dulwich.pack.write_pack_index_v2
    - io.BytesIO.write_sha
    - <builtin>.ord
    - dulwich.file.GitFile
    - dulwich.contrib.swift.SwiftPackData.get_stored_checksum
    - collections.defaultdict
    - <builtin>.range
    - dulwich.contrib.swift.SwiftPackReader.read_checksum
    - struct.pack
    - <builtin>.sorted
    - <builtin>.isinstance
    - largetable.append
    - ret.read
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.SHA1Writer.__init__
    - dulwich.pack.PackData.iterentries
    - <builtin>.bytes
    - io.BytesIO.write
    - dulwich.pack.PackData.sorted_entries
    - dulwich.pack.iter_sha1
    - <builtin>.bytearray
    - dulwich.contrib.swift.SwiftConnector.put_object
    - tempfile.SpooledTemporaryFile.read
    - dulwich.contrib.swift.SwiftPack.__init__
    - io.BytesIO.tell
    - typing.cast
    - <builtin>.str
    - dulwich.pack.PackStreamReader._read
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - typing.cast.seek
    - <builtin>.enumerate
    - dulwich.pack.SHA1Writer.write_sha
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - obj
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 884
    functionName: dulwich.contrib.swift.SwiftObjectStore.add_object
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    - hashlib.sha1
    - dulwich.object_store.PackBasedObjectStore.add_objects
    - compressor.compress
    - dulwich.pack.PackChunkGenerator.__iter__
    - hashlib.sha1.update
    - <builtin>.type
    - dulwich.pack.PackChunkGenerator.__init__
    - object.as_raw_chunks
    - os.fdopen
    - <builtin>.callable
    - unpacked.sha
    - <builtin>.len
    - o.sha
    - dulwich.object_store.DiskObjectStore.add_pack
    - dulwich.pack.full_unpacked_object
    - dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn
    - dulwich.contrib.swift.SwiftObjectStore.add_pack
    - dulwich.server.UploadPackHandler._start_pack_send_phase.write_data
    - io.BytesIO
    - <builtin>.sum
    - hashlib.sha1.digest
    - dulwich.pack.pack_object_header
    - compressor.flush
    - dulwich.pack.write_pack_data
    - dulwich.pack.PackChunkGenerator._pack_data_chunks
    - header.append
    - ret.insert
    - o.as_raw_chunks
    - struct.pack
    - header.extend
    - dulwich.object_store.PackBasedObjectStore.add_pack_data
    - dulwich.pack.UnpackedObject.__init__
    - os.chmod
    - <builtin>.isinstance
    - dulwich.pack.PackChunkGenerator.sha1digest
    - <builtin>.bytes
    - dulwich.pack.pack_header_chunks
    - <builtin>.bytearray
    - tempfile.mkstemp
    - typing.cast.write
    - dulwich.pack.pack_object_chunks
    - zlib.compressobj
    - typing.cast
    - binascii.crc32
    - <builtin>.map
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 896
    functionName: dulwich.contrib.swift.SwiftObjectStore._pack_cache_stale
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - read_all
    - read_some
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 902
    functionName: dulwich.contrib.swift.SwiftObjectStore.add_thin_pack
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - new_packs.append
    - dulwich.midx.MultiPackIndex._get_oid
    - zlib.compress
    - hashlib.sha1.update
    - decomp_obj.decompress
    - ret.check_length_and_checksum
    - dulwich.pack.unpack_object
    - object.as_raw_chunks
    - io.BytesIO.read
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - zlib.decompressobj
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_header
    - io.BytesIO.fileno
    - os.fsdecode
    - os.unlink
    - dulwich.object_store.DiskObjectStore.get_midx
    - f.tell
    - warnings.warn
    - dulwich.objects.hex_to_sha
    - json.loads
    - dulwich.objects.Blob.from_path
    - dulwich.pack.write_pack_index_v2
    - collections.defaultdict
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.contrib.swift.pack_info_create
    - dulwich.pack.UnpackedObject.__init__
    - dulwich.contrib.swift.SwiftPackReader.read
    - dulwich.pack.PackStreamReader.recv
    - io.BytesIO.write
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.load_midx_file
    - dulwich.pack._load_file_contents
    - delta_stack.append
    - binascii.crc32
    - <builtin>.map
    - dulwich.pack.PackIndex3.__init__
    - json.dumps
    - name.endswith
    - mmap.mmap
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - entries.sort
    - dulwich.pack.write_pack_object
    - os.path.exists
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - <builtin>.enumerate
    - os.fspath
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.pack.PackStreamReader._buf_len
    - posixpath.join
    - name.startswith
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - dulwich.midx.MultiPackIndex._load_file_contents
    - decomp_chunks.append
    - <builtin>.len
    - stat.S_IFMT
    - dulwich.pack.take_msb_bytes
    - <builtin>.list
    - indexer.ext_refs
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.objects.Tree.from_path
    - dulwich.pack.Pack.get_raw
    - <builtin>.open
    - compressor.flush
    - f.fileno
    - header.append
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.pack.PackStreamCopier.verify
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - os.listdir
    - dulwich.pack.iter_sha1
    - dulwich.pack.pack_header_chunks
    - dulwich.objects.Commit.from_path
    - tempfile.SpooledTemporaryFile.tell
    - alt.close
    - dulwich.contrib.swift.SwiftPack.__init__
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - <builtin>.reversed
    - <builtin>.iter
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - ret.as_raw_string
    - entries.append
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.pack.Pack.from_objects
    - os.fdopen
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.pack.load_pack_index_file
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - struct.unpack_from
    - dulwich.objects.Tag.from_path
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - dulwich.pack.Pack.check_length_and_checksum
    - hashlib.sha1.hexdigest
    - dulwich.midx.MultiPackIndex.close
    - os.path.splitext
    - ret.append
    - f.read
    - dulwich.contrib.swift.SwiftObjectStore._complete_thin_pack
    - typing.cast.decode
    - struct.pack
    - os.fstat
    - ret.insert
    - header.extend
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.SHA1Writer.__init__
    - dulwich._pack.apply_delta
    - tempfile.mkstemp
    - dulwich.midx.MultiPackIndex._get_pack_info
    - dulwich.pack.write_pack_header
    - dulwich.contrib.swift.SwiftConnector.put_object
    - comp_chunks.append
    - dulwich.pack.pack_object_chunks
    - f.write
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - dulwich.object_store.DiskObjectStore.get_raw
    - typing.cast.encode
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - compressor.compress
    - f.seek
    - dulwich.object_store.PackBasedObjectStore.get_raw
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - tree_obj.items
    - pack.iterobjects
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - prev_pack.close
    - struct.unpack
    - tempfile.SpooledTemporaryFile.seek
    - f.flush
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - typing.cast.read
    - pack_name.endswith
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - io.BytesIO.write_sha
    - dulwich.file.GitFile
    - <builtin>.hasattr
    - dulwich.midx.load_midx
    - dulwich.pack.PackStreamCopier.__init__
    - dulwich.pack.Pack.resolve_object
    - largetable.append
    - dulwich.pack.compute_file_sha
    - dulwich.pack.PackStreamReader.read_objects
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - f.close
    - tempfile.SpooledTemporaryFile.read
    - dulwich.pack.read_zlib_chunks
    - zlib.compressobj
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.pack.PackIndex1.__init__
    - typing.cast.seek
    - dulwich.midx.MultiPackIndex.__init__
    - dulwich.objects.S_ISGITLINK
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 19
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - f
    - path
    - copier
    - indexer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 922
    functionName: dulwich.contrib.swift.SwiftObjectStore._complete_thin_pack
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - new_packs.append
    - dulwich.midx.MultiPackIndex._get_oid
    - zlib.compress
    - hashlib.sha1.update
    - ret.check_length_and_checksum
    - object.as_raw_chunks
    - io.BytesIO.read
    - binascii.hexlify
    - dulwich.file._GitFile.tell
    - dulwich.pack.PackStreamCopier._read
    - os.path.join
    - dulwich.midx.MultiPackIndex._parse_header
    - io.BytesIO.fileno
    - os.fsdecode
    - dulwich.object_store.DiskObjectStore.get_midx
    - f.tell
    - warnings.warn
    - dulwich.objects.hex_to_sha
    - json.loads
    - dulwich.objects.Blob.from_path
    - dulwich.pack.write_pack_index_v2
    - collections.defaultdict
    - <builtin>.range
    - pack.get_raw
    - dulwich.file._GitFile.fileno
    - dulwich.contrib.swift.pack_info_create
    - dulwich.contrib.swift.SwiftPackReader.read
    - io.BytesIO.write
    - dulwich.pack.FilePackIndex._read_fan_out_table
    - dulwich.pack.Pack.get_ref
    - dulwich.midx.load_midx_file
    - dulwich.pack._load_file_contents
    - binascii.crc32
    - delta_stack.append
    - <builtin>.map
    - dulwich.pack.PackIndex3.__init__
    - json.dumps
    - name.endswith
    - mmap.mmap
    - dulwich.pack.SHA1Writer.write
    - dulwich.file._GitFile.write
    - hashlib.sha1
    - entries.sort
    - dulwich.pack.write_pack_object
    - os.path.exists
    - dulwich.contrib.swift.SwiftObjectStore._get_loose_object
    - os.fspath
    - dulwich.contrib.swift.SwiftObjectStore._update_pack_cache
    - dulwich.pack.PackStreamReader._buf_len
    - posixpath.join
    - name.startswith
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - dulwich.midx.MultiPackIndex._load_file_contents
    - <builtin>.len
    - stat.S_IFMT
    - <builtin>.list
    - indexer.ext_refs
    - <builtin>.sum
    - dulwich.pack.pack_object_header
    - dulwich.objects.Tree.from_path
    - dulwich.pack.Pack.get_raw
    - <builtin>.open
    - compressor.flush
    - f.fileno
    - header.append
    - <builtin>.ord
    - dulwich.pack.Pack.__init__
    - dulwich.midx.MultiPackIndex._parse_oidl_chunk
    - os.listdir
    - dulwich.pack.iter_sha1
    - dulwich.pack.pack_header_chunks
    - dulwich.objects.Commit.from_path
    - tempfile.SpooledTemporaryFile.tell
    - alt.close
    - dulwich.contrib.swift.SwiftPack.__init__
    - io.BytesIO.tell
    - dulwich.pack.PackStreamReader._read
    - <builtin>.str
    - dulwich.object_store.PackBasedObjectStore._add_cached_pack
    - dulwich.pack.PackStreamReader.read
    - dulwich.pack.SHA1Writer.write_sha
    - typing.cast.tell
    - <builtin>.reversed
    - <builtin>.iter
    - dulwich.object_store.PackBasedObjectStore._iter_cached_packs
    - ret.as_raw_string
    - entries.append
    - stat.S_ISDIR
    - dulwich.objects.sha_to_hex
    - dulwich.object_store.DiskObjectStore._get_shafile_path
    - dulwich.pack.Pack.from_objects
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - os.fdopen
    - dulwich.midx.MultiPackIndex._parse_loff_chunk
    - dulwich.pack.load_pack_index_file
    - dulwich.object_store.PackBasedObjectStore._update_pack_cache
    - struct.unpack_from
    - dulwich.objects.Tag.from_path
    - dulwich.midx.MultiPackIndex.object_offset
    - dulwich.midx.MultiPackIndex._parse_pnam_chunk
    - dulwich.file._GitFile.__init__
    - <builtin>.super
    - dulwich.file._GitFile.seek
    - io.BytesIO.close
    - <builtin>.max
    - dulwich.pack.PackData.__init__
    - io.BytesIO
    - <builtin>.set
    - dulwich.objects.hex_to_filename
    - dulwich.pack.Pack.check_length_and_checksum
    - hashlib.sha1.hexdigest
    - dulwich.midx.MultiPackIndex.close
    - ret.append
    - os.path.splitext
    - f.read
    - typing.cast.decode
    - struct.pack
    - ret.insert
    - os.fstat
    - header.extend
    - <builtin>.isinstance
    - ret.read
    - dulwich.pack.SHA1Writer.__init__
    - dulwich._pack.apply_delta
    - dulwich.midx.MultiPackIndex._get_pack_info
    - dulwich.pack.write_pack_header
    - dulwich.contrib.swift.SwiftConnector.put_object
    - dulwich.pack.pack_object_chunks
    - f.write
    - typing.cast
    - typing.NewType
    - binascii.unhexlify
    - dulwich.object_store.DiskObjectStore.get_raw
    - typing.cast.encode
    - dulwich.object_store.DiskObjectStore._get_pack_by_name
    - <builtin>.getattr
    - <builtin>.min
    - dulwich.object_store.DiskObjectStore.close
    - compressor.compress
    - f.seek
    - dulwich.object_store.PackBasedObjectStore.get_raw
    - dulwich.midx.MultiPackIndex._parse_oidf_chunk
    - tree_obj.items
    - pack.iterobjects
    - dulwich.contrib.swift.SwiftPackReader._read
    - io.BytesIO.seek
    - dulwich.pack.read_pack_header
    - os.open
    - prev_pack.close
    - struct.unpack
    - tempfile.SpooledTemporaryFile.seek
    - f.flush
    - dulwich.midx.MultiPackIndex._parse_ooff_chunk
    - pack_files.add
    - hashlib.sha1.digest
    - dulwich.object_store.DiskObjectStore._get_loose_object
    - typing.cast.read
    - pack_name.endswith
    - dulwich.object_store.DiskObjectStore._update_pack_cache
    - io.BytesIO.write_sha
    - dulwich.file.GitFile
    - <builtin>.hasattr
    - dulwich.midx.load_midx
    - dulwich.pack.Pack.resolve_object
    - largetable.append
    - dulwich.pack.compute_file_sha
    - <builtin>.bytes
    - dulwich.pack.PackIndex2.__init__
    - <builtin>.bytearray
    - f.close
    - zlib.compressobj
    - tempfile.SpooledTemporaryFile.read
    - dulwich.midx.MultiPackIndex._parse_chunk_table
    - dulwich.pack.PackIndex1.__init__
    - typing.cast.seek
    - dulwich.midx.MultiPackIndex.__init__
    - dulwich.objects.S_ISGITLINK
    - dulwich.file._GitFile.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - scon
    - store
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 988
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer.__init__
    functionSourceFile: dulwich.contrib.swift
    functionUses: 4
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.get_object
    - <builtin>.len
    - typing.cast.readlines
    - k.endswith
    - io.BytesIO.readlines
    - typing.cast
    - refs.items
    - ref.endswith
    - dulwich.protocol.split_peeled_refs
    - typing.NewType
    - line.rstrip
    - <builtin>.isinstance
    - io.BytesIO
    - ret.read
    - dulwich.refs.read_info_refs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - old_ref
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1010
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer._load_check_ref
    functionSourceFile: dulwich.contrib.swift
    functionUses: 5
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.get_object
    - io.BytesIO.readlines
    - dulwich.refs.read_info_refs
    - name.startswith
    - <builtin>.len
    - ref.endswith
    - line.rstrip
    - io.BytesIO
    - dulwich.refs.RefsContainer._check_refname
    - refname.endswith
    - refname.startswith
    - k.endswith
    - <builtin>.ord
    - refs.items
    - <builtin>.isinstance
    - ret.read
    - typing.cast.readlines
    - typing.cast
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - dulwich.refs.check_ref_format
    - <builtin>.enumerate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - refs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1028
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer._write_refs
    functionSourceFile: dulwich.contrib.swift
    functionUses: 5
    functionsReached:
    - dulwich.objects.object_class
    - dulwich.contrib.swift.SwiftConnector.put_object
    - <builtin>.len
    - io.BytesIO.writelines
    - dulwich.protocol.write_info_refs
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - typing.cast
    - <builtin>.str
    - refs.items
    - dulwich.object_store.peel_sha
    - _TYPE_MAP.get
    - <builtin>.sorted
    - <builtin>.isinstance
    - io.BytesIO
    - io.BytesIO.read
    - io.BytesIO.seek
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1082
    functionName: dulwich.contrib.swift.SwiftInfoRefsContainer.get_peeled
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - typing.NewType
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - root
    - conf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1109
    functionName: dulwich.contrib.swift.SwiftRepo.__init__
    functionSourceFile: dulwich.contrib.swift
    functionUses: 3
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v2
    - dulwich.contrib.swift.SwiftConnector.get_object
    - <builtin>.next
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v1
    - io.BytesIO.readlines
    - configparser.ConfigParser.get
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - dulwich.refs.read_info_refs
    - posixpath.join
    - dulwich.contrib.swift.SwiftObjectStore.__init__
    - <builtin>.len
    - configparser.ConfigParser.getint
    - <builtin>.super
    - ref.endswith
    - line.rstrip
    - io.BytesIO
    - auth_httpclient.request
    - json.loads
    - k.endswith
    - refs.items
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.isinstance
    - ret.read
    - dulwich.contrib.swift.SwiftInfoRefsContainer.__init__
    - urllib.parse.urlparse
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftConnector.__init__
    - root.lstrip
    - path.endswith
    - typing.cast
    - typing.NewType
    - <builtin>.str
    - dulwich.protocol.split_peeled_refs
    - geventhttpclient.HTTPClient.from_url
    - json.dumps
    linkageType: pythonLinkage
    raised:
    - Exception
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: root.lstrip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - scon
    - conf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1154
    functionName: dulwich.contrib.swift.SwiftRepo.init_bare
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v2
    - dulwich.contrib.swift.SwiftConnector.get_object
    - <builtin>.next
    - ret._init_files
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v1
    - io.BytesIO.readlines
    - configparser.ConfigParser.get
    - dulwich.contrib.swift.SwiftConnector.create_root
    - io.BytesIO.seek
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - dulwich.refs.read_info_refs
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - posixpath.join
    - dulwich.contrib.swift.SwiftObjectStore.__init__
    - <builtin>.len
    - configparser.ConfigParser.getint
    - <builtin>.super
    - ref.endswith
    - line.rstrip
    - dulwich.contrib.swift.SwiftRepo.__init__
    - io.BytesIO
    - auth_httpclient.request
    - json.loads
    - k.endswith
    - refs.items
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.isinstance
    - ret.read
    - dulwich.contrib.swift.SwiftInfoRefsContainer.__init__
    - urllib.parse.urlparse
    - dulwich.contrib.swift.SwiftConnector.test_root_exists
    - dulwich.contrib.swift.SwiftConnector.put_object
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftConnector.__init__
    - root.lstrip
    - path.endswith
    - typing.cast
    - <builtin>.str
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - geventhttpclient.HTTPClient.from_url
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - logger
    - conf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1177
    functionName: dulwich.contrib.swift.SwiftSystemBackend.__init__
    functionSourceFile: dulwich.contrib.swift
    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
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1187
    functionName: dulwich.contrib.swift.SwiftSystemBackend.open_repository
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v2
    - dulwich.contrib.swift.SwiftConnector.get_object
    - <builtin>.next
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v1
    - io.BytesIO.readlines
    - configparser.ConfigParser.get
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - dulwich.refs.read_info_refs
    - posixpath.join
    - dulwich.contrib.swift.SwiftObjectStore.__init__
    - <builtin>.len
    - configparser.ConfigParser.getint
    - <builtin>.super
    - ref.endswith
    - line.rstrip
    - dulwich.contrib.swift.SwiftRepo.__init__
    - io.BytesIO
    - auth_httpclient.request
    - json.loads
    - k.endswith
    - refs.items
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.isinstance
    - ret.read
    - dulwich.contrib.swift.SwiftInfoRefsContainer.__init__
    - urllib.parse.urlparse
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftConnector.__init__
    - root.lstrip
    - path.endswith
    - typing.cast
    - typing.NewType
    - <builtin>.str
    - dulwich.protocol.split_peeled_refs
    - geventhttpclient.HTTPClient.from_url
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 9
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1200
    functionName: dulwich.contrib.swift.cmd_daemon
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - <builtin>.print
    - os.environ.get
    - dulwich.log_utils.remove_null_handler
    - os.path.isdir
    - os.getpid
    - <builtin>.dict
    - parser.parse_args
    - dulwich.contrib.swift.load_conf
    - dulwich.server.TCPGitServer.__init__
    - os.fdopen
    - os.path.isfile
    - os.path.isabs
    - gevent.monkey.patch_socket
    - configparser.ConfigParser.read_file
    - os.path.join
    - dulwich.log_utils._get_trace_target
    - sys.stderr.write
    - sys.exit
    - _DULWICH_LOGGER.removeHandler
    - parser.add_option
    - logging.basicConfig
    - optparse.OptionParser
    - <builtin>.isinstance
    - logger.info
    - <builtin>.int
    - configparser.ConfigParser
    - dulwich.log_utils._configure_logging_from_trace
    - configparser.ConfigParser.read
    - socketserver.TCPServer.serve_forever
    - dulwich.contrib.swift.SwiftSystemBackend.__init__
    - socketserver.TCPServer.__init__
    - trace_value.lower
    - dulwich.log_utils.default_logging_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.monkey.patch_socket
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - args
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1256
    functionName: dulwich.contrib.swift.cmd_init
    functionSourceFile: dulwich.contrib.swift
    functionUses: 0
    functionsReached:
    - dulwich.contrib.swift.SwiftRepo.init_bare
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v2
    - dulwich.contrib.swift.SwiftConnector.get_object
    - <builtin>.next
    - ret._init_files
    - dulwich.contrib.swift.SwiftConnector.swift_auth_v1
    - io.BytesIO.readlines
    - configparser.ConfigParser.get
    - parser.parse_args
    - dulwich.contrib.swift.load_conf
    - parser.error
    - io.BytesIO.read
    - dulwich.contrib.swift.SwiftConnector.create_root
    - io.BytesIO.seek
    - dulwich.contrib.swift.SwiftConnector.put_object._send
    - dulwich.refs.read_info_refs
    - os.path.isfile
    - dulwich.contrib.swift.SwiftConnector.get_container_objects
    - dulwich.contrib.swift.SwiftObjectStore.__init__
    - posixpath.join
    - <builtin>.len
    - configparser.ConfigParser.read_file
    - configparser.ConfigParser.getint
    - <builtin>.super
    - ref.endswith
    - line.rstrip
    - dulwich.contrib.swift.SwiftRepo.__init__
    - io.BytesIO
    - parser.add_option
    - auth_httpclient.request
    - json.loads
    - optparse.OptionParser
    - k.endswith
    - refs.items
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.isinstance
    - ret.read
    - dulwich.contrib.swift.SwiftInfoRefsContainer.__init__
    - urllib.parse.urlparse
    - dulwich.contrib.swift.SwiftConnector.test_root_exists
    - configparser.ConfigParser
    - dulwich.contrib.swift.SwiftConnector.put_object
    - configparser.ConfigParser.read
    - typing.cast.readlines
    - dulwich.contrib.swift.SwiftConnector.__init__
    - root.lstrip
    - path.endswith
    - typing.cast
    - <builtin>.str
    - typing.NewType
    - dulwich.protocol.split_peeled_refs
    - geventhttpclient.HTTPClient.from_url
    - json.dumps
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Attribute object at 0x7febadabf520>
    argNames:
    - argv
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1282
    functionName: dulwich.contrib.swift.main
    functionSourceFile: dulwich.contrib.swift
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - commands.keys
    - <builtin>.print
    - sys.exit
    linkageType: 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: dulwich.contrib
    functionSourceFile: dulwich.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: dulwich.contrib.greenthreads
    functionSourceFile: dulwich.contrib.greenthreads
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - obj_store
    - lst
    - ignore_unknown
    - pool
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: dulwich.contrib.greenthreads._split_commits_and_tags
    functionSourceFile: dulwich.contrib.greenthreads
    functionUses: 1
    functionsReached:
    - <builtin>.set
    - pool.spawn
    - gevent.joinall
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: dulwich.contrib.greenthreads._split_commits_and_tags.find_commit_type
    functionSourceFile: dulwich.contrib.greenthreads
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - tags.add
    - commits.add
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pool.spawn
    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: gevent.joinall
    functionSourceFile: gevent
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7febadaa8400>
    - <ast.Constant object at 0x7febaffb18b0>
    - <ast.Constant object at 0x7febaffb1a30>
    - <ast.Constant object at 0x7febaffb15e0>
    argNames:
    - self
    - object_store
    - haves
    - wants
    - progress
    - get_tagged
    - concurrency
    - get_parents
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 84
    functionName: dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder.__init__
    functionSourceFile: dulwich.contrib.greenthreads
    functionUses: 0
    functionsReached:
    - queue.pop
    - path.encode
    - os.path.exists
    - pool.spawn
    - dulwich.object_store._collect_ancestors
    - queue.extend
    - dulwich.contrib.greenthreads._split_commits_and_tags
    - graph._read_from_file
    - dulwich.commit_graph.read_commit_graph
    - dulwich.commit_graph.CommitGraph.__init__
    - dulwich.object_store.<lambda2>
    - commit_graph.get_parents
    - os.path.join
    - want_tags.difference
    - p.spawn
    - commits.add
    - gevent.pool.Pool
    - <builtin>.set
    - dulwich.repo.ParentsProvider.get_parents
    - <builtin>.open
    - <builtin>.frozenset
    - gevent.joinall
    - dulwich.commit_graph.CommitGraph.from_file
    - bases.add
    - missing_commits.union
    - <builtin>.isinstance
    - dulwich.object_store.MissingObjectFinder.<lambda1>
    - dulwich.object_store.DiskObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.get_commit_graph
    - dulwich.object_store.BaseObjectStore.<lambda1>
    - dulwich.repo.BaseRepo.find_missing_objects.get_parents
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - sha
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 106
    functionName: dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder.__init__.collect_tree_sha
    functionSourceFile: dulwich.contrib.greenthreads
    functionUses: 0
    functionsReached:
    - dulwich.objects.S_ISGITLINK
    - stat.S_IFMT
    - dulwich.object_store._collect_filetree_revs
    - stat.S_ISDIR
    - kset.add
    - <builtin>.isinstance
    - filetree.iteritems
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.pool.Pool
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.spawn
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_commits.union
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder.__init__.<lambda1>
    functionSourceFile: dulwich.contrib.greenthreads
    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: dulwich.contrib.requests_vendor
    functionSourceFile: dulwich.contrib.requests_vendor
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7febaf5e55b0>
    - <ast.Constant object at 0x7febaf5e5d90>
    - <ast.Constant object at 0x7febaf5e5130>
    - <ast.Constant object at 0x7febaf5e5490>
    - <ast.Constant object at 0x7febaf5e5d00>
    - <ast.Constant object at 0x7febaf5e58b0>
    - <ast.Constant object at 0x7febae64ed90>
    - <ast.Constant object at 0x7febae64e2e0>
    argNames:
    - self
    - base_url
    - dumb
    - config
    - username
    - password
    - thin_packs
    - report_activity
    - quiet
    - include_tags
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 60
    functionName: dulwich.contrib.requests_vendor.RequestsHttpGitClient.__init__
    functionSourceFile: dulwich.contrib.requests_vendor
    functionUses: 0
    functionsReached:
    - config.get_boolean
    - requests.Session
    - <builtin>.bool
    - dulwich.contrib.requests_vendor.get_session
    - certs_bytes.decode
    - requests.Session.proxies.update
    - proxy_bytes.decode
    - dulwich.client.default_user_agent_string
    - <builtin>.super
    - config.get
    - <builtin>.str
    - <builtin>.isinstance
    - requests.Session.headers.update
    - agent_bytes.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 4
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - config
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 141
    functionName: dulwich.contrib.requests_vendor.get_session
    functionSourceFile: dulwich.contrib.requests_vendor
    functionUses: 1
    functionsReached:
    - config.get_boolean
    - requests.Session
    - certs_bytes.decode
    - requests.Session.proxies.update
    - proxy_bytes.decode
    - dulwich.client.default_user_agent_string
    - config.get
    - <builtin>.str
    - <builtin>.isinstance
    - requests.Session.headers.update
    - agent_bytes.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7febaf53cf40>
    - <ast.Constant object at 0x7febaf53c2e0>
    - <ast.Constant object at 0x7febaf53c2b0>
    argNames:
    - self
    - url
    - headers
    - data
    - raise_for_status
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: dulwich.contrib.requests_vendor.RequestsHttpGitClient._http_request
    functionSourceFile: dulwich.contrib.requests_vendor
    functionUses: 0
    functionsReached:
    - resp.headers.get
    - requests.Session.post
    - requests.Session.headers.copy
    - requests.Session.get
    - req_headers.setdefault
    - req_headers.update
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - HTTPProxyUnauthorized
    - HTTPUnauthorized
    - GitProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requests.Session.headers.copy
    functionSourceFile: requests
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req_headers.setdefault
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requests.Session.post
    functionSourceFile: requests
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requests.Session.get
    functionSourceFile: requests
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requests.Session
    functionSourceFile: requests
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requests.Session.headers.update
    functionSourceFile: requests
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: proxy_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: agent_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: certs_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: requests.Session.proxies.update
    functionSourceFile: requests
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: dulwich.contrib.release_robot
    functionSourceFile: dulwich.contrib.release_robot
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - re.match
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - datetime.datetime
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - time.gmtime
    - dulwich.worktree.WorkTreeContainer.__init__
    - typing.cast.author.decode
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.contrib.release_robot.get_recent_tags
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - project.get_object
    - commondir.read
    - value.startswith
    - obj.id.decode
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - key_bytes.decode
    - path.lstrip
    - matches.group
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - key.rsplit
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - <builtin>.print
    - obj.name.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - project.get_refs
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.contrib.release_robot.get_current_version
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - tags.items
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Name object at 0x7febaffb1700>
    argNames:
    - projdir
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 69
    functionName: dulwich.contrib.release_robot.get_recent_tags
    functionSourceFile: dulwich.contrib.release_robot
    functionUses: 2
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - datetime.datetime
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - time.gmtime
    - dulwich.worktree.WorkTreeContainer.__init__
    - typing.cast.author.decode
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - project.get_object
    - commondir.read
    - value.startswith
    - obj.id.decode
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - key_bytes.decode
    - path.lstrip
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - key.rsplit
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - obj.name.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - project.get_refs
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - tags.items
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: project.get_refs
    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: key_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: project.get_object
    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: key.rsplit
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.id.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.name.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.author.decode
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dulwich.contrib.release_robot.get_recent_tags.<lambda1>
    functionSourceFile: dulwich.contrib.release_robot
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7febaeb6e1c0>
    - <ast.Name object at 0x7febaeb6ec40>
    - <ast.Constant object at 0x7febaeb6eac0>
    argNames:
    - projdir
    - pattern
    - logger
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 125
    functionName: dulwich.contrib.release_robot.get_current_version
    functionSourceFile: dulwich.contrib.release_robot
    functionUses: 1
    functionsReached:
    - io.BytesIO.readlines
    - dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker
    - re.match
    - os.path.join
    - ret._handle_include_directive
    - shutil.rmtree
    - dulwich.repo.Repo.__init__
    - os.fsdecode
    - dulwich.config.Config.get_boolean
    - dulwich.object_store.DiskObjectStore.__init__
    - dulwich.config.StackedConfig.get
    - value.strip
    - dulwich.repo.Repo.get_config
    - datetime.datetime
    - os.makedirs
    - <builtin>.range
    - value.decode
    - dulwich.config.ConfigFile.from_path
    - <builtin>.sorted
    - dulwich.config.ConfigFile.__init__
    - time.gmtime
    - dulwich.worktree.WorkTreeContainer.__init__
    - typing.cast.author.decode
    - dulwich.objects.check_hexsha
    - dulwich.objects.valid_hexsha
    - dulwich.contrib.release_robot.get_recent_tags
    - logger.debug
    - setting.strip
    - dulwich.config._is_line_continuation
    - os.path.exists
    - project.get_object
    - commondir.read
    - value.startswith
    - obj.id.decode
    - os.fspath
    - dulwich.config._check_section_name
    - path.decode
    - dulwich.repo.Repo._get_config_condition_matchers
    - subsection.encode
    - os.path.isfile
    - dulwich.config._check_variable_name
    - <builtin>.len
    - <builtin>.tuple
    - extension.lower
    - key_bytes.decode
    - path.lstrip
    - matches.group
    - dulwich.reftable.ReftableRefsContainer.__init__
    - dulwich.repo.Repo.get_named_file
    - <builtin>.open
    - line.lstrip
    - key.rsplit
    - os.path.dirname
    - value.endswith
    - <builtin>.ord
    - refs.items
    - dulwich.hooks.CommitMsgShellHook.__init__
    - line.startswith
    - backend.get
    - <builtin>.int
    - dulwich.hooks.PostReceiveShellHook.__init__
    - dulwich.repo.Repo.commondir
    - dulwich.repo.parse_shared_repository
    - os.fsencode
    - <builtin>.iter
    - obj.name.decode
    - dulwich.config._parse_section_header_line
    - name.encode
    - section_dict.items
    - cs.startswith
    - <builtin>.super
    - <builtin>.set
    - dulwich.config.ConfigDict.items
    - ret.append
    - f.read
    - <builtin>.isinstance
    - content.endswith
    - c.isalnum
    - line.endswith
    - included_paths.copy
    - f.write
    - project.get_refs
    - typing.cast
    - typing.NewType
    - dulwich.config._strip_comments
    - line.split
    - typing.cast.id.decode
    - dulwich.config.ConfigDict.get
    - binascii.unhexlify
    - dulwich.hooks.PostCommitShellHook.__init__
    - os.path.isdir
    - whitespace.append
    - dulwich.config._parse_string
    - tags.items
    - dulwich.object_store.DiskObjectStore.from_config
    - ret.extend
    - ret._values.setdefault
    - dulwich.refs.DiskRefsContainer.__init__
    - dulwich.repo.read_gitfile
    - dulwich.hooks.PreCommitShellHook.__init__
    - value.lower
    - dulwich.repo.BaseRepo.__init__
    - <builtin>.bytes
    - dulwich.config.ConfigDict._check_section_and_name
    - <builtin>.bytearray
    - dulwich.repo.Repo.controldir
    - dulwich.config.ConfigFile.from_file
    - <builtin>.enumerate
    - dulwich.hooks.ShellHook.__init__
    - dulwich.repo.parse_graftpoints
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matches.group
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...dulwich.fuzzing.fuzz-targets.fuzz_configfile':
  - 9
  - 37
  - 38
  '...dulwich.fuzzing.fuzz-targets.fuzz_configfile.TestOneInput':
  - 26
  - 15
  '...dulwich.fuzzing.fuzz-targets.fuzz_configfile.main':
  - 33
  - 34
  dulwich:
  - 24
  - 33
  - 34
  - 35
  dulwich.__main__:
  - 1
  - 13
  - 14
  dulwich._typing:
  - 1
  - 5
  dulwich.annotate:
  - 41
  - 19
  dulwich.annotate.annotate_lines:
  - 96
  - 100
  - 101
  - 103
  - 107
  - 108
  - 109
  - 111
  - 115
  - 85
  - 118
  - 119
  dulwich.annotate.update_lines:
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 59
  - 61
  - 62
  dulwich.approxidate:
  - 22
  dulwich.approxidate.parse_approxidate:
  - 39
  - 54
  - 55
  - 57
  - 60
  - 63
  - 64
  - 65
  - 67
  - 68
  - 69
  - 70
  - 71
  - 75
  - 81
  - 82
  - 83
  - 98
  - 100
  - 101
  dulwich.approxidate.parse_relative_time:
  - 160
  - 130
  - 131
  - 135
  - 109
  - 120
  - 155
  - 125
  - 127
  dulwich.archive:
  - 37
  - 23
  dulwich.archive.ChunkedBytesIO:
  - 45
  dulwich.archive.ChunkedBytesIO.__init__:
  - 56
  dulwich.archive.ChunkedBytesIO.read:
  - 65
  - 73
  - 81
  - 82
  - 83
  - 84
  - 89
  - 90
  - 95
  dulwich.archive._walk_tree:
  - 171
  - 172
  - 174
  - 176
  - 179
  - 180
  - 182
  dulwich.archive.tar_stream:
  - 133
  - 134
  - 135
  - 136
  - 137
  - 139
  - 147
  - 148
  - 151
  - 153
  - 155
  - 156
  - 161
  - 162
  - 163
  - 164
  - 165
  - 105
  - 121
  - 126
  - 127
  dulwich.attrs:
  - 22
  dulwich.attrs.GitAttributes:
  - 281
  dulwich.attrs.GitAttributes.__init__:
  - 287
  dulwich.attrs.GitAttributes.__iter__:
  - 320
  - 321
  dulwich.attrs.GitAttributes.__len__:
  - 316
  - 317
  dulwich.attrs.GitAttributes.add_patterns:
  - 313
  - 308
  dulwich.attrs.GitAttributes.from_file:
  - 333
  - 325
  - 334
  dulwich.attrs.GitAttributes.from_path:
  - 338
  - 347
  - 346
  dulwich.attrs.GitAttributes.match_path:
  - 303
  - 295
  dulwich.attrs.GitAttributes.remove_pattern:
  - 387
  dulwich.attrs.GitAttributes.set_attribute:
  - 382
  - 362
  - 363
  - 366
  - 370
  - 372
  - 374
  - 350
  dulwich.attrs.GitAttributes.to_bytes:
  - 416
  - 418
  - 419
  - 420
  - 422
  - 397
  - 403
  - 407
  - 408
  - 409
  - 410
  - 411
  - 412
  - 413
  dulwich.attrs.GitAttributes.write_to_file:
  - 425
  - 430
  - 431
  - 433
  - 434
  - 435
  dulwich.attrs.Pattern:
  - 170
  dulwich.attrs.Pattern.__init__:
  - 180
  - 173
  dulwich.attrs.Pattern._compile:
  - 184
  - 187
  - 183
  dulwich.attrs.Pattern.match:
  - 204
  - 190
  - 199
  dulwich.attrs._parse_attr:
  - 43
  - 54
  - 56
  - 58
  - 61
  dulwich.attrs._translate_pattern:
  - 160
  - 129
  - 164
  - 133
  - 104
  - 142
  - 111
  - 144
  - 114
  - 147
  - 116
  - 149
  - 119
  - 153
  - 158
  - 156
  - 125
  - 126
  dulwich.attrs.match_path:
  - 225
  - 226
  - 228
  - 210
  - 222
  - 223
  dulwich.attrs.parse_git_attributes:
  - 98
  - 68
  - 100
  - 87
  - 88
  - 91
  - 94
  dulwich.attrs.parse_gitattributes_file:
  - 238
  - 248
  - 249
  - 251
  - 252
  - 253
  - 254
  dulwich.attrs.read_gitattributes:
  - 262
  - 270
  - 271
  - 273
  - 274
  - 275
  dulwich.bisect:
  - 21
  dulwich.bisect.BisectState:
  - 35
  dulwich.bisect.BisectState.__init__:
  - 44
  - 38
  dulwich.bisect.BisectState._append_to_log:
  - 427
  - 428
  - 429
  - 430
  dulwich.bisect.BisectState._estimate_steps:
  - 433
  - 434
  dulwich.bisect.BisectState._find_bisect_candidates:
  - 408
  - 390
  - 394
  - 395
  - 398
  - 402
  - 403
  - 406
  - 407
  - 376
  - 409
  - 412
  - 413
  dulwich.bisect.BisectState._find_next_commit:
  - 306
  - 312
  - 313
  - 314
  - 317
  - 318
  - 322
  - 323
  - 324
  - 325
  - 326
  - 328
  - 329
  - 335
  - 336
  - 337
  - 338
  - 339
  - 342
  - 344
  - 346
  - 347
  - 348
  - 353
  - 357
  - 358
  - 359
  - 362
  - 363
  - 364
  - 367
  - 368
  dulwich.bisect.BisectState._get_commit_subject:
  - 418
  - 420
  - 421
  - 422
  dulwich.bisect.BisectState.get_log:
  - 266
  - 267
  - 270
  - 271
  - 272
  dulwich.bisect.BisectState.is_active:
  - 48
  - 49
  dulwich.bisect.BisectState.mark_bad:
  - 132
  - 140
  - 143
  - 144
  - 146
  - 149
  - 150
  - 151
  - 154
  - 155
  - 157
  - 159
  dulwich.bisect.BisectState.mark_good:
  - 162
  - 170
  - 173
  - 174
  - 176
  - 179
  - 180
  - 182
  - 183
  - 186
  - 187
  - 189
  - 191
  dulwich.bisect.BisectState.replay:
  - 291
  - 293
  - 294
  - 295
  - 296
  - 297
  - 298
  - 299
  - 300
  - 301
  - 302
  - 303
  - 275
  - 281
  - 282
  - 283
  - 286
  - 287
  dulwich.bisect.BisectState.reset:
  - 257
  - 226
  - 260
  - 230
  - 231
  - 262
  - 234
  - 242
  - 243
  - 244
  - 247
  - 248
  - 249
  - 250
  - 251
  - 221
  - 254
  - 255
  dulwich.bisect.BisectState.skip:
  - 194
  - 202
  - 205
  - 206
  - 208
  - 209
  - 210
  - 211
  - 213
  - 214
  - 216
  - 218
  dulwich.bisect.BisectState.start:
  - 128
  - 129
  - 60
  - 70
  - 74
  - 75
  - 79
  - 80
  - 85
  - 92
  - 98
  - 99
  - 102
  - 103
  - 104
  - 107
  - 108
  - 109
  - 110
  - 111
  - 114
  - 117
  - 118
  - 119
  - 120
  - 123
  - 124
  - 127
  dulwich.bitmap:
  - 77
  - 22
  dulwich.bitmap.BitmapEntry:
  - 380
  dulwich.bitmap.BitmapEntry.__init__:
  - 389
  dulwich.bitmap.EWAHBitmap:
  - 155
  dulwich.bitmap.EWAHBitmap.__and__:
  - 333
  - 325
  - 335
  dulwich.bitmap.EWAHBitmap.__contains__:
  - 292
  dulwich.bitmap.EWAHBitmap.__init__:
  - 176
  - 171
  - 180
  - 179
  dulwich.bitmap.EWAHBitmap.__len__:
  - 308
  - 303
  dulwich.bitmap.EWAHBitmap.__or__:
  - 321
  - 319
  - 311
  dulwich.bitmap.EWAHBitmap.__sub__:
  - 353
  - 364
  dulwich.bitmap.EWAHBitmap.__xor__:
  - 347
  - 339
  - 349
  dulwich.bitmap.EWAHBitmap._decode:
  - 183
  - 189
  - 192
  - 193
  - 195
  - 198
  - 199
  - 206
  - 207
  - 208
  - 210
  - 211
  - 215
  - 225
  - 226
  - 228
  - 229
  - 233
  - 234
  - 241
  - 242
  - 243
  - 247
  dulwich.bitmap.EWAHBitmap.add:
  - 376
  - 370
  - 375
  dulwich.bitmap.EWAHBitmap.encode:
  - 257
  - 289
  - 259
  - 287
  - 265
  - 282
  - 271
  - 274
  - 277
  - 278
  - 281
  - 250
  - 255
  dulwich.bitmap.PackBitmap:
  - 404
  dulwich.bitmap.PackBitmap.__init__:
  - 426
  - 427
  - 428
  - 429
  - 415
  dulwich.bitmap.PackBitmap.get_bitmap:
  - 452
  - 453
  - 457
  - 462
  - 464
  - 472
  - 444
  - 477
  - 478
  dulwich.bitmap.PackBitmap.has_commit:
  - 485
  dulwich.bitmap.PackBitmap.iter_commits:
  - 496
  - 501
  dulwich.bitmap._compute_name_hash:
  - 802
  - 813
  dulwich.bitmap._encode_ewah_words:
  - 101
  - 133
  - 134
  - 135
  - 139
  - 140
  - 142
  - 112
  - 114
  - 147
  - 148
  - 149
  - 118
  - 124
  - 125
  - 127
  dulwich.bitmap.apply_xor_compression:
  - 961
  - 963
  - 967
  - 970
  - 973
  - 978
  - 947
  dulwich.bitmap.bitmap_to_object_shas:
  - 1249
  - 1251
  - 1253
  - 1254
  - 1237
  - 1247
  dulwich.bitmap.build_name_hash_cache:
  - 1058
  - 1060
  - 1061
  - 1030
  - 1063
  - 1066
  - 1043
  - 1046
  - 1048
  dulwich.bitmap.build_reachability_bitmap:
  - 928
  - 930
  - 931
  - 932
  - 934
  - 935
  - 906
  - 909
  - 910
  - 913
  - 914
  - 916
  - 920
  - 921
  - 922
  - 893
  dulwich.bitmap.build_type_bitmaps:
  - 998
  - 999
  - 1000
  - 1001
  - 1019
  - 1003
  - 1005
  - 1014
  - 1015
  - 1016
  - 1017
  - 1018
  - 987
  - 1020
  - 1021
  dulwich.bitmap.find_commit_bitmaps:
  - 1218
  - 1222
  - 1223
  - 1224
  - 1225
  - 1195
  - 1227
  - 1205
  - 1207
  - 1208
  - 1212
  dulwich.bitmap.generate_bitmap:
  - 1157
  - 1158
  - 1159
  - 1162
  - 1169
  - 1172
  - 1173
  - 1174
  - 1175
  - 1178
  - 1179
  - 1180
  - 1186
  - 1187
  - 1083
  - 1098
  - 1101
  - 1102
  - 1107
  - 1110
  - 1111
  - 1114
  - 1116
  - 1117
  - 1121
  - 1122
  - 1123
  - 1125
  - 1126
  - 1128
  - 1129
  - 1132
  - 1134
  - 1135
  - 1139
  - 1144
  - 1146
  - 1149
  dulwich.bitmap.read_bitmap:
  - 521
  - 522
  - 508
  dulwich.bitmap.read_bitmap_file:
  - 640
  - 641
  - 645
  - 646
  - 653
  - 526
  - 654
  - 662
  - 665
  - 666
  - 539
  - 540
  - 668
  - 672
  - 545
  - 546
  - 674
  - 548
  - 677
  - 551
  - 552
  - 679
  - 554
  - 682
  - 558
  - 559
  - 686
  - 561
  - 688
  - 689
  - 564
  - 565
  - 691
  - 694
  - 568
  - 695
  - 697
  - 572
  - 700
  - 701
  - 703
  - 705
  - 710
  - 587
  - 588
  - 716
  - 590
  - 717
  - 719
  - 593
  - 720
  - 722
  - 596
  - 597
  - 601
  - 602
  - 607
  - 610
  - 612
  - 613
  - 615
  - 618
  - 619
  - 624
  - 625
  - 631
  - 632
  - 634
  - 637
  dulwich.bitmap.select_bitmap_commits:
  - 825
  - 839
  - 840
  - 843
  - 844
  - 851
  - 853
  - 854
  - 857
  - 860
  - 864
  - 865
  - 867
  - 871
  - 875
  - 876
  - 879
  - 880
  - 881
  - 885
  dulwich.bitmap.write_bitmap:
  - 738
  - 739
  - 732
  dulwich.bitmap.write_bitmap_file:
  - 770
  - 771
  - 774
  - 776
  - 779
  - 782
  - 785
  - 786
  - 789
  - 790
  - 791
  - 792
  - 793
  - 796
  - 797
  - 798
  - 743
  - 750
  - 751
  - 752
  - 755
  - 758
  - 759
  - 761
  - 764
  dulwich.bundle:
  - 59
  - 22
  dulwich.bundle.Bundle:
  - 65
  dulwich.bundle.Bundle.__eq__:
  - 84
  - 85
  - 87
  - 89
  - 91
  - 93
  - 95
  dulwich.bundle.Bundle.__repr__:
  - 75
  - 77
  dulwich.bundle.Bundle.store_objects:
  - 128
  - 104
  - 112
  - 115
  - 117
  - 118
  - 121
  - 124
  - 125
  - 127
  dulwich.bundle.PackDataLike:
  - 48
  dulwich.bundle.PackDataLike.__len__:
  - 51
  - 52
  dulwich.bundle.PackDataLike.iter_unpacked:
  - 56
  - 55
  dulwich.bundle._read_bundle:
  - 135
  - 136
  - 137
  - 138
  - 140
  - 141
  - 145
  - 146
  - 147
  - 148
  - 149
  - 150
  - 152
  - 153
  - 154
  - 157
  - 158
  - 163
  - 164
  - 165
  dulwich.bundle.create_bundle_from_repo:
  - 258
  - 263
  - 265
  - 266
  - 270
  - 271
  - 277
  - 281
  - 282
  - 283
  - 287
  - 293
  - 297
  - 298
  - 301
  - 320
  - 323
  - 239
  - 252
  - 253
  - 255
  dulwich.bundle.create_bundle_from_repo._BundlePackData.__init__:
  - 312
  dulwich.bundle.create_bundle_from_repo._BundlePackData.iter_unpacked:
  - 318
  dulwich.bundle.read_bundle:
  - 175
  - 181
  - 184
  - 185
  - 186
  - 187
  - 188
  dulwich.bundle.write_bundle:
  - 193
  - 200
  - 201
  - 205
  - 206
  - 207
  - 208
  - 211
  - 212
  - 213
  - 214
  - 215
  - 216
  - 217
  - 218
  - 219
  - 220
  - 221
  - 222
  - 224
  - 225
  - 226
  - 227
  dulwich.cli:
  - 24
  - 98
  - 6828
  - 6829
  dulwich.cli.AutoFlushBinaryIOWrapper:
  - 223
  dulwich.cli.AutoFlushBinaryIOWrapper.__enter__:
  - 291
  dulwich.cli.AutoFlushBinaryIOWrapper.__exit__:
  - 300
  - 301
  - 302
  dulwich.cli.AutoFlushBinaryIOWrapper.__getattr__:
  - 288
  - 287
  dulwich.cli.AutoFlushBinaryIOWrapper.__init__:
  - 230
  dulwich.cli.AutoFlushBinaryIOWrapper.env:
  - 256
  - 241
  - 255
  dulwich.cli.AutoFlushBinaryIOWrapper.flush:
  - 283
  - 284
  dulwich.cli.AutoFlushBinaryIOWrapper.write:
  - 269
  - 261
  - 270
  dulwich.cli.AutoFlushBinaryIOWrapper.writelines:
  - 280
  - 274
  - 279
  dulwich.cli.AutoFlushTextIOWrapper:
  - 140
  dulwich.cli.AutoFlushTextIOWrapper.__enter__:
  - 208
  dulwich.cli.AutoFlushTextIOWrapper.__exit__:
  - 217
  - 218
  - 219
  dulwich.cli.AutoFlushTextIOWrapper.__getattr__:
  - 204
  - 205
  dulwich.cli.AutoFlushTextIOWrapper.__init__:
  - 147
  dulwich.cli.AutoFlushTextIOWrapper.env:
  - 172
  - 173
  - 158
  dulwich.cli.AutoFlushTextIOWrapper.flush:
  - 200
  - 201
  dulwich.cli.AutoFlushTextIOWrapper.write:
  - 186
  - 178
  - 187
  dulwich.cli.AutoFlushTextIOWrapper.writelines:
  - 196
  - 197
  - 191
  dulwich.cli.Command:
  - 1090
  dulwich.cli.Command.run:
  - 1093
  dulwich.cli.CommitMessageError:
  - 306
  dulwich.cli.Pager:
  - 765
  dulwich.cli.Pager.__enter__:
  - 853
  dulwich.cli.Pager.__exit__:
  - 862
  - 863
  dulwich.cli.Pager.__init__:
  - 768
  - 774
  dulwich.cli.Pager.__iter__:
  - 958
  dulwich.cli.Pager.__next__:
  - 962
  dulwich.cli.Pager._ensure_pager_started:
  - 784
  - 785
  - 787
  - 788
  dulwich.cli.Pager._get_pager_command:
  - 780
  dulwich.cli.Pager.buffer:
  - 892
  dulwich.cli.Pager.close:
  - 838
  - 839
  - 843
  - 845
  - 846
  - 847
  dulwich.cli.Pager.closed:
  - 875
  dulwich.cli.Pager.encoding:
  - 897
  dulwich.cli.Pager.errors:
  - 902
  dulwich.cli.Pager.fileno:
  - 906
  dulwich.cli.Pager.flush:
  - 835
  - 825
  - 826
  - 829
  - 831
  dulwich.cli.Pager.isatty:
  - 910
  dulwich.cli.Pager.line_buffering:
  - 915
  dulwich.cli.Pager.mode:
  - 920
  dulwich.cli.Pager.name:
  - 925
  dulwich.cli.Pager.newlines:
  - 930
  dulwich.cli.Pager.read:
  - 934
  dulwich.cli.Pager.readable:
  - 879
  dulwich.cli.Pager.readline:
  - 938
  dulwich.cli.Pager.readlines:
  - 942
  dulwich.cli.Pager.seek:
  - 946
  dulwich.cli.Pager.seekable:
  - 887
  dulwich.cli.Pager.tell:
  - 950
  dulwich.cli.Pager.truncate:
  - 954
  dulwich.cli.Pager.writable:
  - 883
  dulwich.cli.Pager.write:
  - 801
  - 802
  - 806
  - 807
  - 809
  - 811
  - 813
  - 814
  - 819
  - 822
  dulwich.cli.Pager.writelines:
  - 867
  - 868
  - 870
  - 871
  dulwich.cli.PagerBuffer:
  - 642
  dulwich.cli.PagerBuffer.__enter__:
  - 751
  dulwich.cli.PagerBuffer.__exit__:
  - 760
  - 761
  dulwich.cli.PagerBuffer.__init__:
  - 645
  dulwich.cli.PagerBuffer.__iter__:
  - 743
  dulwich.cli.PagerBuffer.__next__:
  - 747
  dulwich.cli.PagerBuffer.close:
  - 680
  - 681
  dulwich.cli.PagerBuffer.closed:
  - 685
  dulwich.cli.PagerBuffer.fileno:
  - 699
  dulwich.cli.PagerBuffer.flush:
  - 659
  - 660
  dulwich.cli.PagerBuffer.isatty:
  - 703
  dulwich.cli.PagerBuffer.mode:
  - 690
  dulwich.cli.PagerBuffer.name:
  - 695
  dulwich.cli.PagerBuffer.read:
  - 707
  dulwich.cli.PagerBuffer.read1:
  - 711
  dulwich.cli.PagerBuffer.readable:
  - 668
  dulwich.cli.PagerBuffer.readinto:
  - 715
  dulwich.cli.PagerBuffer.readinto1:
  - 719
  dulwich.cli.PagerBuffer.readline:
  - 723
  dulwich.cli.PagerBuffer.readlines:
  - 727
  dulwich.cli.PagerBuffer.seek:
  - 731
  dulwich.cli.PagerBuffer.seekable:
  - 676
  dulwich.cli.PagerBuffer.tell:
  - 735
  dulwich.cli.PagerBuffer.truncate:
  - 739
  dulwich.cli.PagerBuffer.writable:
  - 672
  dulwich.cli.PagerBuffer.write:
  - 656
  - 653
  - 655
  dulwich.cli.PagerBuffer.writelines:
  - 664
  - 665
  - 663
  dulwich.cli.SuperCommand:
  - 3577
  dulwich.cli.SuperCommand.run:
  - 3588
  - 3589
  - 3590
  - 3592
  - 3593
  - 3600
  - 3601
  - 3602
  - 3583
  dulwich.cli._StreamContextAdapter:
  - 967
  dulwich.cli._StreamContextAdapter.__getattr__:
  - 991
  dulwich.cli._StreamContextAdapter.__init__:
  - 972
  dulwich.cli._get_commit_message_with_template:
  - 1989
  - 1992
  - 1961
  - 1993
  - 1994
  - 1964
  - 1996
  - 1973
  - 1975
  - 1977
  dulwich.cli._main:
  - 6825
  - 6821
  - 6822
  - 6823
  dulwich.cli._should_auto_flush:
  - 129
  - 130
  - 132
  - 136
  - 118
  - 127
  dulwich.cli.cmd_add:
  - 1144
  dulwich.cli.cmd_add.run:
  - 1152
  - 1153
  - 1154
  - 1158
  - 1161
  - 1147
  dulwich.cli.cmd_annotate:
  - 1165
  dulwich.cli.cmd_annotate.run:
  - 1185
  - 1168
  - 1173
  - 1174
  - 1175
  - 1176
  - 1178
  - 1179
  - 1180
  - 1181
  - 1182
  dulwich.cli.cmd_archive:
  - 1098
  dulwich.cli.cmd_archive.run:
  - 1123
  - 1124
  - 1125
  - 1126
  - 1101
  - 1135
  - 1106
  - 1107
  - 1112
  - 1113
  - 1114
  - 1115
  dulwich.cli.cmd_archive.run.stderr_write:
  - 1121
  dulwich.cli.cmd_archive.run.stdout_write:
  - 1118
  dulwich.cli.cmd_bisect:
  - 4066
  dulwich.cli.cmd_bisect.run:
  - 4099
  - 4100
  - 4103
  - 4104
  - 4107
  - 4108
  - 4111
  - 4112
  - 4115
  - 4118
  - 4119
  - 4122
  - 4124
  - 4126
  - 4127
  - 4131
  - 4132
  - 4140
  - 4141
  - 4142
  - 4145
  - 4146
  - 4147
  - 4148
  - 4149
  - 4153
  - 4154
  - 4155
  - 4156
  - 4158
  - 4159
  - 4162
  - 4163
  - 4165
  - 4166
  - 4168
  - 4169
  - 4170
  - 4171
  - 4172
  - 4175
  - 4176
  - 4179
  - 4180
  - 4181
  - 4184
  - 4185
  - 4186
  - 4188
  - 4189
  - 4190
  - 4192
  - 4193
  - 4194
  - 4196
  - 4197
  - 4071
  - 4200
  - 4203
  - 4076
  - 4077
  - 4080
  - 4081
  - 4082
  - 4083
  - 4088
  - 4091
  - 4094
  dulwich.cli.cmd_blame:
  - 1189
  dulwich.cli.cmd_blame.run:
  - 1192
  - 1198
  dulwich.cli.cmd_branch:
  - 3742
  dulwich.cli.cmd_branch.run:
  - 3840
  - 3841
  - 3844
  - 3845
  - 3848
  - 3850
  - 3745
  - 3750
  - 3751
  - 3757
  - 3763
  - 3764
  - 3767
  - 3772
  - 3775
  - 3781
  - 3784
  - 3790
  - 3806
  - 3807
  - 3810
  - 3811
  - 3812
  - 3813
  - 3814
  - 3815
  - 3816
  - 3818
  - 3819
  - 3823
  - 3824
  - 3829
  - 3833
  - 3834
  - 3836
  - 3837
  dulwich.cli.cmd_branch.run.print_branches:
  - 3795
  - 3796
  - 3797
  - 3798
  - 3800
  - 3801
  dulwich.cli.cmd_bundle:
  - 6020
  dulwich.cli.cmd_bundle._create:
  - 6048
  - 6049
  - 6052
  - 6053
  - 6056
  - 6057
  - 6058
  - 6059
  - 6061
  - 6063
  - 6066
  - 6084
  - 6085
  - 6086
  - 6087
  - 6088
  - 6089
  - 6090
  - 6091
  - 6092
  - 6093
  - 6094
  - 6095
  - 6097
  - 6100
  - 6101
  - 6102
  - 6103
  - 6104
  - 6106
  - 6107
  - 6109
  - 6110
  - 6111
  - 6113
  - 6114
  - 6116
  - 6119
  - 6120
  - 6123
  - 6131
  - 6132
  - 6134
  - 6135
  dulwich.cli.cmd_bundle._create.progress:
  - 6070
  - 6072
  - 6075
  - 6077
  - 6078
  - 6079
  dulwich.cli.cmd_bundle._list_heads:
  - 6180
  - 6181
  - 6182
  - 6184
  - 6191
  - 6192
  - 6193
  - 6195
  - 6196
  - 6197
  dulwich.cli.cmd_bundle._list_heads.list_heads:
  - 6187
  - 6188
  - 6189
  dulwich.cli.cmd_bundle._unbundle:
  - 6240
  - 6209
  - 6241
  - 6242
  - 6212
  - 6235
  - 6236
  - 6229
  - 6230
  - 6232
  - 6202
  - 6203
  - 6204
  - 6205
  - 6238
  - 6207
  dulwich.cli.cmd_bundle._unbundle.progress:
  - 6216
  - 6218
  - 6221
  - 6223
  - 6224
  - 6225
  - 6226
  - 6227
  dulwich.cli.cmd_bundle._verify:
  - 6144
  - 6176
  - 6146
  - 6177
  - 6148
  - 6172
  - 6173
  - 6171
  - 6140
  - 6141
  - 6175
  dulwich.cli.cmd_bundle._verify.verify_bundle:
  - 6152
  - 6154
  - 6156
  - 6158
  - 6159
  - 6160
  - 6161
  - 6162
  - 6165
  - 6166
  dulwich.cli.cmd_bundle.run:
  - 6023
  - 6028
  - 6029
  - 6035
  - 6036
  - 6037
  - 6038
  - 6039
  - 6040
  - 6041
  - 6042
  - 6044
  dulwich.cli.cmd_check_ignore:
  - 3706
  dulwich.cli.cmd_check_ignore.run:
  - 3714
  - 3715
  - 3716
  - 3718
  - 3719
  - 3709
  dulwich.cli.cmd_check_mailmap:
  - 3725
  dulwich.cli.cmd_check_mailmap.run:
  - 3728
  - 3733
  - 3734
  - 3735
  - 3736
  - 3737
  - 3738
  dulwich.cli.cmd_checkout:
  - 3856
  dulwich.cli.cmd_checkout.run:
  - 3876
  - 3882
  - 3883
  - 3884
  - 3888
  - 3859
  - 3895
  - 3864
  - 3865
  - 3870
  dulwich.cli.cmd_cherry:
  - 4636
  dulwich.cli.cmd_cherry.run:
  - 4672
  - 4647
  - 4648
  - 4680
  - 4684
  - 4654
  - 4686
  - 4687
  - 4659
  - 4691
  - 4692
  - 4693
  - 4695
  - 4664
  - 4669
  - 4639
  dulwich.cli.cmd_cherry_pick:
  - 4701
  dulwich.cli.cmd_cherry_pick.run:
  - 4738
  - 4739
  - 4745
  - 4753
  - 4754
  - 4755
  - 4756
  - 4757
  - 4759
  - 4760
  - 4761
  - 4762
  - 4765
  - 4767
  - 4771
  - 4704
  - 4709
  - 4712
  - 4713
  - 4719
  - 4725
  - 4730
  - 4733
  - 4734
  - 4735
  dulwich.cli.cmd_clone:
  - 1893
  dulwich.cli.cmd_clone.run:
  - 1920
  - 1953
  - 1926
  - 1896
  - 1931
  - 1901
  - 1902
  - 1936
  - 1937
  - 1938
  - 1907
  - 1908
  - 1941
  - 1914
  dulwich.cli.cmd_column:
  - 1809
  dulwich.cli.cmd_column.run:
  - 1856
  - 1859
  - 1829
  - 1834
  - 1868
  - 1839
  - 1812
  - 1844
  - 1817
  - 1850
  - 1820
  - 1854
  dulwich.cli.cmd_commit:
  - 2219
  dulwich.cli.cmd_commit.run:
  - 2240
  - 2274
  - 2244
  - 2246
  - 2222
  - 2227
  - 2228
  - 2229
  - 2235
  - 2270
  dulwich.cli.cmd_commit.run.get_amend_message:
  - 2259
  - 2252
  - 2253
  dulwich.cli.cmd_commit.run.get_regular_message:
  - 2265
  dulwich.cli.cmd_commit_tree:
  - 2280
  dulwich.cli.cmd_commit_tree.run:
  - 2283
  - 2288
  - 2289
  - 2290
  - 2291
  - 2292
  dulwich.cli.cmd_config:
  - 2003
  dulwich.cli.cmd_config.run:
  - 2049
  - 2180
  - 2054
  - 2184
  - 2057
  - 2185
  - 2059
  - 2186
  - 2063
  - 2192
  - 2193
  - 2194
  - 2067
  - 2195
  - 2198
  - 2072
  - 2073
  - 2075
  - 2203
  - 2206
  - 2079
  - 2080
  - 2081
  - 2082
  - 2083
  - 2207
  - 2208
  - 2086
  - 2210
  - 2088
  - 2214
  - 2090
  - 2094
  - 2095
  - 2096
  - 2172
  - 2100
  - 2101
  - 2102
  - 2105
  - 2110
  - 2116
  - 2118
  - 2122
  - 2123
  - 2125
  - 2127
  - 2128
  - 2130
  - 2132
  - 2006
  - 2135
  - 2011
  - 2012
  - 2141
  - 2142
  - 2143
  - 2018
  - 2146
  - 2147
  - 2148
  - 2023
  - 2151
  - 2155
  - 2029
  - 2159
  - 2161
  - 2034
  - 2163
  - 2039
  - 2169
  - 2170
  - 2171
  - 2044
  - 2175
  dulwich.cli.cmd_count_objects:
  - 5146
  dulwich.cli.cmd_count_objects.run:
  - 5154
  - 5155
  - 5161
  - 5163
  - 5164
  - 5166
  - 5167
  - 5169
  - 5171
  - 5173
  - 5176
  - 5177
  - 5149
  dulwich.cli.cmd_daemon:
  - 3115
  dulwich.cli.cmd_daemon.run:
  - 3141
  - 3144
  - 3146
  - 3147
  - 3118
  - 3127
  - 3128
  - 3134
  dulwich.cli.cmd_describe:
  - 4235
  dulwich.cli.cmd_describe.run:
  - 4243
  - 4244
  - 4245
  - 4238
  dulwich.cli.cmd_diagnose:
  - 4249
  dulwich.cli.cmd_diagnose.run:
  - 4252
  - 4258
  - 4259
  - 4262
  - 4263
  - 4266
  - 4267
  - 4268
  - 4270
  - 4273
  - 4274
  - 4275
  - 4281
  - 4283
  - 4286
  - 4305
  - 4307
  - 4308
  - 4309
  - 4311
  dulwich.cli.cmd_diff:
  - 1436
  dulwich.cli.cmd_diff.run:
  - 1538
  - 1540
  - 1547
  - 1549
  - 1550
  - 1553
  - 1561
  - 1563
  - 1439
  - 1444
  - 1445
  - 1572
  - 1574
  - 1448
  - 1449
  - 1575
  - 1577
  - 1579
  - 1580
  - 1454
  - 1581
  - 1582
  - 1583
  - 1586
  - 1587
  - 1460
  - 1465
  - 1471
  - 1476
  - 1479
  - 1482
  - 1483
  - 1484
  - 1487
  - 1491
  - 1523
  - 1524
  - 1525
  - 1527
  - 1532
  - 1535
  dulwich.cli.cmd_diff.run._create_output_stream:
  - 1504
  - 1505
  - 1510
  - 1511
  - 1516
  - 1521
  dulwich.cli.cmd_diff.run._should_use_color:
  - 1496
  - 1498
  - 1501
  dulwich.cli.cmd_diff_tree:
  - 2708
  dulwich.cli.cmd_diff_tree.run:
  - 2720
  - 2711
  - 2716
  - 2717
  - 2718
  - 2719
  dulwich.cli.cmd_dump_index:
  - 1627
  dulwich.cli.cmd_dump_index.run:
  - 1635
  - 1636
  - 1637
  - 1639
  - 1641
  - 1642
  - 1630
  dulwich.cli.cmd_dump_pack:
  - 1591
  dulwich.cli.cmd_dump_pack.run:
  - 1600
  - 1601
  - 1603
  - 1604
  - 1605
  - 1606
  - 1607
  - 1608
  - 1609
  - 1611
  - 1613
  - 1615
  - 1619
  - 1621
  - 1594
  - 1599
  dulwich.cli.cmd_fetch:
  - 1276
  dulwich.cli.cmd_fetch.run:
  - 1284
  - 1287
  - 1288
  - 1291
  - 1296
  - 1297
  - 1300
  - 1304
  - 1309
  - 1314
  - 1320
  - 1322
  - 1329
  - 1331
  - 1335
  - 1337
  - 1338
  - 1339
  - 1340
  - 1341
  - 1343
  - 1344
  - 1347
  - 1348
  - 1349
  - 1359
  - 1279
  dulwich.cli.cmd_fetch.run.progress:
  - 1325
  dulwich.cli.cmd_fetch_pack:
  - 1244
  dulwich.cli.cmd_fetch_pack.run:
  - 1252
  - 1253
  - 1254
  - 1255
  - 1256
  - 1257
  - 1258
  - 1259
  - 1272
  - 1247
  dulwich.cli.cmd_fetch_pack.run.determine_wants:
  - 1267
  dulwich.cli.cmd_filter_branch:
  - 5305
  dulwich.cli.cmd_filter_branch.run:
  - 5509
  - 5511
  - 5512
  - 5513
  - 5514
  - 5387
  - 5515
  - 5516
  - 5520
  - 5521
  - 5394
  - 5522
  - 5525
  - 5530
  - 5548
  - 5549
  - 5553
  - 5554
  - 5555
  - 5558
  - 5561
  - 5308
  - 5564
  - 5569
  - 5315
  - 5445
  - 5318
  - 5323
  - 5324
  - 5325
  - 5326
  - 5327
  - 5328
  - 5329
  - 5454
  - 5332
  - 5335
  - 5341
  - 5475
  - 5349
  - 5353
  - 5359
  - 5502
  dulwich.cli.cmd_filter_branch.run.commit_filter:
  - 5481
  - 5482
  - 5483
  - 5485
  - 5487
  - 5488
  - 5490
  - 5493
  - 5494
  - 5497
  - 5498
  dulwich.cli.cmd_filter_branch.run.filter_message:
  - 5390
  dulwich.cli.cmd_filter_branch.run.index_filter:
  - 5448
  dulwich.cli.cmd_filter_branch.run.parent_filter:
  - 5457
  - 5458
  - 5459
  - 5461
  - 5462
  - 5464
  - 5465
  - 5468
  - 5469
  - 5470
  - 5471
  dulwich.cli.cmd_filter_branch.run.run_filter:
  - 5380
  - 5369
  - 5370
  - 5371
  - 5372
  dulwich.cli.cmd_filter_branch.run.tag_name_filter:
  - 5505
  dulwich.cli.cmd_filter_branch.run.tree_filter:
  - 5408
  - 5409
  - 5442
  - 5411
  - 5412
  - 5415
  - 5400
  - 5402
  - 5403
  - 5406
  dulwich.cli.cmd_filter_branch.run.tree_filter.build_tree_from_dir:
  - 5419
  - 5420
  - 5421
  - 5423
  - 5424
  - 5425
  - 5426
  - 5428
  - 5429
  - 5430
  - 5431
  - 5433
  - 5434
  - 5438
  - 5439
  dulwich.cli.cmd_for_each_ref:
  - 1370
  dulwich.cli.cmd_for_each_ref.run:
  - 1378
  - 1379
  - 1380
  - 1381
  - 1382
  - 1373
  dulwich.cli.cmd_format_patch:
  - 5796
  dulwich.cli.cmd_format_patch.run:
  - 5856
  - 5828
  - 5799
  - 5832
  - 5833
  - 5834
  - 5835
  - 5804
  - 5805
  - 5839
  - 5840
  - 5841
  - 5810
  - 5855
  - 5845
  - 5817
  - 5854
  - 5823
  dulwich.cli.cmd_fsck:
  - 1386
  dulwich.cli.cmd_fsck.run:
  - 1389
  - 1394
  - 1395
  - 1396
  - 1397
  dulwich.cli.cmd_gc:
  - 4845
  dulwich.cli.cmd_gc.run:
  - 4867
  - 4872
  - 4878
  - 4884
  - 4890
  - 4894
  - 4898
  - 4902
  - 4903
  - 4905
  - 4907
  - 4917
  - 4928
  - 4929
  - 4930
  - 4931
  - 4932
  - 4933
  - 4935
  - 4937
  - 4938
  - 4939
  - 4941
  - 4943
  - 4944
  - 4951
  - 4848
  - 4856
  - 4857
  - 4862
  dulwich.cli.cmd_gc.run.progress:
  - 4913
  - 4914
  dulwich.cli.cmd_grep:
  - 5073
  dulwich.cli.cmd_grep.run:
  - 5089
  - 5125
  - 5094
  - 5129
  - 5130
  - 5131
  - 5100
  - 5132
  - 5106
  - 5076
  - 5112
  - 5081
  - 5082
  - 5083
  - 5117
  dulwich.cli.cmd_help:
  - 5765
  dulwich.cli.cmd_help.run:
  - 5768
  - 5773
  - 5774
  - 5780
  - 5782
  - 5783
  - 5784
  - 5785
  - 5787
  dulwich.cli.cmd_init:
  - 1872
  dulwich.cli.cmd_init.run:
  - 1889
  - 1875
  - 1880
  - 1881
  - 1884
  - 1885
  - 1887
  dulwich.cli.cmd_interpret_trailers:
  - 1646
  dulwich.cli.cmd_interpret_trailers.run:
  - 1667
  - 1672
  - 1677
  - 1682
  - 1685
  - 1690
  - 1696
  - 1708
  - 1714
  - 1717
  - 1718
  - 1719
  - 1721
  - 1725
  - 1726
  - 1728
  - 1729
  - 1730
  - 1731
  - 1735
  - 1738
  - 1752
  - 1649
  - 1654
  - 1655
  - 1660
  dulwich.cli.cmd_lfs:
  - 5576
  - 5574
  dulwich.cli.cmd_lfs.run:
  - 5635
  - 5638
  - 5641
  - 5644
  - 5647
  - 5652
  - 5653
  - 5654
  - 5657
  - 5659
  - 5661
  - 5662
  - 5663
  - 5665
  - 5666
  - 5667
  - 5668
  - 5670
  - 5671
  - 5672
  - 5673
  - 5675
  - 5676
  - 5677
  - 5678
  - 5679
  - 5681
  - 5682
  - 5683
  - 5684
  - 5686
  - 5687
  - 5688
  - 5691
  - 5692
  - 5695
  - 5697
  - 5698
  - 5699
  - 5700
  - 5701
  - 5702
  - 5704
  - 5705
  - 5706
  - 5709
  - 5710
  - 5713
  - 5714
  - 5715
  - 5717
  - 5718
  - 5719
  - 5720
  - 5721
  - 5723
  - 5724
  - 5726
  - 5728
  - 5729
  - 5731
  - 5732
  - 5733
  - 5735
  - 5737
  - 5738
  - 5740
  - 5741
  - 5743
  - 5744
  - 5746
  - 5747
  - 5748
  - 5749
  - 5751
  - 5752
  - 5753
  - 5754
  - 5756
  - 5757
  - 5760
  - 5761
  - 5579
  - 5584
  - 5585
  - 5588
  - 5591
  - 5594
  - 5597
  - 5600
  - 5605
  - 5606
  - 5609
  - 5610
  - 5611
  - 5612
  - 5617
  - 5618
  - 5623
  - 5624
  - 5627
  - 5630
  dulwich.cli.cmd_log:
  - 1401
  dulwich.cli.cmd_log.run:
  - 1409
  - 1410
  - 1415
  - 1420
  - 1421
  - 1423
  - 1424
  - 1425
  - 1426
  - 1404
  dulwich.cli.cmd_ls_files:
  - 4220
  dulwich.cli.cmd_ls_files.run:
  - 4228
  - 4229
  - 4230
  - 4231
  - 4223
  dulwich.cli.cmd_ls_remote:
  - 3317
  dulwich.cli.cmd_ls_remote.run:
  - 3329
  - 3330
  - 3331
  - 3333
  - 3335
  - 3336
  - 3337
  - 3340
  - 3342
  - 3343
  - 3320
  - 3325
  - 3326
  dulwich.cli.cmd_ls_tree:
  - 3347
  dulwich.cli.cmd_ls_tree.run:
  - 3362
  - 3365
  - 3366
  - 3367
  - 3368
  - 3369
  - 3370
  - 3350
  - 3355
  - 3356
  dulwich.cli.cmd_mailinfo:
  - 5946
  dulwich.cli.cmd_mailinfo.run:
  - 6016
  - 5985
  - 5954
  - 5955
  - 5990
  - 5959
  - 6012
  - 5963
  - 5997
  - 6013
  - 5968
  - 6000
  - 5974
  - 5980
  - 5949
  - 6014
  - 6015
  dulwich.cli.cmd_mailsplit:
  - 5860
  dulwich.cli.cmd_mailsplit.run:
  - 5894
  - 5901
  - 5906
  - 5911
  - 5915
  - 5916
  - 5917
  - 5919
  - 5920
  - 5921
  - 5922
  - 5929
  - 5940
  - 5941
  - 5863
  - 5868
  - 5869
  - 5874
  - 5881
  - 5887
  dulwich.cli.cmd_maintenance:
  - 4957
  dulwich.cli.cmd_maintenance.run:
  - 4993
  - 4996
  - 4999
  - 5002
  - 5005
  - 5011
  - 5013
  - 5014
  - 5017
  - 5024
  - 5032
  - 5033
  - 5034
  - 5035
  - 5036
  - 5038
  - 5039
  - 5040
  - 5041
  - 5042
  - 5046
  - 5048
  - 5049
  - 5050
  - 5051
  - 5053
  - 5054
  - 5056
  - 5058
  - 5059
  - 5061
  - 5066
  - 4960
  - 4965
  - 4968
  - 4973
  - 4974
  - 4980
  - 4985
  dulwich.cli.cmd_maintenance.run.progress:
  - 5020
  - 5021
  dulwich.cli.cmd_merge:
  - 4315
  dulwich.cli.cmd_merge.run:
  - 4352
  - 4353
  - 4354
  - 4355
  - 4359
  - 4363
  - 4364
  - 4365
  - 4366
  - 4369
  - 4370
  - 4372
  - 4375
  - 4377
  - 4381
  - 4318
  - 4323
  - 4324
  - 4325
  - 4328
  - 4331
  - 4332
  - 4337
  - 4342
  - 4350
  - 4351
  dulwich.cli.cmd_merge_base:
  - 4386
  dulwich.cli.cmd_merge_base.run:
  - 4389
  - 4394
  - 4398
  - 4399
  - 4400
  - 4405
  - 4410
  - 4415
  - 4418
  - 4419
  - 4420
  - 4422
  - 4428
  - 4429
  - 4430
  - 4431
  - 4434
  - 4435
  - 4437
  - 4443
  - 4444
  - 4447
  dulwich.cli.cmd_merge_tree:
  - 4776
  dulwich.cli.cmd_merge_tree.run:
  - 4779
  - 4784
  - 4787
  - 4792
  - 4793
  - 4794
  - 4800
  - 4804
  - 4815
  - 4819
  - 4821
  - 4822
  - 4823
  - 4826
  - 4829
  - 4830
  - 4831
  - 4832
  - 4837
  - 4840
  dulwich.cli.cmd_mv:
  - 1221
  dulwich.cli.cmd_mv.run:
  - 1224
  - 1229
  - 1230
  - 1236
  - 1237
  - 1238
  - 1240
  dulwich.cli.cmd_notes:
  - 4540
  dulwich.cli.cmd_notes_add:
  - 4452
  dulwich.cli.cmd_notes_add.run:
  - 4455
  - 4460
  - 4461
  - 4462
  - 4463
  - 4466
  - 4468
  dulwich.cli.cmd_notes_list:
  - 4520
  dulwich.cli.cmd_notes_list.run:
  - 4523
  - 4528
  - 4529
  - 4532
  - 4534
  - 4535
  - 4536
  dulwich.cli.cmd_notes_remove:
  - 4497
  dulwich.cli.cmd_notes_remove.run:
  - 4512
  - 4513
  - 4514
  - 4516
  - 4500
  - 4505
  - 4506
  - 4507
  - 4510
  dulwich.cli.cmd_notes_show:
  - 4474
  dulwich.cli.cmd_notes_show.run:
  - 4482
  - 4483
  - 4484
  - 4487
  - 4489
  - 4490
  - 4491
  - 4493
  - 4477
  dulwich.cli.cmd_pack_objects:
  - 3380
  dulwich.cli.cmd_pack_objects.run:
  - 3392
  - 3393
  - 3396
  - 3397
  - 3399
  - 3400
  - 3402
  - 3406
  - 3407
  - 3408
  - 3412
  - 3413
  - 3420
  - 3383
  - 3416
  - 3419
  - 3388
  - 3389
  dulwich.cli.cmd_pack_refs:
  - 2357
  dulwich.cli.cmd_pack_refs.run:
  - 2368
  - 2370
  - 2372
  - 2360
  - 2365
  - 2366
  dulwich.cli.cmd_prune:
  - 3441
  dulwich.cli.cmd_prune.run:
  - 3488
  - 3457
  - 3490
  - 3463
  - 3499
  - 3469
  - 3475
  - 3444
  - 3507
  - 3479
  - 3483
  - 3454
  - 3487
  dulwich.cli.cmd_prune.run.progress:
  - 3496
  - 3495
  dulwich.cli.cmd_pull:
  - 3512
  dulwich.cli.cmd_pull.run:
  - 3520
  - 3521
  - 3522
  - 3523
  - 3524
  - 3525
  - 3526
  - 3515
  dulwich.cli.cmd_push:
  - 3536
  dulwich.cli.cmd_push.run:
  - 3554
  - 3539
  - 3544
  - 3545
  - 3546
  - 3547
  - 3548
  - 3550
  dulwich.cli.cmd_rebase:
  - 5181
  dulwich.cli.cmd_rebase.run:
  - 5249
  - 5253
  - 5256
  - 5257
  - 5259
  - 5264
  - 5265
  - 5269
  - 5271
  - 5278
  - 5279
  - 5283
  - 5286
  - 5293
  - 5294
  - 5296
  - 5300
  - 5184
  - 5189
  - 5190
  - 5193
  - 5194
  - 5197
  - 5200
  - 5205
  - 5208
  - 5214
  - 5217
  - 5220
  - 5222
  - 5223
  - 5225
  - 5229
  - 5232
  - 5233
  - 5239
  - 5240
  - 5242
  - 5244
  - 5247
  dulwich.cli.cmd_receive_pack:
  - 3207
  dulwich.cli.cmd_receive_pack.run:
  - 3210
  - 3215
  - 3216
  - 3217
  - 3218
  dulwich.cli.cmd_reflog:
  - 2894
  dulwich.cli.cmd_reflog._run_delete:
  - 3032
  - 3036
  - 3045
  - 3039
  dulwich.cli.cmd_reflog._run_expire:
  - 3008
  - 3009
  - 3014
  - 3024
  - 3025
  - 3026
  - 3027
  - 3029
  - 3001
  - 3006
  - 3007
  dulwich.cli.cmd_reflog._run_show:
  - 2976
  - 2980
  - 2981
  - 2985
  - 2989
  - 2990
  - 2992
  - 2996
  - 2997
  - 2966
  - 2967
  - 2968
  - 2969
  - 2970
  - 2972
  - 2973
  - 2974
  - 2975
  dulwich.cli.cmd_reflog.run:
  - 2945
  - 2952
  - 2954
  - 2956
  - 2958
  - 2959
  - 2960
  - 2961
  - 2963
  - 2897
  - 2902
  - 2903
  - 2906
  - 2909
  - 2912
  - 2917
  - 2918
  - 2921
  - 2924
  - 2929
  - 2934
  - 2939
  - 2942
  dulwich.cli.cmd_remote:
  - 3606
  dulwich.cli.cmd_remote_add:
  - 3561
  dulwich.cli.cmd_remote_add.run:
  - 3564
  - 3569
  - 3570
  - 3571
  - 3572
  - 3573
  dulwich.cli.cmd_repack:
  - 2875
  dulwich.cli.cmd_repack.run:
  - 2883
  - 2884
  - 2889
  - 2890
  - 2878
  dulwich.cli.cmd_replace:
  - 4597
  dulwich.cli.cmd_replace.run:
  - 4616
  - 4618
  - 4619
  - 4620
  - 4621
  - 4623
  - 4624
  - 4632
  - 4607
  dulwich.cli.cmd_replace_delete:
  - 4572
  dulwich.cli.cmd_replace_delete.run:
  - 4583
  - 4584
  - 4585
  - 4588
  - 4589
  - 4592
  - 4575
  dulwich.cli.cmd_replace_list:
  - 4553
  dulwich.cli.cmd_replace_list.run:
  - 4556
  - 4561
  - 4562
  - 4564
  - 4565
  - 4566
  - 4567
  dulwich.cli.cmd_rerere:
  - 6576
  dulwich.cli.cmd_rerere.run:
  - 6579
  - 6584
  - 6585
  - 6586
  - 6593
  - 6596
  - 6602
  - 6604
  - 6606
  - 6607
  - 6608
  - 6610
  - 6611
  - 6612
  - 6614
  - 6615
  - 6616
  - 6617
  - 6619
  - 6620
  - 6621
  - 6622
  - 6624
  - 6626
  - 6628
  - 6629
  - 6630
  - 6631
  - 6633
  - 6634
  - 6635
  - 6636
  - 6637
  - 6638
  - 6639
  - 6640
  - 6642
  - 6643
  - 6644
  - 6645
  - 6647
  - 6649
  - 6650
  - 6651
  - 6653
  - 6654
  - 6655
  dulwich.cli.cmd_reset:
  - 3049
  dulwich.cli.cmd_reset.run:
  - 3073
  - 3080
  - 3052
  - 3057
  - 3058
  - 3059
  - 3062
  - 3063
  - 3066
  - 3067
  - 3069
  - 3071
  dulwich.cli.cmd_restore:
  - 3901
  dulwich.cli.cmd_restore.run:
  - 3904
  - 3909
  - 3910
  - 3943
  - 3916
  - 3951
  - 3922
  - 3927
  - 3932
  - 3935
  dulwich.cli.cmd_rev_list:
  - 2724
  dulwich.cli.cmd_rev_list.run:
  - 2727
  - 2732
  - 2733
  - 2734
  - 2735
  dulwich.cli.cmd_revert:
  - 3084
  dulwich.cli.cmd_revert.run:
  - 3110
  - 3111
  - 3087
  - 3092
  - 3093
  - 3099
  - 3100
  - 3101
  - 3103
  dulwich.cli.cmd_rm:
  - 1202
  dulwich.cli.cmd_rm.run:
  - 1217
  - 1205
  - 1210
  - 1211
  - 1214
  - 1215
  dulwich.cli.cmd_shortlog:
  - 3237
  dulwich.cli.cmd_shortlog.run:
  - 3264
  - 3266
  - 3267
  - 3268
  - 3269
  - 3240
  - 3245
  - 3246
  - 3247
  - 3248
  - 3251
  - 3253
  - 3259
  - 3262
  - 3263
  dulwich.cli.cmd_show:
  - 2421
  dulwich.cli.cmd_show.run:
  - 2437
  - 2472
  - 2473
  - 2474
  - 2475
  - 2476
  - 2424
  - 2429
  - 2430
  - 2431
  dulwich.cli.cmd_show.run._create_output_stream:
  - 2469
  - 2470
  - 2449
  - 2450
  - 2455
  - 2456
  - 2461
  dulwich.cli.cmd_show.run._should_use_color:
  - 2441
  - 2443
  - 2446
  dulwich.cli.cmd_show_branch:
  - 2612
  dulwich.cli.cmd_show_branch.run:
  - 2684
  - 2658
  - 2629
  - 2647
  - 2664
  - 2697
  - 2636
  - 2701
  - 2670
  - 2702
  - 2641
  - 2676
  - 2615
  - 2681
  - 2652
  - 2622
  - 2623
  dulwich.cli.cmd_show_ref:
  - 2480
  dulwich.cli.cmd_show_ref.run:
  - 2560
  - 2561
  - 2562
  - 2567
  - 2572
  - 2582
  - 2586
  - 2587
  - 2588
  - 2592
  - 2595
  - 2598
  - 2599
  - 2600
  - 2603
  - 2604
  - 2606
  - 2483
  - 2490
  - 2491
  - 2496
  - 2501
  - 2506
  - 2512
  - 2521
  - 2529
  - 2534
  - 2539
  - 2545
  - 2550
  - 2553
  - 2554
  - 2555
  - 2559
  dulwich.cli.cmd_stash:
  - 4210
  dulwich.cli.cmd_stash_list:
  - 4012
  dulwich.cli.cmd_stash_list.run:
  - 4015
  - 4020
  - 4021
  - 4025
  - 4026
  - 4027
  - 4028
  - 4031
  dulwich.cli.cmd_stash_pop:
  - 4051
  dulwich.cli.cmd_stash_pop.run:
  - 4054
  - 4059
  - 4060
  - 4061
  - 4062
  dulwich.cli.cmd_stash_push:
  - 4036
  dulwich.cli.cmd_stash_push.run:
  - 4039
  - 4044
  - 4045
  - 4046
  - 4047
  dulwich.cli.cmd_status:
  - 3273
  dulwich.cli.cmd_status.run:
  - 3276
  - 3281
  - 3282
  - 3283
  - 3288
  - 3289
  - 3290
  - 3291
  - 3292
  - 3293
  - 3294
  - 3295
  - 3297
  - 3298
  - 3299
  - 3300
  - 3301
  - 3302
  - 3303
  - 3304
  - 3305
  - 3308
  - 3309
  - 3311
  - 3312
  - 3313
  dulwich.cli.cmd_stripspace:
  - 1756
  dulwich.cli.cmd_stripspace.run:
  - 1792
  - 1794
  - 1764
  - 1765
  - 1797
  - 1770
  - 1805
  - 1776
  - 1791
  - 1782
  - 1787
  - 1790
  - 1759
  dulwich.cli.cmd_submodule:
  - 3693
  dulwich.cli.cmd_submodule_add:
  - 3643
  dulwich.cli.cmd_submodule_add.run:
  - 3651
  - 3652
  - 3653
  - 3654
  - 3655
  - 3656
  - 3646
  dulwich.cli.cmd_submodule_init:
  - 3629
  dulwich.cli.cmd_submodule_init.run:
  - 3632
  - 3637
  - 3638
  - 3639
  dulwich.cli.cmd_submodule_list:
  - 3614
  dulwich.cli.cmd_submodule_list.run:
  - 3617
  - 3622
  - 3623
  - 3624
  - 3625
  dulwich.cli.cmd_submodule_update:
  - 3660
  dulwich.cli.cmd_submodule_update.run:
  - 3682
  - 3685
  - 3687
  - 3663
  - 3668
  - 3669
  - 3672
  - 3677
  dulwich.cli.cmd_switch:
  - 3957
  dulwich.cli.cmd_switch.run:
  - 3971
  - 4006
  - 3977
  - 3983
  - 3998
  - 3989
  - 3992
  - 3991
  - 3960
  - 3965
  - 3966
  dulwich.cli.cmd_symbolic_ref:
  - 2308
  dulwich.cli.cmd_symbolic_ref.run:
  - 2336
  - 2338
  - 2339
  - 2340
  - 2311
  - 2344
  - 2345
  - 2347
  - 2316
  - 2317
  - 2318
  - 2319
  - 2320
  - 2350
  - 2323
  - 2327
  - 2328
  - 2329
  dulwich.cli.cmd_tag:
  - 2739
  dulwich.cli.cmd_tag.run:
  - 2754
  - 2757
  - 2758
  - 2759
  - 2742
  - 2747
  - 2748
  dulwich.cli.cmd_unpack_objects:
  - 3424
  dulwich.cli.cmd_unpack_objects.run:
  - 3427
  - 3432
  - 3433
  - 3434
  - 3436
  - 3437
  dulwich.cli.cmd_update_server_info:
  - 2296
  dulwich.cli.cmd_update_server_info.run:
  - 2304
  - 2299
  dulwich.cli.cmd_upload_pack:
  - 3222
  dulwich.cli.cmd_upload_pack.run:
  - 3232
  - 3233
  - 3225
  - 3230
  - 3231
  dulwich.cli.cmd_var:
  - 2376
  dulwich.cli.cmd_var.run:
  - 2400
  - 2401
  - 2402
  - 2404
  - 2407
  - 2408
  - 2379
  - 2411
  - 2415
  - 2384
  - 2385
  - 2416
  - 2390
  - 2396
  - 2398
  dulwich.cli.cmd_verify_commit:
  - 2768
  dulwich.cli.cmd_verify_commit.run:
  - 2786
  - 2791
  - 2797
  - 2800
  - 2802
  - 2771
  - 2804
  - 2809
  - 2810
  - 2779
  - 2780
  - 2813
  - 2814
  - 2811
  dulwich.cli.cmd_verify_tag:
  - 2824
  dulwich.cli.cmd_verify_tag.run:
  - 2848
  - 2851
  - 2853
  - 2855
  - 2827
  - 2860
  - 2861
  - 2862
  - 2864
  - 2865
  - 2835
  - 2836
  - 2842
  - 2847
  dulwich.cli.cmd_web_daemon:
  - 3155
  dulwich.cli.cmd_web_daemon.run:
  - 3172
  - 3179
  - 3182
  - 3184
  - 3185
  - 3158
  - 3165
  - 3166
  dulwich.cli.cmd_worktree:
  - 6560
  - 6558
  dulwich.cli.cmd_worktree_add:
  - 6248
  - 6250
  dulwich.cli.cmd_worktree_add.run:
  - 6272
  - 6279
  - 6280
  - 6283
  - 6253
  - 6285
  - 6286
  - 6288
  - 6258
  - 6290
  - 6261
  - 6262
  - 6263
  - 6264
  - 6298
  - 6267
  - 6296
  - 6270
  dulwich.cli.cmd_worktree_list:
  - 6305
  - 6303
  dulwich.cli.cmd_worktree_list.run:
  - 6337
  - 6338
  - 6308
  - 6343
  - 6313
  - 6346
  - 6316
  - 6349
  - 6319
  - 6323
  - 6356
  - 6358
  - 6327
  - 6360
  - 6329
  - 6331
  - 6333
  - 6335
  dulwich.cli.cmd_worktree_lock:
  - 6440
  - 6438
  dulwich.cli.cmd_worktree_lock.run:
  - 6443
  - 6448
  - 6451
  - 6452
  - 6454
  - 6458
  - 6461
  dulwich.cli.cmd_worktree_move:
  - 6491
  - 6493
  dulwich.cli.cmd_worktree_move.run:
  - 6496
  - 6501
  - 6504
  - 6505
  - 6507
  - 6511
  - 6514
  dulwich.cli.cmd_worktree_prune:
  - 6393
  - 6395
  dulwich.cli.cmd_worktree_prune.run:
  - 6432
  - 6433
  - 6403
  - 6431
  - 6406
  - 6409
  - 6412
  - 6416
  - 6420
  - 6424
  - 6425
  - 6426
  - 6427
  - 6428
  - 6398
  - 6430
  dulwich.cli.cmd_worktree_remove:
  - 6365
  - 6367
  dulwich.cli.cmd_worktree_remove.run:
  - 6370
  - 6375
  - 6378
  - 6379
  - 6381
  - 6385
  - 6388
  dulwich.cli.cmd_worktree_repair:
  - 6521
  - 6523
  dulwich.cli.cmd_worktree_repair.run:
  - 6531
  - 6535
  - 6541
  - 6546
  - 6548
  - 6549
  - 6550
  - 6552
  - 6526
  dulwich.cli.cmd_worktree_unlock:
  - 6466
  - 6468
  dulwich.cli.cmd_worktree_unlock.run:
  - 6471
  - 6476
  - 6479
  - 6481
  - 6485
  - 6486
  dulwich.cli.cmd_write_tree:
  - 3193
  dulwich.cli.cmd_write_tree.run:
  - 3201
  - 3202
  - 3203
  - 3196
  dulwich.cli.detect_terminal_width:
  - 418
  - 412
  dulwich.cli.disable_pager:
  - 1080
  dulwich.cli.enable_pager:
  - 1085
  dulwich.cli.format_bytes:
  - 373
  - 365
  - 374
  dulwich.cli.format_columns:
  - 527
  - 530
  - 531
  - 534
  - 538
  - 539
  - 540
  - 542
  - 544
  - 548
  - 549
  - 552
  - 553
  - 557
  - 563
  - 564
  - 566
  - 569
  - 573
  - 575
  - 577
  - 578
  - 583
  - 584
  - 586
  - 587
  - 591
  - 592
  - 593
  - 598
  - 599
  - 604
  - 606
  - 612
  - 635
  - 617
  - 620
  - 622
  - 623
  - 628
  - 631
  - 632
  - 633
  - 507
  - 636
  - 638
  dulwich.cli.get_pager:
  - 1025
  - 1026
  - 1031
  - 1032
  - 1033
  - 1036
  - 1037
  - 1042
  - 1043
  - 1044
  - 1045
  - 1046
  - 1047
  - 1052
  - 1054
  - 1058
  - 1059
  - 1061
  - 1065
  - 1066
  - 1067
  - 1068
  - 1076
  - 997
  - 1007
  - 1008
  - 1011
  - 1012
  - 1023
  dulwich.cli.launch_editor:
  - 390
  - 393
  - 395
  - 399
  - 402
  - 403
  - 408
  - 381
  dulwich.cli.main:
  - 6786
  - 6787
  - 6790
  - 6791
  - 6792
  - 6795
  - 6797
  - 6801
  - 6802
  - 6814
  - 6817
  - 6751
  - 6760
  - 6761
  - 6763
  - 6767
  - 6772
  - 6773
  - 6774
  - 6777
  - 6780
  - 6781
  - 6782
  - 6783
  dulwich.cli.parse_time_to_timestamp:
  - 353
  - 355
  - 356
  - 361
  - 332
  dulwich.cli.signal_int:
  - 316
  - 310
  dulwich.cli.signal_quit:
  - 320
  - 328
  dulwich.cli.to_display_str:
  - 110
  - 102
  - 111
  dulwich.cli.write_columns:
  - 480
  - 439
  - 482
  - 484
  - 486
  - 472
  - 488
  - 490
  - 491
  - 428
  - 493
  - 495
  - 496
  - 471
  - 440
  - 473
  - 444
  - 478
  dulwich.cli.write_columns.columns:
  - 449
  - 452
  - 455
  - 457
  - 459
  - 460
  - 461
  - 463
  - 464
  dulwich.client:
  - 232
  - 105
  - 110
  - 4527
  - 4528
  - 22
  dulwich.client.AbstractHttpGitClient:
  - 3492
  dulwich.client.AbstractHttpGitClient.__init__:
  - 3512
  - 3518
  - 3511
  dulwich.client.AbstractHttpGitClient.__repr__:
  - 4115
  - 4116
  dulwich.client.AbstractHttpGitClient._discover_references:
  - 3585
  - 3589
  - 3590
  - 3592
  - 3594
  - 3598
  - 3601
  - 3604
  - 3631
  - 3632
  - 3633
  - 3637
  - 3642
  - 3643
  - 3644
  - 3649
  - 3654
  - 3703
  - 3660
  - 3661
  - 3704
  - 3665
  - 3670
  - 3671
  - 3674
  - 3679
  - 3708
  - 3681
  - 3683
  - 3684
  - 3687
  - 3688
  - 3565
  - 3695
  - 3696
  - 3573
  - 3574
  - 3701
  - 3702
  - 3705
  - 3580
  - 3581
  - 3710
  dulwich.client.AbstractHttpGitClient._discover_references.begin_protocol_v2:
  - 3618
  - 3619
  - 3621
  - 3625
  - 3626
  - 3628
  - 3610
  - 3611
  dulwich.client.AbstractHttpGitClient._get_url:
  - 4030
  - 4031
  dulwich.client.AbstractHttpGitClient._http_request:
  - 3533
  dulwich.client.AbstractHttpGitClient._smart_request:
  - 3715
  - 3721
  - 3727
  - 3729
  - 3730
  - 3731
  - 3732
  - 3734
  dulwich.client.AbstractHttpGitClient.fetch_pack:
  - 3841
  - 3973
  - 3975
  - 3865
  - 3866
  - 3876
  - 3877
  - 3880
  - 3881
  - 3882
  - 3884
  - 3885
  - 3887
  - 3888
  - 3889
  - 3894
  - 3895
  - 3899
  - 3900
  - 3901
  - 3908
  - 3911
  - 3919
  - 3921
  - 3922
  - 3926
  - 3927
  - 3928
  - 3929
  - 3940
  - 3941
  - 3942
  - 3943
  - 3944
  - 3945
  - 3950
  - 3951
  - 3952
  - 3953
  - 3955
  - 3956
  - 3957
  - 3958
  - 3960
  - 3961
  - 3962
  - 3963
  - 3965
  dulwich.client.AbstractHttpGitClient.fetch_pack.write_fn:
  - 3916
  dulwich.client.AbstractHttpGitClient.from_parsedurl:
  - 4097
  - 4098
  - 4068
  - 4069
  - 4077
  - 4078
  - 4047
  - 4079
  - 4109
  - 4082
  - 4083
  - 4084
  - 4110
  dulwich.client.AbstractHttpGitClient.get_refs:
  - 3983
  - 3984
  - 3985
  - 3991
  - 3992
  - 3993
  dulwich.client.AbstractHttpGitClient.get_url:
  - 4001
  - 4005
  - 4007
  - 4008
  - 4010
  - 4012
  - 4016
  - 3996
  - 3997
  dulwich.client.AbstractHttpGitClient.send_pack:
  - 3748
  - 3766
  - 3768
  - 3773
  - 3774
  - 3776
  - 3777
  - 3780
  - 3784
  - 3785
  - 3788
  - 3789
  - 3791
  - 3793
  - 3794
  - 3796
  - 3814
  - 3816
  - 3817
  - 3821
  - 3822
  - 3825
  dulwich.client.AbstractHttpGitClient.send_pack.body_generator:
  - 3811
  - 3812
  - 3800
  - 3801
  - 3803
  - 3804
  - 3805
  dulwich.client.BundleClient:
  - 2492
  dulwich.client.BundleClient.__init__:
  - 2502
  dulwich.client.BundleClient._is_bundle_file:
  - 2568
  - 2565
  - 2567
  dulwich.client.BundleClient._open_bundle:
  - 2575
  - 2586
  - 2587
  - 2589
  - 2593
  - 2594
  - 2596
  - 2604
  - 2606
  - 2607
  - 2608
  - 2610
  - 2611
  - 2615
  - 2616
  - 2618
  - 2619
  - 2620
  - 2621
  - 2624
  - 2625
  - 2626
  - 2629
  dulwich.client.BundleClient._skip_to_pack_data:
  - 2657
  - 2658
  - 2659
  - 2662
  - 2663
  - 2667
  - 2640
  - 2650
  - 2651
  - 2654
  dulwich.client.BundleClient.fetch:
  - 2720
  - 2723
  - 2725
  - 2694
  - 2695
  - 2726
  - 2727
  - 2698
  - 2732
  - 2701
  - 2702
  - 2704
  - 2708
  - 2711
  - 2713
  - 2718
  - 2719
  dulwich.client.BundleClient.fetch_pack:
  - 2752
  - 2756
  - 2759
  - 2781
  - 2763
  - 2766
  - 2768
  - 2769
  - 2772
  - 2774
  - 2775
  - 2776
  - 2748
  - 2749
  dulwich.client.BundleClient.from_parsedurl:
  - 2540
  - 2556
  dulwich.client.BundleClient.get_refs:
  - 2789
  - 2790
  - 2792
  - 2795
  - 2797
  - 2798
  - 2799
  - 2805
  dulwich.client.BundleClient.get_url:
  - 2517
  dulwich.client.BundleClient.send_pack:
  - 2678
  dulwich.client.DetermineWantsFunc:
  - 142
  dulwich.client.DetermineWantsFunc.__call__:
  - 149
  - 150
  dulwich.client.FetchPackResult:
  - 506
  dulwich.client.FetchPackResult.__eq__:
  - 544
  - 546
  - 542
  - 543
  dulwich.client.FetchPackResult.__init__:
  - 526
  dulwich.client.FetchPackResult.__repr__:
  - 555
  dulwich.client.GeneratePackDataFunc:
  - 128
  dulwich.client.GeneratePackDataFunc.__call__:
  - 138
  - 139
  dulwich.client.GitClient:
  - 954
  dulwich.client.GitClient.__init__:
  - 963
  - 975
  - 976
  - 977
  - 978
  - 979
  - 980
  - 981
  - 982
  - 983
  - 984
  dulwich.client.GitClient._handle_receive_pack_tail:
  - 1344
  - 1345
  - 1346
  - 1347
  - 1351
  - 1321
  - 1353
  - 1354
  - 1355
  - 1356
  - 1333
  - 1334
  - 1339
  - 1341
  - 1342
  - 1343
  dulwich.client.GitClient._negotiate_receive_pack_capabilities:
  - 1310
  - 1311
  dulwich.client.GitClient._negotiate_upload_pack_capabilities:
  - 1376
  - 1377
  - 1378
  - 1384
  - 1387
  - 1388
  - 1363
  - 1366
  - 1367
  - 1368
  - 1372
  - 1373
  - 1374
  - 1375
  dulwich.client.GitClient._should_send_pack:
  - 1304
  dulwich.client.GitClient._warn_filter_objects:
  - 1409
  dulwich.client.GitClient.archive:
  - 1402
  dulwich.client.GitClient.clone:
  - 1154
  - 1072
  - 1073
  - 1074
  - 1078
  - 1079
  - 1080
  - 1083
  - 1085
  - 1088
  - 1089
  - 1091
  - 1094
  - 1095
  - 1096
  - 1097
  - 1099
  - 1100
  - 1102
  - 1104
  - 1107
  - 1108
  - 1116
  - 1117
  - 1121
  - 1122
  - 1123
  - 1125
  - 1131
  - 1132
  - 1134
  - 1136
  - 1141
  - 1142
  - 1146
  - 1147
  - 1149
  - 1150
  - 1151
  dulwich.client.GitClient.fetch:
  - 1217
  - 1219
  - 1222
  - 1196
  - 1198
  - 1201
  - 1233
  - 1171
  - 1204
  - 1236
  - 1237
  dulwich.client.GitClient.fetch.abort:
  - 1214
  dulwich.client.GitClient.fetch.commit:
  - 1208
  - 1209
  - 1210
  - 1211
  dulwich.client.GitClient.fetch_pack:
  - 1255
  dulwich.client.GitClient.from_parsedurl:
  - 1012
  dulwich.client.GitClient.get_refs:
  - 1289
  dulwich.client.GitClient.get_url:
  - 988
  dulwich.client.GitClient.send_pack:
  - 1037
  dulwich.client.HTTPProxyUnauthorized:
  - 273
  dulwich.client.HTTPProxyUnauthorized.__init__:
  - 282
  - 276
  dulwich.client.HTTPResponse:
  - 118
  dulwich.client.HTTPResponse.close:
  - 124
  - 125
  dulwich.client.HTTPUnauthorized:
  - 250
  dulwich.client.HTTPUnauthorized.__init__:
  - 259
  - 253
  dulwich.client.InvalidWants:
  - 236
  dulwich.client.InvalidWants.__init__:
  - 244
  - 239
  dulwich.client.LocalGitClient:
  - 2194
  dulwich.client.LocalGitClient.__init__:
  - 2204
  dulwich.client.LocalGitClient._open_repo:
  - 2277
  - 2269
  - 2278
  - 2279
  dulwich.client.LocalGitClient.fetch:
  - 2388
  - 2389
  - 2396
  - 2395
  - 2364
  dulwich.client.LocalGitClient.fetch_pack:
  - 2438
  - 2439
  - 2442
  - 2443
  - 2413
  - 2446
  - 2447
  - 2448
  - 2449
  - 2453
  - 2454
  - 2455
  - 2462
  dulwich.client.LocalGitClient.from_parsedurl:
  - 2243
  - 2259
  dulwich.client.LocalGitClient.get_refs:
  - 2470
  - 2471
  - 2472
  - 2473
  - 2478
  - 2481
  - 2482
  - 2484
  - 2488
  dulwich.client.LocalGitClient.get_url:
  - 2228
  - 2220
  dulwich.client.LocalGitClient.send_pack:
  - 2307
  - 2312
  - 2313
  - 2314
  - 2316
  - 2318
  - 2319
  - 2324
  - 2326
  - 2327
  - 2329
  - 2330
  - 2331
  - 2337
  - 2338
  - 2339
  - 2340
  - 2342
  - 2345
  - 2346
  - 2349
  - 2288
  dulwich.client.LsRemoteResult:
  - 560
  dulwich.client.LsRemoteResult.__eq__:
  - 592
  - 593
  - 594
  - 596
  dulwich.client.LsRemoteResult.__init__:
  - 572
  dulwich.client.LsRemoteResult.__repr__:
  - 601
  dulwich.client.LsRemoteResult._warn_deprecated:
  - 584
  dulwich.client.PLinkSSHVendor:
  - 2926
  dulwich.client.PLinkSSHVendor.run_command:
  - 2954
  - 2957
  - 2958
  - 2963
  - 2966
  - 2970
  - 2972
  - 2973
  - 2975
  - 2976
  - 2978
  - 2980
  - 2982
  - 2989
  - 2990
  - 2992
  - 2995
  - 3003
  - 2939
  dulwich.client.ReportStatusParser:
  - 328
  dulwich.client.ReportStatusParser.__init__:
  - 331
  dulwich.client.ReportStatusParser.check:
  - 352
  - 353
  - 354
  - 355
  - 356
  - 337
  - 344
  - 346
  - 348
  dulwich.client.ReportStatusParser.handle_packet:
  - 361
  - 367
  - 369
  - 372
  - 373
  - 375
  - 376
  dulwich.client.SSHGitClient:
  - 3011
  dulwich.client.SSHGitClient.__init__:
  - 3078
  - 3052
  - 3086
  - 3056
  - 3057
  - 3089
  - 3060
  - 3029
  - 3061
  - 3065
  - 3067
  - 3069
  dulwich.client.SSHGitClient._connect:
  - 3168
  - 3170
  - 3171
  - 3172
  - 3204
  - 3175
  - 3177
  - 3181
  - 3183
  - 3186
  - 3188
  - 3197
  dulwich.client.SSHGitClient._get_cmd_path:
  - 3158
  - 3159
  dulwich.client.SSHGitClient.from_parsedurl:
  - 3139
  - 3141
  - 3119
  dulwich.client.SSHGitClient.get_url:
  - 3092
  - 3094
  - 3097
  - 3098
  - 3100
  dulwich.client.SSHVendor:
  - 2813
  dulwich.client.SSHVendor.run_command:
  - 2826
  dulwich.client.SendPackResult:
  - 606
  dulwich.client.SendPackResult.__eq__:
  - 633
  - 634
  - 635
  - 637
  dulwich.client.SendPackResult.__init__:
  - 621
  dulwich.client.SendPackResult.__repr__:
  - 642
  dulwich.client.StrangeHostname:
  - 2846
  dulwich.client.StrangeHostname.__init__:
  - 2849
  - 2854
  dulwich.client.SubprocessGitClient:
  - 2120
  dulwich.client.SubprocessGitClient._connect:
  - 2180
  - 2182
  - 2166
  - 2168
  - 2169
  - 2170
  - 2171
  - 2172
  - 2173
  dulwich.client.SubprocessGitClient.from_parsedurl:
  - 2151
  - 2135
  dulwich.client.SubprocessSSHVendor:
  - 2858
  dulwich.client.SubprocessSSHVendor.run_command:
  - 2913
  - 2915
  - 2886
  - 2922
  - 2891
  - 2894
  - 2898
  - 2899
  - 2901
  - 2902
  - 2871
  - 2904
  - 2906
  - 2907
  - 2909
  - 2911
  dulwich.client.SubprocessWrapper:
  - 2042
  dulwich.client.SubprocessWrapper.__init__:
  - 2053
  - 2045
  dulwich.client.SubprocessWrapper.can_read:
  - 2062
  - 2066
  - 2070
  - 2071
  - 2074
  dulwich.client.SubprocessWrapper.close:
  - 2085
  - 2086
  - 2087
  - 2088
  - 2089
  - 2090
  - 2092
  - 2094
  - 2095
  - 2077
  dulwich.client.SubprocessWrapper.stderr:
  - 2058
  dulwich.client.TCPGitClient:
  - 1882
  dulwich.client.TCPGitClient.__init__:
  - 1907
  - 1893
  - 1903
  dulwich.client.TCPGitClient._connect:
  - 1978
  - 1980
  - 1981
  - 1982
  - 1986
  - 1987
  - 1988
  - 1989
  - 1991
  - 1995
  - 1996
  - 1998
  - 2001
  - 2003
  - 2010
  - 2016
  - 2018
  - 2019
  - 2026
  - 2035
  - 2036
  - 2038
  dulwich.client.TCPGitClient._connect.<lambda1>:
  - 2038
  dulwich.client.TCPGitClient._connect.close:
  - 2008
  - 2006
  - 2007
  dulwich.client.TCPGitClient.from_parsedurl:
  - 1944
  - 1927
  dulwich.client.TCPGitClient.get_url:
  - 1968
  - 1970
  - 1954
  - 1963
  dulwich.client.TraditionalGitClient:
  - 1440
  dulwich.client.TraditionalGitClient.__init__:
  - 1452
  - 1462
  dulwich.client.TraditionalGitClient._connect:
  - 1475
  dulwich.client.TraditionalGitClient.archive:
  - 1830
  - 1842
  - 1844
  - 1845
  - 1846
  - 1847
  - 1848
  - 1849
  - 1850
  - 1851
  - 1852
  - 1854
  - 1857
  - 1859
  - 1861
  - 1865
  - 1866
  - 1868
  - 1869
  - 1870
  - 1871
  - 1872
  - 1873
  - 1874
  - 1875
  - 1876
  dulwich.client.TraditionalGitClient.fetch_pack:
  - 1669
  - 1671
  - 1672
  - 1673
  - 1674
  - 1675
  - 1677
  - 1678
  - 1679
  - 1680
  - 1683
  - 1684
  - 1687
  - 1694
  - 1696
  - 1697
  - 1699
  - 1700
  - 1701
  - 1705
  - 1708
  - 1711
  - 1713
  - 1715
  - 1717
  - 1718
  - 1719
  - 1720
  - 1721
  - 1722
  - 1723
  - 1724
  - 1725
  - 1726
  - 1727
  - 1733
  - 1734
  - 1735
  - 1736
  - 1737
  - 1738
  - 1740
  - 1613
  - 1749
  - 1757
  - 1639
  - 1644
  - 1645
  - 1646
  - 1650
  - 1660
  - 1662
  dulwich.client.TraditionalGitClient.get_refs:
  - 1792
  - 1793
  - 1796
  - 1799
  - 1800
  - 1801
  - 1802
  - 1806
  - 1807
  - 1810
  - 1813
  - 1814
  - 1815
  - 1816
  - 1817
  - 1765
  - 1767
  - 1772
  - 1773
  - 1774
  - 1778
  - 1783
  - 1784
  - 1785
  - 1786
  - 1787
  - 1788
  - 1789
  - 1791
  dulwich.client.TraditionalGitClient.send_pack:
  - 1537
  - 1538
  - 1540
  - 1541
  - 1544
  - 1546
  - 1547
  - 1548
  - 1549
  - 1551
  - 1556
  - 1557
  - 1558
  - 1560
  - 1562
  - 1563
  - 1564
  - 1568
  - 1569
  - 1572
  - 1573
  - 1578
  - 1579
  - 1581
  - 1588
  - 1589
  - 1590
  - 1592
  - 1595
  - 1596
  - 1498
  - 1517
  - 1520
  - 1526
  - 1527
  - 1528
  - 1532
  - 1534
  dulwich.client.Urllib3HttpGitClient:
  - 4134
  dulwich.client.Urllib3HttpGitClient.__init__:
  - 4162
  - 4168
  - 4169
  - 4173
  - 4151
  - 4155
  - 4156
  dulwich.client.Urllib3HttpGitClient._get_url:
  - 4185
  - 4188
  - 4189
  dulwich.client.Urllib3HttpGitClient._http_request:
  - 4224
  - 4226
  - 4228
  - 4231
  - 4200
  - 4201
  - 4202
  - 4234
  - 4237
  - 4240
  - 4210
  - 4213
  - 4214
  - 4217
  - 4221
  - 4222
  dulwich.client._DeprecatedDictProxy:
  - 449
  dulwich.client._DeprecatedDictProxy.__contains__:
  - 480
  dulwich.client._DeprecatedDictProxy.__getattribute__:
  - 497
  - 498
  - 500
  - 501
  - 502
  dulwich.client._DeprecatedDictProxy.__getitem__:
  - 484
  dulwich.client._DeprecatedDictProxy.__iter__:
  - 492
  - 493
  dulwich.client._DeprecatedDictProxy.__len__:
  - 488
  - 489
  dulwich.client._DeprecatedDictProxy._warn_deprecated:
  - 473
  dulwich.client._extract_symrefs_and_agent:
  - 930
  - 939
  - 940
  - 941
  - 943
  - 944
  - 945
  dulwich.client._fileno_can_read:
  - 288
  - 289
  dulwich.client._get_transport_and_path_from_url:
  - 4352
  - 4353
  - 4387
  - 4389
  - 4365
  - 4367
  - 4340
  - 4341
  - 4343
  - 4380
  - 4381
  - 4382
  dulwich.client._handle_upload_pack_head:
  - 774
  - 790
  - 792
  - 794
  - 795
  - 797
  - 798
  - 799
  - 800
  - 804
  - 806
  - 807
  - 811
  - 815
  - 816
  - 817
  - 818
  - 819
  - 820
  - 822
  - 823
  - 824
  - 826
  - 827
  - 828
  - 829
  - 831
  - 832
  - 834
  - 836
  - 837
  - 838
  - 840
  - 841
  - 842
  - 843
  - 845
  - 851
  - 852
  - 853
  - 854
  - 856
  - 857
  - 858
  - 863
  dulwich.client._handle_upload_pack_tail:
  - 896
  - 897
  - 898
  - 904
  - 905
  - 906
  - 912
  - 913
  - 914
  - 915
  - 916
  - 921
  - 922
  - 924
  - 877
  - 888
  - 890
  - 891
  - 894
  - 895
  dulwich.client._read_shallow_updates:
  - 649
  - 650
  - 651
  - 652
  - 655
  - 658
  - 659
  - 660
  - 661
  dulwich.client._read_side_band64k_data:
  - 744
  - 737
  - 746
  - 745
  dulwich.client._remote_error_from_stderr:
  - 1430
  - 1431
  - 1432
  - 1433
  - 1434
  - 1435
  - 1436
  dulwich.client._to_optional_dict:
  - 265
  - 269
  dulwich.client._urlmatch_http_sections:
  - 3218
  - 3230
  - 3231
  - 3237
  - 3238
  - 3241
  - 3243
  - 3244
  - 3246
  - 3247
  - 3250
  - 3251
  - 3253
  - 3255
  - 3257
  - 3258
  - 3261
  - 3263
  - 3264
  dulwich.client._v1ReceivePackHeader.__init__:
  - 674
  - 675
  - 676
  dulwich.client._v1ReceivePackHeader._handle_receive_pack_head:
  - 704
  - 732
  - 708
  - 709
  - 733
  - 714
  - 715
  - 718
  - 719
  - 688
  - 721
  - 728
  - 698
  - 731
  - 700
  - 701
  - 703
  dulwich.client._win32_peek_avail:
  - 293
  - 300
  - 301
  - 302
  - 303
  - 305
  dulwich.client._win32_url_to_path:
  - 4257
  - 4259
  - 4260
  - 4270
  - 4247
  - 4255
  dulwich.client._wrap_urllib3_exceptions.wrapper:
  - 4126
  dulwich.client.check_for_proxy_bypass:
  - 3456
  - 3457
  - 3458
  - 3459
  - 3460
  - 3461
  - 3465
  - 3468
  - 3473
  - 3475
  - 3478
  - 3481
  - 3486
  - 3437
  - 3439
  - 3440
  - 3441
  - 3444
  - 3447
  - 3452
  dulwich.client.check_wants:
  - 1416
  - 1425
  - 1422
  - 1423
  dulwich.client.default_urllib3_manager:
  - 3330
  - 3334
  - 3338
  - 3342
  - 3343
  - 3345
  - 3347
  - 3351
  - 3352
  - 3355
  - 3358
  - 3359
  - 3364
  - 3366
  - 3368
  - 3372
  - 3373
  - 3374
  - 3376
  - 3377
  - 3383
  - 3385
  - 3387
  - 3396
  - 3400
  - 3402
  - 3275
  - 3404
  - 3413
  - 3414
  - 3416
  - 3417
  - 3418
  - 3419
  - 3420
  - 3425
  - 3298
  - 3299
  - 3300
  - 3301
  - 3429
  - 3431
  - 3304
  - 3305
  - 3308
  - 3311
  - 3312
  - 3314
  - 3318
  - 3319
  - 3322
  - 3326
  - 3327
  dulwich.client.default_user_agent_string:
  - 3209
  - 3212
  dulwich.client.find_capability:
  - 752
  - 753
  - 754
  - 755
  - 757
  dulwich.client.find_git_command:
  - 2111
  - 2102
  - 2103
  dulwich.client.get_credentials_from_store:
  - 4544
  - 4545
  - 4550
  - 4551
  - 4538
  - 4539
  - 4541
  - 4542
  - 4543
  dulwich.client.get_transport_and_path:
  - 4480
  - 4512
  - 4486
  - 4455
  - 4456
  - 4460
  - 4494
  - 4497
  - 4498
  - 4435
  - 4505
  - 4477
  - 4479
  dulwich.client.get_transport_and_path_from_url:
  - 4307
  - 4308
  - 4310
  - 4287
  dulwich.client.negotiate_protocol_version:
  - 384
  - 380
  - 381
  - 382
  dulwich.client.parse_rsync_url:
  - 4403
  - 4404
  - 4406
  - 4408
  - 4410
  - 4411
  - 4412
  dulwich.client.read_pkt_refs_v1:
  - 428
  - 432
  - 433
  - 434
  - 436
  - 437
  - 438
  - 440
  - 441
  - 442
  - 445
  dulwich.client.read_pkt_refs_v2:
  - 416
  - 417
  - 419
  - 399
  - 404
  - 405
  - 408
  - 411
  - 412
  - 413
  - 414
  - 415
  dulwich.client.read_server_capabilities:
  - 392
  - 393
  - 389
  - 391
  dulwich.cloud:
  - 1
  dulwich.cloud.gcs:
  - 43
  - 23
  dulwich.cloud.gcs.GcsObjectStore:
  - 50
  dulwich.cloud.gcs.GcsObjectStore.__init__:
  - 59
  - 53
  dulwich.cloud.gcs.GcsObjectStore.__repr__:
  - 64
  - 65
  dulwich.cloud.gcs.GcsObjectStore._get_pack:
  - 100
  - 101
  dulwich.cloud.gcs.GcsObjectStore._get_pack.<lambda1>:
  - 101
  dulwich.cloud.gcs.GcsObjectStore._get_pack.<lambda2>:
  - 101
  dulwich.cloud.gcs.GcsObjectStore._iter_pack_names:
  - 74
  - 75
  - 76
  - 77
  - 78
  - 79
  dulwich.cloud.gcs.GcsObjectStore._load_pack_data:
  - 82
  - 87
  - 88
  - 89
  - 90
  dulwich.cloud.gcs.GcsObjectStore._load_pack_index:
  - 96
  - 97
  - 93
  - 94
  - 95
  dulwich.cloud.gcs.GcsObjectStore._remove_pack_by_name:
  - 68
  - 69
  dulwich.cloud.gcs.GcsObjectStore._upload_pack:
  - 107
  - 108
  - 109
  - 110
  dulwich.commit_graph:
  - 57
  - 10
  dulwich.commit_graph.CommitGraph:
  - 145
  dulwich.commit_graph.CommitGraph.__init__:
  - 148
  dulwich.commit_graph.CommitGraph.__iter__:
  - 414
  - 415
  dulwich.commit_graph.CommitGraph.__len__:
  - 410
  - 411
  dulwich.commit_graph.CommitGraph._parse_chunks:
  - 257
  - 258
  - 260
  - 262
  - 263
  - 265
  - 266
  - 269
  - 271
  - 272
  - 273
  - 274
  - 278
  - 208
  - 209
  - 211
  - 216
  - 219
  - 222
  - 223
  - 224
  - 229
  - 235
  - 239
  - 243
  - 249
  dulwich.commit_graph.CommitGraph._parse_extra_edges:
  - 288
  - 289
  - 292
  - 294
  - 295
  - 298
  - 299
  - 281
  - 282
  dulwich.commit_graph.CommitGraph._read_from_file:
  - 195
  - 167
  - 200
  - 169
  - 170
  - 201
  - 202
  - 173
  - 174
  - 205
  - 177
  - 178
  - 183
  - 184
  - 188
  - 189
  - 190
  - 191
  dulwich.commit_graph.CommitGraph.from_file:
  - 161
  - 162
  - 163
  dulwich.commit_graph.CommitGraph.get_entry_by_oid:
  - 304
  - 305
  - 306
  dulwich.commit_graph.CommitGraph.get_generation_number:
  - 312
  - 311
  dulwich.commit_graph.CommitGraph.get_parents:
  - 316
  - 317
  dulwich.commit_graph.CommitGraph.write_to_file:
  - 387
  - 388
  - 389
  - 392
  - 393
  - 394
  - 395
  - 396
  - 399
  - 400
  - 401
  - 402
  - 405
  - 406
  - 407
  - 321
  - 322
  - 326
  - 330
  - 331
  - 336
  - 338
  - 340
  - 343
  - 346
  - 347
  - 349
  - 350
  - 351
  - 355
  - 356
  - 358
  - 363
  - 368
  - 369
  - 373
  - 374
  - 377
  - 378
  dulwich.commit_graph.CommitGraphChunk:
  - 127
  dulwich.commit_graph.CommitGraphChunk.__init__:
  - 130
  dulwich.commit_graph.CommitGraphChunk.__repr__:
  - 140
  - 141
  dulwich.commit_graph.CommitGraphEntry:
  - 92
  dulwich.commit_graph.CommitGraphEntry.__init__:
  - 102
  dulwich.commit_graph.CommitGraphEntry.__repr__:
  - 118
  dulwich.commit_graph.find_commit_graph_file:
  - 431
  - 432
  - 433
  - 436
  - 437
  - 441
  - 442
  - 444
  - 445
  - 446
  dulwich.commit_graph.generate_commit_graph:
  - 524
  - 525
  - 528
  - 534
  - 535
  - 537
  - 541
  - 542
  - 543
  - 545
  - 547
  - 554
  - 558
  - 454
  - 463
  - 465
  - 471
  - 472
  - 474
  - 475
  - 477
  - 480
  - 484
  - 487
  - 489
  dulwich.commit_graph.generate_commit_graph.calculate_generation:
  - 515
  - 516
  - 517
  - 499
  - 502
  - 508
  dulwich.commit_graph.get_reachable_commits:
  - 640
  - 644
  - 647
  - 648
  - 649
  - 600
  - 609
  - 614
  - 615
  - 617
  - 618
  - 619
  - 620
  - 622
  - 623
  - 624
  - 627
  - 628
  - 629
  - 632
  - 633
  - 636
  dulwich.commit_graph.read_commit_graph:
  - 419
  - 420
  - 421
  - 423
  - 426
  - 427
  dulwich.commit_graph.write_commit_graph:
  - 576
  - 577
  - 580
  - 582
  - 586
  - 587
  - 592
  - 593
  - 594
  - 569
  dulwich.config:
  - 737
  - 738
  - 739
  - 740
  - 197
  - 198
  - 199
  - 741
  - 743
  - 744
  - 79
  - 22
  dulwich.config.CaseInsensitiveOrderedMultiDict:
  - 203
  dulwich.config.CaseInsensitiveOrderedMultiDict.__delitem__:
  - 350
  - 347
  - 349
  - 342
  dulwich.config.CaseInsensitiveOrderedMultiDict.__getitem__:
  - 354
  - 359
  dulwich.config.CaseInsensitiveOrderedMultiDict.__init__:
  - 210
  dulwich.config.CaseInsensitiveOrderedMultiDict.__iter__:
  - 310
  - 312
  - 313
  - 314
  - 315
  - 316
  - 317
  dulwich.config.CaseInsensitiveOrderedMultiDict.__len__:
  - 254
  - 255
  dulwich.config.CaseInsensitiveOrderedMultiDict.__setitem__:
  - 324
  - 325
  - 326
  dulwich.config.CaseInsensitiveOrderedMultiDict.get:
  - 376
  - 377
  - 362
  - 374
  dulwich.config.CaseInsensitiveOrderedMultiDict.get_all:
  - 390
  - 391
  - 392
  - 393
  - 382
  dulwich.config.CaseInsensitiveOrderedMultiDict.items:
  - 307
  - 286
  dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView:
  - 290
  dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__contains__:
  - 305
  - 302
  dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__iter__:
  - 296
  dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView.__len__:
  - 299
  dulwich.config.CaseInsensitiveOrderedMultiDict.keys:
  - 258
  - 261
  - 263
  - 264
  - 265
  - 266
  - 267
  - 283
  dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView.__iter__:
  - 278
  dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView.__len__:
  - 281
  dulwich.config.CaseInsensitiveOrderedMultiDict.make:
  - 225
  - 237
  - 240
  - 242
  - 245
  - 248
  dulwich.config.CaseInsensitiveOrderedMultiDict.set:
  - 336
  - 329
  - 338
  - 337
  dulwich.config.CaseInsensitiveOrderedMultiDict.setdefault:
  - 411
  - 396
  - 414
  - 415
  dulwich.config.CaseInsensitiveOrderedMultiDict.values:
  - 320
  - 321
  dulwich.config.Config:
  - 431
  dulwich.config.Config.get:
  - 434
  dulwich.config.Config.get_boolean:
  - 482
  - 485
  - 487
  - 462
  - 465
  - 470
  dulwich.config.Config.get_multivar:
  - 447
  dulwich.config.Config.has_section:
  - 529
  - 522
  dulwich.config.Config.items:
  - 505
  dulwich.config.Config.sections:
  - 515
  dulwich.config.Config.set:
  - 494
  dulwich.config.ConfigDict:
  - 533
  dulwich.config.ConfigDict.__delitem__:
  - 579
  - 574
  dulwich.config.ConfigDict.__eq__:
  - 556
  - 557
  dulwich.config.ConfigDict.__getitem__:
  - 560
  - 565
  dulwich.config.ConfigDict.__init__:
  - 547
  - 541
  - 542
  - 543
  dulwich.config.ConfigDict.__iter__:
  - 582
  - 583
  dulwich.config.ConfigDict.__len__:
  - 586
  - 587
  dulwich.config.ConfigDict.__repr__:
  - 552
  dulwich.config.ConfigDict.__setitem__:
  - 570
  - 571
  dulwich.config.ConfigDict._check_section_and_name:
  - 609
  - 610
  - 616
  - 617
  - 604
  - 607
  dulwich.config.ConfigDict._parse_setting:
  - 595
  - 596
  dulwich.config.ConfigDict.add:
  - 704
  - 707
  - 708
  - 710
  - 701
  - 702
  dulwich.config.ConfigDict.get:
  - 658
  - 660
  - 646
  dulwich.config.ConfigDict.get_multivar:
  - 622
  - 631
  - 633
  - 635
  - 639
  dulwich.config.ConfigDict.items:
  - 713
  - 714
  - 715
  - 716
  - 717
  - 718
  dulwich.config.ConfigDict.keys:
  - 590
  - 591
  dulwich.config.ConfigDict.sections:
  - 721
  - 722
  dulwich.config.ConfigDict.set:
  - 674
  - 681
  - 683
  - 686
  - 687
  - 689
  - 690
  - 691
  dulwich.config.ConfigFile:
  - 925
  dulwich.config.ConfigFile.__init__:
  - 939
  - 933
  - 941
  dulwich.config.ConfigFile._evaluate_hasconfig_condition:
  - 1193
  - 1199
  - 1200
  - 1201
  - 1207
  - 1208
  - 1209
  - 1213
  - 1215
  - 1216
  - 1219
  - 1220
  - 1222
  - 1223
  - 1224
  - 1230
  - 1231
  - 1232
  - 1235
  - 1236
  - 1238
  - 1241
  - 1242
  - 1243
  dulwich.config.ConfigFile._evaluate_includeif_condition:
  - 1185
  - 1186
  - 1189
  - 1177
  - 1179
  - 1180
  - 1181
  - 1182
  dulwich.config.ConfigFile._handle_include_directive:
  - 1061
  - 1062
  - 1066
  - 1067
  - 1070
  dulwich.config.ConfigFile._match_hasconfig_pattern:
  - 1256
  - 1251
  - 1255
  dulwich.config.ConfigFile._merge_config:
  - 1153
  - 1154
  - 1155
  - 1156
  - 1157
  dulwich.config.ConfigFile._process_include:
  - 1121
  - 1091
  - 1092
  - 1095
  - 1096
  - 1097
  - 1128
  - 1132
  - 1103
  - 1104
  - 1136
  - 1139
  - 1109
  - 1141
  - 1112
  - 1114
  - 1150
  dulwich.config.ConfigFile._process_include.opener:
  - 1124
  dulwich.config.ConfigFile._resolve_include_path:
  - 1161
  - 1163
  - 1166
  - 1167
  dulwich.config.ConfigFile.from_file:
  - 1029
  - 1034
  - 955
  - 966
  - 970
  - 971
  - 972
  - 977
  - 978
  - 980
  - 981
  - 982
  - 983
  - 984
  - 985
  - 987
  - 990
  - 994
  - 995
  - 997
  - 998
  - 1004
  - 1008
  - 1022
  - 1023
  dulwich.config.ConfigFile.from_path:
  - 1280
  - 1287
  - 1288
  - 1267
  - 1275
  - 1276
  dulwich.config.ConfigFile.from_path.opener:
  - 1283
  dulwich.config.ConfigFile.write_to_file:
  - 1317
  - 1318
  - 1320
  - 1321
  - 1322
  - 1323
  - 1310
  - 1311
  dulwich.config.ConfigFile.write_to_path:
  - 1299
  - 1300
  - 1301
  - 1306
  - 1307
  dulwich.config.StackedConfig:
  - 1417
  dulwich.config.StackedConfig.__init__:
  - 1422
  dulwich.config.StackedConfig.__repr__:
  - 1432
  dulwich.config.StackedConfig.default:
  - 1442
  - 1437
  dulwich.config.StackedConfig.default_backends:
  - 1473
  - 1474
  - 1476
  - 1446
  - 1478
  - 1454
  - 1456
  - 1457
  - 1461
  - 1463
  - 1464
  - 1465
  - 1466
  - 1468
  - 1471
  dulwich.config.StackedConfig.get:
  - 1482
  - 1483
  - 1485
  - 1487
  dulwich.config.StackedConfig.get_multivar:
  - 1496
  - 1498
  - 1493
  - 1494
  dulwich.config.StackedConfig.sections:
  - 1511
  - 1512
  - 1513
  - 1514
  - 1515
  - 1516
  - 1517
  dulwich.config.StackedConfig.set:
  - 1505
  - 1506
  - 1508
  dulwich.config._check_section_name:
  - 816
  - 818
  dulwich.config._check_variable_name:
  - 808
  - 810
  dulwich.config._escape_value:
  - 800
  - 801
  - 802
  - 803
  - 798
  - 799
  dulwich.config._find_git_in_win_path:
  - 1344
  - 1345
  - 1350
  - 1351
  - 1352
  - 1353
  - 1354
  - 1343
  dulwich.config._find_git_in_win_reg:
  - 1362
  - 1370
  - 1371
  - 1372
  - 1373
  - 1374
  - 1375
  dulwich.config._format_string:
  - 726
  - 727
  - 728
  - 731
  - 733
  dulwich.config._is_line_continuation:
  - 864
  - 865
  - 838
  - 850
  - 854
  - 859
  dulwich.config._match_gitdir_pattern:
  - 128
  - 129
  - 132
  - 134
  - 139
  - 142
  - 96
  - 101
  - 102
  - 105
  - 106
  - 108
  - 109
  - 110
  - 113
  - 117
  - 118
  - 121
  - 122
  - 125
  - 126
  dulwich.config._parse_section_header_line:
  - 896
  - 898
  - 901
  - 904
  - 905
  - 877
  - 910
  - 880
  - 881
  - 914
  - 884
  - 916
  - 886
  - 917
  - 888
  - 893
  dulwich.config._parse_string:
  - 768
  - 769
  - 772
  - 773
  - 774
  - 775
  - 777
  - 779
  - 782
  - 783
  - 785
  - 786
  - 787
  - 788
  - 791
  - 794
  - 748
  - 749
  - 750
  - 753
  - 755
  - 757
  - 759
  - 760
  - 761
  - 762
  - 766
  - 767
  dulwich.config._strip_comments:
  - 832
  - 824
  - 825
  - 828
  - 830
  dulwich.config.apply_instead_of:
  - 1572
  - 1575
  - 1576
  - 1578
  - 1580
  dulwich.config.get_win_legacy_system_paths:
  - 1410
  - 1411
  - 1412
  - 1413
  - 1400
  - 1406
  - 1407
  dulwich.config.get_win_system_paths:
  - 1384
  - 1389
  - 1390
  - 1394
  - 1395
  dulwich.config.get_xdg_config_home_path:
  - 1337
  - 1339
  - 1335
  - 1327
  dulwich.config.iter_instead_of:
  - 1568
  - 1552
  - 1553
  - 1554
  - 1558
  - 1561
  - 1563
  - 1566
  - 1567
  dulwich.config.lower_key:
  - 171
  - 182
  - 183
  - 185
  - 188
  - 190
  - 191
  dulwich.config.match_glob_pattern:
  - 160
  - 165
  - 148
  - 156
  - 158
  dulwich.config.parse_submodules:
  - 1537
  - 1539
  - 1541
  - 1542
  - 1543
  - 1529
  dulwich.config.read_submodules:
  - 1523
  - 1524
  - 1525
  dulwich.contrib:
  - 22
  dulwich.contrib.greenthreads:
  - 24
  dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder:
  - 78
  dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder.__init__:
  - 128
  - 129
  - 130
  - 131
  - 132
  - 133
  - 134
  - 138
  - 139
  - 142
  - 113
  - 115
  - 118
  - 121
  - 122
  - 124
  - 94
  dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder.__init__.collect_tree_sha:
  - 107
  - 109
  - 110
  dulwich.contrib.greenthreads._split_commits_and_tags:
  - 72
  - 73
  - 49
  - 54
  - 55
  dulwich.contrib.greenthreads._split_commits_and_tags.find_commit_type:
  - 64
  - 65
  - 66
  - 67
  - 68
  - 61
  dulwich.contrib.paramiko_vendor:
  - 22
  dulwich.contrib.paramiko_vendor.ParamikoSSHVendor:
  - 116
  dulwich.contrib.paramiko_vendor.ParamikoSSHVendor.__init__:
  - 121
  - 127
  dulwich.contrib.paramiko_vendor.ParamikoSSHVendor._load_ssh_config:
  - 130
  - 131
  - 132
  - 134
  - 135
  - 141
  dulwich.contrib.paramiko_vendor.ParamikoSSHVendor.run_command:
  - 156
  - 172
  - 175
  - 178
  - 180
  - 183
  - 185
  - 188
  - 190
  - 191
  - 193
  - 195
  - 197
  - 199
  - 202
  - 204
  - 207
  - 209
  - 210
  - 211
  - 214
  - 215
  - 217
  - 219
  - 220
  - 223
  - 225
  dulwich.contrib.paramiko_vendor._ParamikoWrapper:
  - 48
  dulwich.contrib.paramiko_vendor._ParamikoWrapper.__init__:
  - 51
  - 61
  dulwich.contrib.paramiko_vendor._ParamikoWrapper.can_read:
  - 73
  - 78
  dulwich.contrib.paramiko_vendor._ParamikoWrapper.close:
  - 112
  - 111
  dulwich.contrib.paramiko_vendor._ParamikoWrapper.read:
  - 97
  - 98
  - 101
  - 105
  - 107
  - 89
  dulwich.contrib.paramiko_vendor._ParamikoWrapper.stderr:
  - 65
  - 70
  dulwich.contrib.paramiko_vendor._ParamikoWrapper.write:
  - 81
  - 86
  dulwich.contrib.release_robot:
  - 168
  - 163
  - 164
  - 21
  dulwich.contrib.release_robot.get_current_version:
  - 130
  - 143
  - 148
  - 149
  - 151
  - 154
  - 155
  - 158
  - 159
  dulwich.contrib.release_robot.get_recent_tags:
  - 99
  - 70
  - 102
  - 103
  - 104
  - 106
  - 113
  - 82
  - 83
  - 115
  - 116
  - 86
  - 87
  - 88
  - 117
  - 122
  - 91
  - 95
  dulwich.contrib.requests_vendor:
  - 43
  - 22
  dulwich.contrib.requests_vendor.RequestsHttpGitClient:
  - 58
  dulwich.contrib.requests_vendor.RequestsHttpGitClient.__init__:
  - 72
  - 88
  - 90
  - 93
  - 95
  dulwich.contrib.requests_vendor.RequestsHttpGitClient._http_request:
  - 131
  - 133
  - 136
  - 109
  - 110
  - 111
  - 114
  - 116
  - 117
  - 119
  - 121
  - 123
  - 125
  - 127
  dulwich.contrib.requests_vendor.get_session:
  - 142
  - 150
  - 151
  - 158
  - 160
  - 161
  - 162
  - 167
  - 168
  - 169
  - 174
  - 179
  - 180
  - 181
  - 185
  - 186
  - 187
  - 188
  - 190
  - 192
  - 195
  - 196
  dulwich.contrib.swift:
  - 24
  - 1304
  - 93
  - 1305
  dulwich.contrib.swift.PackInfoMissingObjectFinder:
  - 122
  dulwich.contrib.swift.PackInfoMissingObjectFinder.next:
  - 131
  - 133
  - 134
  - 136
  - 139
  - 140
  - 141
  - 146
  - 147
  - 153
  - 156
  - 157
  - 158
  - 159
  - 160
  - 163
  - 164
  - 168
  - 125
  dulwich.contrib.swift.SwiftConnector:
  - 291
  dulwich.contrib.swift.SwiftConnector.__init__:
  - 294
  - 301
  - 302
  - 304
  - 305
  - 306
  - 307
  - 308
  - 309
  - 310
  - 311
  - 312
  - 313
  - 316
  - 317
  - 319
  - 321
  - 322
  - 323
  - 330
  - 331
  dulwich.contrib.swift.SwiftConnector.create_root:
  - 432
  - 433
  - 434
  - 427
  dulwich.contrib.swift.SwiftConnector.del_object:
  - 536
  - 545
  - 544
  dulwich.contrib.swift.SwiftConnector.del_root:
  - 551
  - 556
  - 557
  - 558
  - 559
  - 560
  - 561
  dulwich.contrib.swift.SwiftConnector.get_container_objects:
  - 448
  - 450
  - 454
  - 455
  - 440
  - 447
  dulwich.contrib.swift.SwiftConnector.get_object:
  - 519
  - 522
  - 523
  - 525
  - 529
  - 531
  - 533
  - 509
  dulwich.contrib.swift.SwiftConnector.get_object_stat:
  - 458
  - 466
  - 467
  - 469
  - 474
  - 475
  dulwich.contrib.swift.SwiftConnector.put_object:
  - 487
  - 488
  - 490
  - 498
  - 501
  - 503
  - 479
  dulwich.contrib.swift.SwiftConnector.put_object._send:
  - 493
  dulwich.contrib.swift.SwiftConnector.swift_auth_v1:
  - 352
  - 356
  - 335
  - 343
  - 344
  - 350
  dulwich.contrib.swift.SwiftConnector.swift_auth_v2:
  - 385
  - 390
  - 391
  - 392
  - 393
  - 395
  - 366
  - 400
  - 403
  - 374
  - 407
  - 383
  dulwich.contrib.swift.SwiftConnector.test_root_exists:
  - 417
  - 418
  - 420
  - 413
  dulwich.contrib.swift.SwiftException:
  - 287
  dulwich.contrib.swift.SwiftInfoRefsContainer:
  - 986
  dulwich.contrib.swift.SwiftInfoRefsContainer.__init__:
  - 998
  - 999
  - 1000
  - 1001
  - 1002
  - 1007
  - 1008
  - 989
  dulwich.contrib.swift.SwiftInfoRefsContainer._load_check_ref:
  - 1024
  - 1013
  - 1014
  - 1015
  - 1017
  - 1018
  - 1021
  - 1022
  - 1023
  dulwich.contrib.swift.SwiftInfoRefsContainer._write_refs:
  - 1029
  - 1030
  - 1031
  dulwich.contrib.swift.SwiftInfoRefsContainer.allkeys:
  - 1100
  - 1094
  - 1103
  dulwich.contrib.swift.SwiftInfoRefsContainer.get_packed_refs:
  - 1079
  dulwich.contrib.swift.SwiftInfoRefsContainer.get_peeled:
  - 1089
  - 1090
  - 1083
  - 1087
  dulwich.contrib.swift.SwiftInfoRefsContainer.read_loose_ref:
  - 1075
  - 1076
  dulwich.contrib.swift.SwiftInfoRefsContainer.remove_if_equals:
  - 1063
  - 1064
  - 1066
  - 1067
  - 1070
  dulwich.contrib.swift.SwiftInfoRefsContainer.set_if_equals:
  - 1043
  - 1044
  - 1046
  - 1047
  - 1050
  dulwich.contrib.swift.SwiftObjectStore:
  - 748
  dulwich.contrib.swift.SwiftObjectStore.__init__:
  - 760
  - 755
  - 763
  dulwich.contrib.swift.SwiftObjectStore._collect_ancestors:
  - 832
  - 833
  - 806
  - 807
  - 822
  - 823
  - 825
  - 827
  - 828
  - 829
  - 830
  - 831
  dulwich.contrib.swift.SwiftObjectStore._collect_ancestors._find_parents:
  - 810
  - 811
  - 813
  - 815
  - 816
  dulwich.contrib.swift.SwiftObjectStore._complete_thin_pack:
  - 925
  - 928
  - 929
  - 932
  - 935
  - 938
  - 941
  - 942
  - 943
  - 944
  - 945
  - 946
  - 947
  - 948
  - 949
  - 952
  - 953
  - 955
  - 957
  - 961
  - 962
  - 963
  - 966
  - 967
  - 968
  - 969
  - 970
  - 971
  - 972
  - 973
  - 975
  - 976
  - 979
  - 980
  - 981
  dulwich.contrib.swift.SwiftObjectStore._iter_loose_objects:
  - 784
  - 783
  dulwich.contrib.swift.SwiftObjectStore._update_pack_cache:
  - 768
  - 771
  - 773
  - 776
  - 777
  - 779
  - 767
  dulwich.contrib.swift.SwiftObjectStore.add_object:
  - 890
  - 885
  dulwich.contrib.swift.SwiftObjectStore.add_pack:
  - 842
  - 837
  dulwich.contrib.swift.SwiftObjectStore.add_pack.abort:
  - 876
  dulwich.contrib.swift.SwiftObjectStore.add_pack.commit:
  - 864
  - 865
  - 866
  - 867
  - 868
  - 869
  - 870
  - 845
  - 850
  - 855
  - 856
  - 857
  - 858
  - 860
  - 862
  - 863
  dulwich.contrib.swift.SwiftObjectStore.add_pack.commit_wrapper:
  - 880
  - 879
  dulwich.contrib.swift.SwiftObjectStore.add_thin_pack:
  - 905
  - 910
  - 911
  - 913
  - 914
  - 915
  - 916
  - 917
  - 919
  - 920
  dulwich.contrib.swift.SwiftObjectStore.pack_info_get:
  - 800
  - 787
  - 795
  - 796
  - 797
  - 799
  dulwich.contrib.swift.SwiftPack:
  - 714
  dulwich.contrib.swift.SwiftPack.__init__:
  - 736
  - 737
  - 722
  - 730
  - 734
  dulwich.contrib.swift.SwiftPack.__init__.<lambda1>:
  - 734
  dulwich.contrib.swift.SwiftPack.__init__.<lambda2>:
  - 736
  dulwich.contrib.swift.SwiftPack.__init__.<lambda3>:
  - 737
  dulwich.contrib.swift.SwiftPack.pack_info:
  - 741
  - 742
  - 743
  dulwich.contrib.swift.SwiftPackData:
  - 652
  dulwich.contrib.swift.SwiftPackData.__init__:
  - 672
  - 673
  - 674
  - 659
  - 668
  - 669
  - 671
  dulwich.contrib.swift.SwiftPackData.close:
  - 710
  dulwich.contrib.swift.SwiftPackData.get_object_at:
  - 683
  - 691
  - 694
  - 695
  - 696
  - 697
  dulwich.contrib.swift.SwiftPackData.get_stored_checksum:
  - 706
  - 707
  - 701
  dulwich.contrib.swift.SwiftPackReader:
  - 568
  dulwich.contrib.swift.SwiftPackReader.__init__:
  - 578
  dulwich.contrib.swift.SwiftPackReader._read:
  - 594
  - 597
  - 598
  - 599
  - 601
  - 604
  dulwich.contrib.swift.SwiftPackReader.read:
  - 615
  - 619
  - 621
  - 622
  - 607
  dulwich.contrib.swift.SwiftPackReader.read_checksum:
  - 642
  - 643
  - 645
  - 648
  - 638
  dulwich.contrib.swift.SwiftPackReader.seek:
  - 634
  - 628
  dulwich.contrib.swift.SwiftRepo:
  - 1107
  dulwich.contrib.swift.SwiftRepo.__init__:
  - 1120
  - 1122
  - 1123
  - 1124
  - 1126
  - 1127
  - 1131
  - 1132
  - 1133
  - 1110
  dulwich.contrib.swift.SwiftRepo._determine_file_mode:
  - 1136
  dulwich.contrib.swift.SwiftRepo._put_named_file:
  - 1151
  - 1149
  - 1150
  - 1143
  dulwich.contrib.swift.SwiftRepo.init_bare:
  - 1155
  - 1163
  - 1164
  - 1168
  - 1169
  - 1170
  dulwich.contrib.swift.SwiftSystemBackend:
  - 1175
  dulwich.contrib.swift.SwiftSystemBackend.__init__:
  - 1178
  dulwich.contrib.swift.SwiftSystemBackend.open_repository:
  - 1196
  - 1188
  - 1197
  dulwich.contrib.swift.cmd_daemon:
  - 1216
  - 1248
  - 1249
  - 1251
  - 1241
  - 1252
  - 1253
  - 1224
  - 1231
  - 1201
  - 1237
  - 1208
  - 1209
  - 1244
  - 1247
  dulwich.contrib.swift.cmd_init:
  - 1257
  - 1264
  - 1265
  - 1272
  - 1274
  - 1275
  - 1276
  - 1278
  - 1279
  dulwich.contrib.swift.load_conf:
  - 193
  - 173
  - 179
  - 180
  - 181
  - 184
  - 191
  dulwich.contrib.swift.load_pack_info:
  - 257
  - 267
  - 268
  - 270
  - 271
  - 273
  - 274
  - 280
  - 282
  - 283
  dulwich.contrib.swift.main:
  - 1283
  - 1293
  - 1294
  - 1295
  - 1298
  - 1299
  - 1300
  - 1301
  dulwich.contrib.swift.pack_info_create:
  - 225
  - 227
  - 229
  - 232
  - 234
  - 236
  - 237
  - 238
  - 242
  - 245
  - 214
  - 247
  - 249
  - 223
  dulwich.contrib.swift.swift_load_pack_index:
  - 198
  - 205
  - 206
  - 208
  - 209
  - 210
  dulwich.credentials:
  - 23
  dulwich.credentials.match_partial_url:
  - 64
  - 65
  - 67
  - 68
  - 71
  - 76
  - 63
  dulwich.credentials.match_urls:
  - 58
  - 43
  dulwich.credentials.urlmatch_credential_sections:
  - 98
  - 99
  - 100
  - 101
  - 103
  - 105
  - 106
  - 87
  - 88
  - 89
  - 90
  - 91
  - 94
  - 95
  dulwich.diff:
  - 69
  - 21
  dulwich.diff.ColorizedDiffStream:
  - 541
  dulwich.diff.ColorizedDiffStream.__enter__:
  - 703
  dulwich.diff.ColorizedDiffStream.__exit__:
  - 712
  - 713
  dulwich.diff.ColorizedDiffStream.__init__:
  - 577
  - 563
  - 574
  dulwich.diff.ColorizedDiffStream.__iter__:
  - 716
  dulwich.diff.ColorizedDiffStream.__next__:
  - 720
  dulwich.diff.ColorizedDiffStream._colorize_and_write_line:
  - 611
  - 617
  - 620
  - 621
  - 622
  - 623
  - 624
  - 625
  - 626
  - 627
  - 629
  - 632
  dulwich.diff.ColorizedDiffStream.close:
  - 648
  - 649
  - 650
  - 651
  dulwich.diff.ColorizedDiffStream.closed:
  - 656
  - 655
  dulwich.diff.ColorizedDiffStream.fileno:
  - 659
  - 660
  dulwich.diff.ColorizedDiffStream.flush:
  - 641
  - 642
  - 643
  - 644
  - 635
  - 637
  - 638
  dulwich.diff.ColorizedDiffStream.is_available:
  - 558
  - 550
  dulwich.diff.ColorizedDiffStream.isatty:
  - 664
  - 663
  dulwich.diff.ColorizedDiffStream.read:
  - 667
  dulwich.diff.ColorizedDiffStream.readable:
  - 671
  dulwich.diff.ColorizedDiffStream.readline:
  - 675
  dulwich.diff.ColorizedDiffStream.readlines:
  - 679
  dulwich.diff.ColorizedDiffStream.seek:
  - 683
  dulwich.diff.ColorizedDiffStream.seekable:
  - 687
  dulwich.diff.ColorizedDiffStream.tell:
  - 691
  dulwich.diff.ColorizedDiffStream.truncate:
  - 695
  dulwich.diff.ColorizedDiffStream.writable:
  - 699
  dulwich.diff.ColorizedDiffStream.write:
  - 581
  - 590
  - 591
  - 596
  - 597
  - 599
  dulwich.diff.ColorizedDiffStream.writelines:
  - 608
  - 602
  - 607
  dulwich.diff.diff_index_to_tree:
  - 103
  - 109
  - 116
  - 120
  - 121
  - 122
  - 124
  - 125
  - 94
  dulwich.diff.diff_working_tree_to_index:
  - 512
  - 386
  - 516
  - 517
  - 394
  - 395
  - 523
  - 399
  - 400
  - 527
  - 529
  - 404
  - 405
  - 533
  - 535
  - 415
  - 420
  - 423
  - 426
  - 428
  - 429
  - 431
  - 433
  - 437
  - 439
  - 440
  - 444
  - 446
  - 451
  - 453
  - 459
  - 461
  - 462
  - 465
  - 469
  - 470
  - 473
  - 479
  - 481
  - 486
  - 488
  - 496
  - 499
  - 505
  - 506
  - 507
  - 510
  - 511
  dulwich.diff.diff_working_tree_to_tree:
  - 141
  - 151
  - 153
  - 157
  - 158
  - 159
  - 162
  - 167
  - 170
  - 171
  - 177
  - 181
  - 184
  - 185
  - 189
  - 191
  - 192
  - 196
  - 198
  - 199
  - 204
  - 205
  - 207
  - 208
  - 210
  - 212
  - 218
  - 220
  - 221
  - 224
  - 226
  - 231
  - 233
  - 238
  - 240
  - 246
  - 248
  - 249
  - 252
  - 256
  - 257
  - 259
  - 262
  - 267
  - 269
  - 272
  - 274
  - 279
  - 281
  - 289
  - 292
  - 298
  - 299
  - 300
  - 301
  - 304
  - 305
  - 306
  - 307
  - 311
  - 312
  - 313
  - 318
  - 319
  - 322
  - 326
  - 331
  - 334
  - 338
  - 341
  - 343
  - 344
  - 346
  - 351
  - 353
  - 354
  - 356
  - 360
  - 361
  - 364
  - 369
  - 372
  - 373
  - 374
  - 375
  - 377
  dulwich.diff.should_include_path:
  - 73
  - 82
  - 84
  dulwich.diff_tree:
  - 350
  - 349
  - 22
  - 838
  dulwich.diff_tree.RenameDetector:
  - 541
  dulwich.diff_tree.RenameDetector.__init__:
  - 556
  dulwich.diff_tree.RenameDetector._add_change:
  - 613
  - 615
  - 598
  - 599
  - 600
  - 601
  - 602
  - 604
  - 605
  - 606
  dulwich.diff_tree.RenameDetector._choose_content_renames:
  - 742
  - 744
  - 745
  - 746
  - 750
  - 755
  - 756
  - 760
  - 761
  - 762
  - 763
  - 764
  dulwich.diff_tree.RenameDetector._collect_changes:
  - 628
  - 621
  dulwich.diff_tree.RenameDetector._find_content_rename_candidates:
  - 736
  - 737
  - 712
  - 717
  - 720
  - 725
  - 726
  - 729
  - 733
  - 734
  - 735
  dulwich.diff_tree.RenameDetector._find_exact_renames:
  - 645
  - 646
  - 648
  - 649
  - 650
  - 655
  - 657
  - 658
  - 659
  - 661
  - 664
  - 666
  - 668
  - 670
  - 672
  - 674
  - 677
  - 678
  - 680
  - 681
  - 682
  dulwich.diff_tree.RenameDetector._join_modifies:
  - 772
  - 775
  - 778
  - 779
  - 784
  - 786
  - 796
  - 797
  - 798
  - 767
  dulwich.diff_tree.RenameDetector._prune:
  - 641
  - 642
  dulwich.diff_tree.RenameDetector._prune_unchanged:
  - 809
  dulwich.diff_tree.RenameDetector._rename_type:
  - 697
  - 693
  dulwich.diff_tree.RenameDetector._should_find_content_renames:
  - 685
  - 687
  dulwich.diff_tree.RenameDetector._should_split:
  - 586
  - 595
  - 589
  dulwich.diff_tree.RenameDetector._sorted_changes:
  - 802
  - 803
  - 804
  - 805
  dulwich.diff_tree.RenameDetector.changes_with_renames:
  - 820
  - 821
  - 824
  - 825
  - 826
  - 827
  - 828
  - 829
  - 830
  dulwich.diff_tree.TreeChange:
  - 72
  dulwich.diff_tree.TreeChange.add:
  - 80
  - 88
  dulwich.diff_tree.TreeChange.delete:
  - 100
  - 92
  dulwich.diff_tree._all_eq:
  - 354
  - 355
  dulwich.diff_tree._all_same:
  - 361
  dulwich.diff_tree._common_bytes:
  - 485
  - 488
  - 489
  - 490
  - 491
  - 474
  dulwich.diff_tree._count_blocks:
  - 448
  - 457
  - 458
  - 459
  - 461
  - 462
  - 463
  - 464
  - 465
  - 467
  - 468
  - 437
  - 469
  - 447
  dulwich.diff_tree._is_tree:
  - 155
  - 157
  dulwich.diff_tree._merge_entries:
  - 128
  - 130
  - 131
  - 137
  - 138
  - 140
  - 141
  - 144
  - 115
  - 147
  - 148
  - 149
  - 150
  - 127
  dulwich.diff_tree._similarity_score:
  - 513
  - 515
  - 516
  - 517
  - 518
  - 520
  - 521
  - 522
  - 524
  - 500
  dulwich.diff_tree._skip_tree:
  - 269
  - 271
  dulwich.diff_tree._tree_change_key:
  - 531
  - 533
  dulwich.diff_tree._tree_entries:
  - 105
  - 107
  - 108
  dulwich.diff_tree.tree_changes:
  - 321
  - 322
  - 324
  - 325
  - 328
  - 332
  - 335
  - 304
  - 305
  - 339
  - 341
  - 313
  - 346
  - 316
  - 317
  - 286
  dulwich.diff_tree.tree_changes_for_merge:
  - 418
  - 419
  - 421
  - 422
  - 391
  - 423
  - 424
  - 394
  - 395
  - 396
  - 425
  - 426
  - 430
  - 400
  - 401
  - 370
  - 402
  dulwich.diff_tree.walk_trees:
  - 256
  - 258
  - 260
  - 264
  - 167
  - 186
  - 187
  - 190
  - 191
  - 192
  - 193
  - 205
  - 207
  - 212
  - 213
  - 217
  - 221
  - 225
  - 230
  - 232
  - 235
  - 237
  - 238
  - 239
  - 240
  - 242
  - 245
  - 246
  - 249
  - 250
  - 252
  - 254
  dulwich.diffstat:
  - 371
  - 372
  - 59
  - 36
  dulwich.diffstat.diffstat:
  - 131
  - 140
  - 145
  - 147
  - 148
  - 149
  - 150
  - 152
  - 153
  - 161
  - 163
  - 166
  - 167
  - 170
  - 171
  - 172
  - 175
  - 176
  - 180
  - 181
  - 182
  - 186
  - 187
  - 188
  - 190
  - 192
  - 193
  - 197
  - 200
  - 201
  - 202
  dulwich.diffstat.main:
  - 359
  - 360
  - 361
  - 363
  - 364
  - 365
  - 366
  - 367
  - 208
  - 215
  - 218
  - 219
  - 220
  - 221
  - 222
  dulwich.diffstat.parse_patch:
  - 78
  - 90
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 98
  - 103
  - 106
  - 108
  - 111
  - 114
  - 116
  - 118
  - 121
  - 122
  - 123
  - 124
  dulwich.dumb:
  - 22
  dulwich.dumb.DumbHTTPObjectStore:
  - 57
  dulwich.dumb.DumbHTTPObjectStore.__contains__:
  - 304
  - 298
  - 299
  - 311
  dulwich.dumb.DumbHTTPObjectStore.__del__:
  - 362
  - 358
  - 359
  dulwich.dumb.DumbHTTPObjectStore.__init__:
  - 73
  - 66
  dulwich.dumb.DumbHTTPObjectStore.__iter__:
  - 322
  - 326
  - 328
  - 329
  - 330
  - 332
  - 333
  - 334
  - 335
  - 317
  dulwich.dumb.DumbHTTPObjectStore._ensure_temp_pack_dir:
  - 80
  - 81
  - 82
  dulwich.dumb.DumbHTTPObjectStore._fetch_from_pack:
  - 256
  - 258
  - 260
  - 212
  - 223
  - 225
  - 226
  - 228
  - 230
  - 231
  - 232
  - 236
  - 243
  - 244
  - 246
  - 248
  - 250
  - 251
  - 252
  - 255
  dulwich.dumb.DumbHTTPObjectStore._fetch_loose_object:
  - 129
  - 162
  - 134
  - 137
  - 138
  - 144
  - 145
  - 114
  - 149
  - 151
  - 125
  dulwich.dumb.DumbHTTPObjectStore._fetch_url:
  - 97
  - 99
  - 105
  - 106
  - 108
  - 109
  - 111
  - 85
  - 94
  - 95
  dulwich.dumb.DumbHTTPObjectStore._get_pack_index:
  - 199
  - 200
  - 201
  - 203
  - 205
  - 206
  - 190
  dulwich.dumb.DumbHTTPObjectStore._load_packs:
  - 168
  - 169
  - 174
  - 179
  - 180
  - 181
  - 183
  - 184
  - 185
  - 187
  dulwich.dumb.DumbHTTPObjectStore.add_object:
  - 346
  dulwich.dumb.DumbHTTPObjectStore.add_objects:
  - 354
  dulwich.dumb.DumbHTTPObjectStore.contains_loose:
  - 290
  - 292
  dulwich.dumb.DumbHTTPObjectStore.get_raw:
  - 265
  - 285
  - 273
  - 278
  dulwich.dumb.DumbHTTPObjectStore.packs:
  - 339
  dulwich.dumb.DumbRemoteHTTPRepo:
  - 366
  dulwich.dumb.DumbRemoteHTTPRepo.__init__:
  - 385
  - 381
  - 375
  dulwich.dumb.DumbRemoteHTTPRepo._fetch_url:
  - 388
  - 389
  - 390
  - 392
  - 394
  - 399
  - 400
  - 402
  - 403
  - 405
  dulwich.dumb.DumbRemoteHTTPRepo.fetch_pack_data:
  - 512
  - 513
  - 456
  - 472
  - 473
  - 475
  - 479
  - 480
  - 483
  - 484
  - 486
  - 490
  - 495
  - 496
  - 499
  - 501
  - 502
  - 503
  - 504
  - 505
  - 506
  - 507
  - 508
  - 510
  dulwich.dumb.DumbRemoteHTTPRepo.get_head:
  - 426
  - 431
  - 432
  - 433
  - 435
  - 436
  - 438
  dulwich.dumb.DumbRemoteHTTPRepo.get_peeled:
  - 441
  - 444
  dulwich.dumb.DumbRemoteHTTPRepo.get_refs:
  - 416
  - 418
  - 420
  - 423
  - 408
  - 409
  - 412
  dulwich.errors:
  - 23
  dulwich.errors.ApplyDeltaError:
  - 168
  dulwich.errors.ApplyDeltaError.__init__:
  - 177
  - 171
  dulwich.errors.ChecksumMismatch:
  - 58
  dulwich.errors.ChecksumMismatch.__init__:
  - 66
  - 73
  - 74
  - 77
  - 79
  - 80
  - 82
  - 87
  - 89
  dulwich.errors.CommitError:
  - 285
  dulwich.errors.FileFormatException:
  - 269
  dulwich.errors.GitProtocolError:
  - 194
  dulwich.errors.GitProtocolError.__eq__:
  - 214
  - 206
  dulwich.errors.GitProtocolError.__init__:
  - 203
  - 197
  dulwich.errors.HangupException:
  - 222
  dulwich.errors.HangupException.__eq__:
  - 241
  - 250
  dulwich.errors.HangupException.__init__:
  - 225
  - 230
  - 231
  - 232
  - 233
  - 237
  dulwich.errors.HookError:
  - 293
  dulwich.errors.MissingCommitError:
  - 139
  dulwich.errors.MissingCommitError.__init__:
  - 150
  - 142
  dulwich.errors.NoIndexPresent:
  - 281
  dulwich.errors.NotBlobError:
  - 133
  dulwich.errors.NotCommitError:
  - 115
  dulwich.errors.NotGitRepository:
  - 181
  dulwich.errors.NotGitRepository.__init__:
  - 184
  - 190
  dulwich.errors.NotTagError:
  - 127
  dulwich.errors.NotTreeError:
  - 121
  dulwich.errors.ObjectFormatException:
  - 277
  dulwich.errors.ObjectMissing:
  - 154
  dulwich.errors.ObjectMissing.__init__:
  - 164
  - 157
  dulwich.errors.PackedRefsException:
  - 273
  dulwich.errors.RefFormatError:
  - 289
  dulwich.errors.SendPackError:
  - 218
  dulwich.errors.UnexpectedCommandError:
  - 256
  dulwich.errors.UnexpectedCommandError.__init__:
  - 265
  - 259
  dulwich.errors.WorkingTreeModifiedError:
  - 297
  dulwich.errors.WrongObjectException:
  - 93
  dulwich.errors.WrongObjectException.__init__:
  - 104
  - 111
  dulwich.fastexport:
  - 43
  - 23
  dulwich.fastexport.GitFastExporter:
  - 64
  dulwich.fastexport.GitFastExporter.__init__:
  - 67
  dulwich.fastexport.GitFastExporter._allocate_marker:
  - 97
  - 91
  dulwich.fastexport.GitFastExporter._export_blob:
  - 108
  - 100
  - 110
  dulwich.fastexport.GitFastExporter._export_commit:
  - 165
  - 166
  - 167
  - 157
  - 158
  - 159
  dulwich.fastexport.GitFastExporter._iter_files:
  - 128
  - 132
  - 133
  - 134
  - 135
  - 138
  - 139
  - 143
  - 144
  - 145
  - 146
  - 147
  - 150
  dulwich.fastexport.GitFastExporter.emit_blob:
  - 113
  - 122
  - 121
  dulwich.fastexport.GitFastExporter.emit_commit:
  - 187
  - 197
  - 198
  dulwich.fastexport.GitFastExporter.print_cmd:
  - 79
  - 84
  - 85
  - 87
  - 88
  dulwich.fastexport.GitImportProcessor:
  - 203
  dulwich.fastexport.GitImportProcessor.__init__:
  - 222
  - 214
  dulwich.fastexport.GitImportProcessor._reset_base:
  - 355
  - 359
  - 360
  - 362
  - 366
  - 351
  dulwich.fastexport.GitImportProcessor.blob_handler:
  - 256
  - 257
  - 258
  - 255
  dulwich.fastexport.GitImportProcessor.checkpoint_handler:
  - 262
  dulwich.fastexport.GitImportProcessor.commit_handler:
  - 265
  - 266
  - 267
  - 279
  - 280
  - 281
  - 282
  - 285
  - 286
  - 287
  - 288
  - 289
  - 292
  - 295
  - 296
  - 297
  - 298
  - 299
  - 300
  - 301
  - 302
  - 303
  - 307
  - 309
  - 310
  - 312
  - 313
  - 315
  - 316
  - 319
  - 325
  - 328
  - 329
  - 332
  - 333
  - 334
  - 335
  - 336
  - 339
  - 342
  - 343
  dulwich.fastexport.GitImportProcessor.feature_handler:
  - 392
  - 389
  - 391
  dulwich.fastexport.GitImportProcessor.import_stream:
  - 242
  - 250
  - 251
  dulwich.fastexport.GitImportProcessor.lookup_object:
  - 237
  - 229
  - 239
  dulwich.fastexport.GitImportProcessor.progress_handler:
  - 348
  dulwich.fastexport.GitImportProcessor.reset_handler:
  - 371
  - 372
  - 375
  - 376
  - 377
  dulwich.fastexport.GitImportProcessor.tag_handler:
  - 385
  - 380
  - 381
  dulwich.fastexport.split_email:
  - 49
  - 59
  - 60
  dulwich.file:
  - 22
  dulwich.file.FileLocked:
  - 144
  dulwich.file.FileLocked.__init__:
  - 159
  - 151
  dulwich.file.GitFile:
  - 99
  - 131
  - 133
  - 135
  - 137
  - 138
  - 140
  - 109
  - 79
  - 89
  dulwich.file._GitFile:
  - 163
  dulwich.file._GitFile.__del__:
  - 283
  - 284
  - 285
  dulwich.file._GitFile.__exit__:
  - 296
  - 297
  - 299
  dulwich.file._GitFile.__fspath__:
  - 302
  dulwich.file._GitFile.__getattr__:
  - 312
  - 313
  - 311
  dulwich.file._GitFile.__init__:
  - 228
  - 214
  - 216
  - 221
  - 223
  dulwich.file._GitFile.__iter__:
  - 232
  - 233
  dulwich.file._GitFile.__next__:
  - 364
  dulwich.file._GitFile.abort:
  - 240
  - 242
  - 236
  - 244
  dulwich.file._GitFile.close:
  - 263
  - 265
  - 266
  - 267
  - 268
  - 270
  - 271
  - 273
  - 274
  - 278
  - 280
  - 251
  dulwich.file._GitFile.closed:
  - 307
  dulwich.file._GitFile.fileno:
  - 349
  dulwich.file._GitFile.flush:
  - 343
  dulwich.file._GitFile.isatty:
  - 352
  dulwich.file._GitFile.read:
  - 318
  dulwich.file._GitFile.readable:
  - 355
  dulwich.file._GitFile.readline:
  - 326
  dulwich.file._GitFile.readlines:
  - 329
  dulwich.file._GitFile.seek:
  - 337
  dulwich.file._GitFile.seekable:
  - 361
  dulwich.file._GitFile.tell:
  - 340
  dulwich.file._GitFile.truncate:
  - 346
  dulwich.file._GitFile.writable:
  - 358
  dulwich.file._GitFile.write:
  - 323
  dulwich.file._GitFile.writelines:
  - 334
  dulwich.file._fancy_rename:
  - 65
  - 67
  - 69
  - 51
  - 52
  - 53
  - 60
  - 61
  - 62
  - 63
  dulwich.file.ensure_dir_exists:
  - 43
  - 45
  dulwich.filter_branch:
  - 22
  dulwich.filter_branch.CommitData:
  - 43
  dulwich.filter_branch.CommitFilter:
  - 56
  dulwich.filter_branch.CommitFilter.__init__:
  - 74
  - 111
  dulwich.filter_branch.CommitFilter._apply_index_filter:
  - 224
  - 199
  - 202
  - 207
  - 212
  - 215
  - 216
  - 218
  - 219
  - 191
  dulwich.filter_branch.CommitFilter._apply_tree_filter:
  - 163
  - 171
  - 174
  - 179
  - 183
  - 184
  dulwich.filter_branch.CommitFilter._filter_tree_with_subdirectory:
  - 128
  - 134
  - 138
  - 139
  - 142
  - 143
  - 147
  - 117
  - 153
  - 155
  - 156
  dulwich.filter_branch.CommitFilter.get_mapping:
  - 376
  - 381
  dulwich.filter_branch.CommitFilter.process_commit:
  - 256
  - 259
  - 260
  - 266
  - 267
  - 270
  - 274
  - 275
  - 278
  - 279
  - 282
  - 285
  - 294
  - 295
  - 296
  - 297
  - 300
  - 301
  - 302
  - 305
  - 306
  - 307
  - 310
  - 311
  - 312
  - 316
  - 317
  - 320
  - 321
  - 322
  - 325
  - 326
  - 327
  - 330
  - 331
  - 334
  - 336
  - 338
  - 339
  - 340
  - 342
  - 343
  - 346
  - 348
  - 349
  - 351
  - 354
  - 227
  - 359
  - 235
  - 236
  - 238
  - 367
  - 246
  - 253
  - 254
  - 255
  dulwich.filter_branch.filter_refs:
  - 514
  - 394
  - 412
  - 413
  - 414
  - 415
  - 422
  - 425
  - 426
  - 428
  - 429
  - 432
  - 436
  - 437
  - 439
  - 440
  - 442
  - 444
  - 446
  - 447
  - 454
  - 458
  - 460
  - 461
  - 468
  - 474
  - 478
  - 479
  - 482
  - 485
  - 492
  - 494
  - 499
  - 500
  - 501
  - 504
  - 505
  - 506
  - 507
  - 508
  dulwich.filters:
  - 45
  - 22
  dulwich.filters.CompositeFilterDriver:
  - 90
  dulwich.filters.CompositeFilterDriver.__init__:
  - 93
  dulwich.filters.CompositeFilterDriver.clean:
  - 101
  - 102
  - 103
  dulwich.filters.CompositeFilterDriver.cleanup:
  - 114
  - 115
  - 116
  dulwich.filters.CompositeFilterDriver.reuse:
  - 121
  - 119
  dulwich.filters.CompositeFilterDriver.smudge:
  - 107
  - 109
  - 110
  dulwich.filters.FilterBlobNormalizer:
  - 890
  dulwich.filters.FilterBlobNormalizer.__del__:
  - 984
  - 982
  dulwich.filters.FilterBlobNormalizer.__init__:
  - 933
  - 934
  - 903
  - 917
  - 922
  - 925
  dulwich.filters.FilterBlobNormalizer.checkin_normalize:
  - 938
  - 940
  - 943
  - 947
  - 948
  - 952
  dulwich.filters.FilterBlobNormalizer.checkout_normalize:
  - 962
  - 966
  - 967
  - 971
  - 957
  - 959
  dulwich.filters.FilterBlobNormalizer.close:
  - 976
  - 978
  - 979
  dulwich.filters.FilterContext:
  - 524
  dulwich.filters.FilterContext.__del__:
  - 609
  - 607
  dulwich.filters.FilterContext.__init__:
  - 535
  dulwich.filters.FilterContext.close:
  - 579
  - 581
  - 582
  - 583
  - 586
  dulwich.filters.FilterContext.get_driver:
  - 544
  - 557
  - 560
  - 566
  - 570
  - 571
  - 573
  dulwich.filters.FilterContext.refresh_config:
  - 602
  - 589
  dulwich.filters.FilterDriver:
  - 56
  dulwich.filters.FilterDriver.clean:
  - 59
  - 60
  dulwich.filters.FilterDriver.cleanup:
  - 67
  - 68
  dulwich.filters.FilterDriver.reuse:
  - 86
  - 71
  dulwich.filters.FilterDriver.smudge:
  - 64
  - 63
  dulwich.filters.FilterError:
  - 52
  dulwich.filters.FilterRegistry:
  - 616
  dulwich.filters.FilterRegistry.__del__:
  - 681
  - 679
  dulwich.filters.FilterRegistry.__init__:
  - 635
  - 636
  - 639
  - 623
  dulwich.filters.FilterRegistry._create_from_config:
  - 736
  - 738
  - 708
  - 712
  - 713
  - 687
  - 688
  - 719
  - 723
  - 724
  - 729
  - 697
  - 731
  - 701
  - 702
  dulwich.filters.FilterRegistry._create_lfs_filter:
  - 745
  - 751
  - 752
  - 757
  - 758
  - 760
  - 761
  dulwich.filters.FilterRegistry._create_text_filter:
  - 771
  - 764
  dulwich.filters.FilterRegistry._setup_line_ending_filter:
  - 774
  - 775
  - 780
  - 785
  - 786
  - 787
  - 791
  - 793
  dulwich.filters.FilterRegistry.close:
  - 673
  - 674
  - 675
  - 676
  dulwich.filters.FilterRegistry.get_driver:
  - 652
  - 654
  - 658
  - 659
  - 660
  - 665
  - 666
  dulwich.filters.FilterRegistry.register_driver:
  - 648
  dulwich.filters.FilterRegistry.register_factory:
  - 644
  dulwich.filters.ProcessFilterDriver:
  - 125
  dulwich.filters.ProcessFilterDriver.__del__:
  - 520
  - 519
  dulwich.filters.ProcessFilterDriver.__init__:
  - 151
  - 152
  - 135
  dulwich.filters.ProcessFilterDriver._get_or_start_process:
  - 155
  - 156
  - 161
  - 172
  - 191
  - 194
  - 195
  - 196
  - 199
  - 200
  - 201
  - 204
  - 206
  - 208
  - 212
  - 213
  - 214
  - 219
  - 220
  - 222
  - 225
  - 226
  - 227
  - 228
  - 229
  - 237
  dulwich.filters.ProcessFilterDriver._get_or_start_process.read_func:
  - 189
  dulwich.filters.ProcessFilterDriver._get_or_start_process.write_func:
  - 182
  - 183
  dulwich.filters.ProcessFilterDriver._use_process_filter:
  - 257
  - 258
  - 259
  - 264
  - 266
  - 267
  - 272
  - 273
  - 275
  - 279
  - 280
  - 281
  - 289
  - 290
  - 292
  - 298
  - 299
  - 301
  - 305
  - 306
  - 307
  - 312
  - 316
  - 242
  - 245
  - 246
  - 249
  - 250
  - 253
  dulwich.filters.ProcessFilterDriver.clean:
  - 320
  - 322
  - 324
  - 326
  - 328
  - 331
  - 332
  - 337
  - 347
  - 350
  dulwich.filters.ProcessFilterDriver.cleanup:
  - 393
  - 394
  - 396
  - 398
  - 403
  - 405
  - 406
  - 410
  - 411
  - 416
  - 418
  - 424
  - 429
  - 439
  - 440
  - 448
  - 450
  - 456
  - 458
  dulwich.filters.ProcessFilterDriver.reuse:
  - 480
  - 512
  - 513
  - 483
  - 487
  - 492
  - 493
  - 496
  - 466
  - 506
  - 468
  - 500
  - 505
  - 474
  - 509
  - 479
  dulwich.filters.ProcessFilterDriver.smudge:
  - 354
  - 355
  - 386
  - 389
  - 358
  - 360
  - 362
  - 364
  - 367
  - 368
  - 373
  - 376
  dulwich.filters.get_filter_for_path:
  - 802
  - 814
  - 817
  - 824
  - 830
  - 831
  - 833
  - 834
  - 835
  - 836
  - 842
  - 844
  - 849
  - 850
  - 851
  - 853
  - 855
  - 856
  - 857
  - 860
  - 861
  - 862
  - 863
  - 864
  - 867
  - 868
  - 871
  - 876
  - 877
  - 880
  - 882
  - 886
  dulwich.gc:
  - 1
  - 30
  dulwich.gc.GCStats:
  - 41
  - 43
  dulwich.gc.find_reachable_objects:
  - 57
  - 68
  - 69
  - 72
  - 75
  - 76
  - 77
  - 80
  - 81
  - 88
  - 90
  - 91
  - 99
  - 101
  - 102
  - 103
  - 105
  - 106
  - 107
  - 108
  - 109
  - 111
  - 113
  - 114
  - 115
  - 116
  - 118
  - 119
  - 120
  dulwich.gc.find_unreachable_objects:
  - 131
  - 142
  - 146
  - 147
  - 148
  - 149
  dulwich.gc.garbage_collect:
  - 256
  - 257
  - 258
  - 259
  - 264
  - 266
  - 268
  - 269
  - 270
  - 271
  - 272
  - 273
  - 280
  - 282
  - 289
  - 290
  - 291
  - 292
  - 295
  - 296
  - 297
  - 299
  - 305
  - 306
  - 307
  - 308
  - 310
  - 313
  - 316
  - 317
  - 318
  - 319
  - 322
  - 323
  - 231
  - 245
  - 251
  - 252
  - 255
  dulwich.gc.maybe_auto_gc:
  - 390
  - 400
  - 404
  - 406
  - 409
  - 410
  - 412
  - 413
  - 415
  - 421
  - 422
  - 428
  - 429
  - 431
  - 432
  - 433
  - 442
  - 445
  - 447
  - 454
  - 455
  dulwich.gc.prune_unreachable_objects:
  - 161
  - 173
  - 177
  - 180
  - 185
  - 187
  - 188
  - 189
  - 190
  - 191
  - 192
  - 199
  - 200
  - 203
  - 205
  - 206
  - 209
  - 217
  - 218
  dulwich.gc.should_run_gc:
  - 352
  - 356
  - 329
  - 362
  - 366
  - 367
  - 378
  - 339
  - 372
  - 373
  - 379
  - 343
  - 377
  - 346
  - 347
  - 351
  dulwich.graph:
  - 41
  - 35
  - 21
  dulwich.graph.WorkList:
  - 48
  dulwich.graph.WorkList.__init__:
  - 51
  dulwich.graph.WorkList.add:
  - 61
  - 55
  dulwich.graph.WorkList.get:
  - 64
  - 69
  - 70
  dulwich.graph.WorkList.iter:
  - 81
  - 82
  - 76
  dulwich.graph._find_lcas:
  - 135
  - 138
  - 141
  - 144
  - 146
  - 147
  - 150
  - 153
  - 156
  - 160
  - 161
  - 162
  - 168
  - 170
  - 172
  - 177
  - 181
  - 185
  - 186
  - 187
  - 190
  - 193
  - 196
  - 199
  - 202
  - 207
  - 208
  - 209
  - 210
  - 93
  dulwich.graph._find_lcas._has_candidates:
  - 128
  - 129
  - 118
  - 127
  dulwich.graph.can_fast_forward:
  - 352
  - 336
  - 341
  - 310
  - 346
  - 317
  - 318
  dulwich.graph.can_fast_forward.lookup_parents:
  - 331
  - 334
  dulwich.graph.can_fast_forward.lookup_stamp:
  - 321
  - 323
  - 326
  dulwich.graph.find_merge_base:
  - 225
  - 226
  - 249
  - 244
  - 247
  - 217
  - 250
  - 252
  dulwich.graph.find_merge_base.lookup_parents:
  - 242
  - 239
  dulwich.graph.find_merge_base.lookup_stamp:
  - 234
  - 229
  - 231
  dulwich.graph.find_octopus_base:
  - 288
  - 290
  - 291
  - 261
  - 294
  - 296
  - 297
  - 269
  - 270
  - 304
  dulwich.graph.find_octopus_base.lookup_parents:
  - 283
  - 286
  dulwich.graph.find_octopus_base.lookup_stamp:
  - 273
  - 275
  - 278
  dulwich.graph.independent:
  - 384
  - 388
  - 389
  - 392
  - 393
  - 364
  - 373
  - 375
  - 376
  - 380
  - 383
  dulwich.hooks:
  - 22
  dulwich.hooks.CommitMsgShellHook:
  - 154
  dulwich.hooks.CommitMsgShellHook.__init__:
  - 162
  - 157
  - 183
  dulwich.hooks.CommitMsgShellHook.__init__.clean_msg:
  - 175
  - 176
  - 177
  - 178
  - 180
  dulwich.hooks.CommitMsgShellHook.__init__.prepare_msg:
  - 169
  - 170
  - 167
  dulwich.hooks.Hook:
  - 42
  dulwich.hooks.Hook.execute:
  - 45
  dulwich.hooks.PostCommitShellHook:
  - 140
  dulwich.hooks.PostCommitShellHook.__init__:
  - 148
  - 150
  - 143
  dulwich.hooks.PostReceiveShellHook:
  - 189
  dulwich.hooks.PostReceiveShellHook.__init__:
  - 192
  - 198
  - 199
  dulwich.hooks.PostReceiveShellHook.execute:
  - 224
  - 233
  - 235
  - 204
  - 237
  - 240
  - 241
  - 217
  - 221
  dulwich.hooks.PreCommitShellHook:
  - 125
  dulwich.hooks.PreCommitShellHook.__init__:
  - 128
  - 136
  - 134
  dulwich.hooks.ShellHook:
  - 58
  dulwich.hooks.ShellHook.__init__:
  - 74
  dulwich.hooks.ShellHook.execute:
  - 100
  - 101
  - 106
  - 107
  - 110
  - 111
  - 113
  - 114
  - 115
  - 117
  - 118
  - 120
  - 121
  dulwich.ignore:
  - 21
  - 46
  dulwich.ignore.IgnoreFilter:
  - 420
  dulwich.ignore.IgnoreFilter.__init__:
  - 432
  - 442
  - 443
  dulwich.ignore.IgnoreFilter.__repr__:
  - 513
  - 514
  - 515
  - 516
  - 518
  dulwich.ignore.IgnoreFilter._apply_parent_exclusion_rule:
  - 490
  - 494
  dulwich.ignore.IgnoreFilter.append_pattern:
  - 446
  - 447
  dulwich.ignore.IgnoreFilter.find_matching:
  - 450
  - 457
  - 458
  - 459
  - 460
  - 461
  dulwich.ignore.IgnoreFilter.from_path:
  - 500
  - 509
  - 510
  dulwich.ignore.IgnoreFilter.is_ignored:
  - 480
  - 481
  - 482
  - 464
  - 471
  - 472
  dulwich.ignore.IgnoreFilterManager:
  - 575
  dulwich.ignore.IgnoreFilterManager.__init__:
  - 587
  dulwich.ignore.IgnoreFilterManager.__repr__:
  - 600
  - 601
  dulwich.ignore.IgnoreFilterManager._apply_directory_traversal_rule:
  - 704
  - 682
  - 690
  - 691
  - 694
  - 695
  - 700
  - 701
  dulwich.ignore.IgnoreFilterManager._load_path:
  - 609
  - 611
  - 617
  dulwich.ignore.IgnoreFilterManager.find_matching:
  - 640
  - 641
  - 642
  - 646
  - 647
  - 648
  - 649
  - 650
  - 624
  - 631
  - 634
  - 635
  - 636
  - 638
  - 639
  dulwich.ignore.IgnoreFilterManager.from_repo:
  - 711
  - 719
  - 723
  - 724
  - 725
  - 726
  - 727
  dulwich.ignore.IgnoreFilterManager.is_ignored:
  - 674
  - 675
  - 653
  - 662
  - 663
  - 670
  - 671
  dulwich.ignore.IgnoreFilterStack:
  - 522
  dulwich.ignore.IgnoreFilterStack.__init__:
  - 525
  dulwich.ignore.IgnoreFilterStack.__repr__:
  - 553
  - 548
  dulwich.ignore.IgnoreFilterStack.is_ignored:
  - 541
  - 533
  - 542
  - 543
  dulwich.ignore.Pattern:
  - 319
  dulwich.ignore.Pattern.__bytes__:
  - 354
  dulwich.ignore.Pattern.__eq__:
  - 370
  - 379
  dulwich.ignore.Pattern.__init__:
  - 322
  - 332
  - 337
  - 338
  - 339
  - 346
  - 349
  - 351
  dulwich.ignore.Pattern.__repr__:
  - 385
  - 390
  dulwich.ignore.Pattern.__str__:
  - 362
  - 367
  dulwich.ignore.Pattern.match:
  - 393
  - 400
  - 404
  - 408
  - 411
  - 414
  dulwich.ignore._check_parent_exclusion:
  - 72
  - 73
  - 75
  - 78
  - 81
  - 83
  - 62
  dulwich.ignore._handle_double_asterisk:
  - 194
  - 202
  - 178
  - 181
  - 186
  - 191
  dulwich.ignore._handle_leading_patterns:
  - 218
  - 211
  - 212
  - 215
  dulwich.ignore._pattern_excludes_parent:
  - 128
  - 98
  - 100
  - 103
  - 106
  - 107
  - 108
  - 127
  - 112
  - 116
  - 117
  - 125
  - 91
  - 124
  - 93
  - 126
  - 95
  dulwich.ignore._pattern_to_str:
  - 58
  - 53
  - 54
  dulwich.ignore._translate_segment:
  - 162
  - 165
  - 135
  - 136
  - 167
  - 169
  - 140
  - 173
  - 144
  - 146
  - 148
  - 149
  - 150
  - 153
  - 154
  - 156
  - 158
  dulwich.ignore.default_user_ignore_filter_path:
  - 557
  - 565
  - 566
  - 567
  - 571
  dulwich.ignore.match_pattern:
  - 306
  - 315
  dulwich.ignore.read_ignore_patterns:
  - 290
  - 293
  - 298
  - 300
  - 302
  - 280
  - 286
  - 287
  dulwich.ignore.translate:
  - 257
  - 226
  - 258
  - 260
  - 261
  - 230
  - 263
  - 265
  - 268
  - 239
  - 273
  - 243
  - 244
  - 248
  - 251
  - 253
  dulwich.index:
  - 2153
  - 1731
  - 22
  - 111
  dulwich.index.ConflictedIndexEntry:
  - 680
  dulwich.index.ConflictedIndexEntry.__init__:
  - 692
  dulwich.index.Index:
  - 1115
  dulwich.index.Index.__contains__:
  - 1230
  dulwich.index.Index.__delitem__:
  - 1278
  dulwich.index.Index.__getitem__:
  - 1218
  dulwich.index.Index.__init__:
  - 1128
  - 1137
  - 1143
  - 1144
  - 1145
  dulwich.index.Index.__iter__:
  - 1226
  - 1227
  dulwich.index.Index.__len__:
  - 1214
  - 1215
  dulwich.index.Index.__repr__:
  - 1157
  dulwich.index.Index.__setitem__:
  - 1273
  - 1274
  dulwich.index.Index._expand_tree:
  - 1441
  - 1445
  - 1420
  - 1428
  - 1429
  - 1434
  - 1437
  dulwich.index.Index._find_subtree_sha:
  - 1545
  - 1548
  - 1551
  - 1558
  - 1564
  - 1535
  dulwich.index.Index.changes_from_tree:
  - 1330
  - 1348
  - 1349
  dulwich.index.Index.changes_from_tree.lookup_entry:
  - 1342
  - 1343
  dulwich.index.Index.clear:
  - 1267
  dulwich.index.Index.commit:
  - 1364
  - 1357
  dulwich.index.Index.convert_to_sparse:
  - 1510
  - 1479
  - 1484
  - 1519
  - 1488
  - 1489
  - 1492
  - 1493
  - 1526
  - 1527
  - 1466
  - 1501
  - 1503
  dulwich.index.Index.ensure_full_index:
  - 1410
  - 1386
  - 1391
  - 1392
  - 1393
  - 1396
  - 1402
  - 1406
  - 1375
  dulwich.index.Index.get_mode:
  - 1241
  - 1243
  dulwich.index.Index.get_sha1:
  - 1234
  - 1236
  dulwich.index.Index.has_conflicts:
  - 1256
  - 1261
  - 1262
  dulwich.index.Index.is_sparse:
  - 1372
  - 1367
  dulwich.index.Index.items:
  - 1297
  - 1292
  dulwich.index.Index.iteritems:
  - 1289
  - 1284
  dulwich.index.Index.iterobjects:
  - 1248
  - 1249
  - 1251
  - 1253
  dulwich.index.Index.path:
  - 1149
  dulwich.index.Index.paths:
  - 1314
  - 1309
  dulwich.index.Index.read:
  - 1198
  - 1199
  - 1201
  - 1203
  - 1204
  - 1207
  - 1209
  - 1211
  dulwich.index.Index.update:
  - 1305
  - 1300
  dulwich.index.Index.write:
  - 1185
  - 1186
  - 1192
  - 1161
  - 1194
  - 1163
  - 1167
  - 1169
  - 1170
  - 1171
  - 1173
  - 1175
  - 1182
  - 1183
  dulwich.index.IndexEntry:
  - 556
  dulwich.index.IndexEntry.from_serialized:
  - 576
  - 584
  dulwich.index.IndexEntry.is_sparse_dir:
  - 657
  - 674
  - 673
  - 675
  dulwich.index.IndexEntry.serialize:
  - 611
  - 599
  dulwich.index.IndexEntry.set_skip_worktree:
  - 640
  - 644
  - 653
  dulwich.index.IndexEntry.skip_worktree:
  - 636
  - 637
  dulwich.index.IndexEntry.stage:
  - 632
  - 627
  dulwich.index.IndexExtension:
  - 393
  dulwich.index.IndexExtension.from_raw:
  - 418
  - 400
  - 408
  - 409
  - 410
  - 411
  - 412
  - 413
  - 414
  - 415
  dulwich.index.IndexExtension.to_bytes:
  - 421
  dulwich.index.ResolveUndoExtension:
  - 461
  dulwich.index.ResolveUndoExtension.__init__:
  - 464
  - 470
  dulwich.index.ResolveUndoExtension.from_bytes:
  - 474
  - 483
  dulwich.index.ResolveUndoExtension.to_bytes:
  - 486
  dulwich.index.SerializedIndexEntry:
  - 344
  dulwich.index.SerializedIndexEntry.is_sparse_dir:
  - 385
  - 386
  - 387
  - 372
  dulwich.index.SerializedIndexEntry.stage:
  - 369
  - 364
  dulwich.index.SparseDirExtension:
  - 520
  dulwich.index.SparseDirExtension.__init__:
  - 530
  - 531
  dulwich.index.SparseDirExtension.from_bytes:
  - 543
  - 535
  dulwich.index.SparseDirExtension.to_bytes:
  - 546
  dulwich.index.Stage:
  - 334
  dulwich.index.TreeExtension:
  - 426
  dulwich.index.TreeExtension.__init__:
  - 435
  - 429
  dulwich.index.TreeExtension.from_bytes:
  - 448
  - 439
  dulwich.index.TreeExtension.to_bytes:
  - 451
  dulwich.index.UnmergedEntries:
  - 705
  dulwich.index.UnsupportedIndexFormat:
  - 872
  dulwich.index.UnsupportedIndexFormat.__init__:
  - 875
  dulwich.index.UntrackedExtension:
  - 496
  dulwich.index.UntrackedExtension.__init__:
  - 504
  - 499
  dulwich.index.UntrackedExtension.from_bytes:
  - 508
  - 516
  dulwich.index.WindowsSymlinkPermissionError:
  - 1739
  dulwich.index.WindowsSymlinkPermissionError.__init__:
  - 1746
  - 1747
  dulwich.index._check_entry_for_changes:
  - 2912
  - 2913
  - 2917
  - 2927
  - 2896
  - 2930
  - 2932
  - 2933
  - 2905
  - 2939
  - 2909
  - 2911
  dulwich.index._check_file_matches:
  - 2306
  - 2275
  - 2277
  - 2279
  - 2284
  - 2299
  - 2256
  - 2288
  - 2261
  - 2262
  - 2263
  - 2293
  - 2298
  - 2267
  - 2300
  - 2301
  - 2302
  - 2303
  dulwich.index._check_symlink_matches:
  - 2240
  - 2225
  - 2230
  - 2232
  - 2233
  - 2234
  dulwich.index._compress_path:
  - 224
  - 226
  - 227
  - 234
  - 240
  - 214
  dulwich.index._decode_varint:
  - 202
  - 190
  - 207
  dulwich.index._decompress_path:
  - 256
  - 261
  - 264
  - 271
  - 246
  dulwich.index._decompress_path_from_stream:
  - 322
  - 299
  - 300
  - 306
  - 312
  - 313
  - 317
  - 285
  - 319
  dulwich.index._encode_varint:
  - 165
  - 175
  - 182
  - 184
  - 186
  dulwich.index._ensure_parent_dir_exists:
  - 2179
  - 2180
  - 2185
  - 2157
  - 2158
  - 2159
  - 2164
  - 2165
  - 2166
  - 2167
  - 2173
  dulwich.index._fs_to_tree_path:
  - 3040
  - 3048
  - 3049
  - 3054
  - 3057
  - 3058
  - 3063
  - 3064
  dulwich.index._has_directory_changed:
  - 2144
  - 2129
  - 2141
  - 2143
  dulwich.index._normalize_path_element_default:
  - 1842
  - 1843
  dulwich.index._normalize_path_element_hfs:
  - 1856
  - 1859
  - 1861
  - 1862
  - 1852
  dulwich.index._normalize_path_element_ntfs:
  - 1848
  - 1847
  dulwich.index._remove_empty_parents:
  - 2210
  - 2211
  - 2216
  - 2206
  - 2207
  dulwich.index._remove_file_with_readonly_handling:
  - 2189
  - 2195
  - 2198
  - 2199
  - 2200
  dulwich.index._stat_matches_entry:
  - 2850
  - 2883
  - 2861
  - 2865
  - 2871
  - 2875
  - 2879
  dulwich.index._transition_to_absent:
  - 2465
  - 2466
  - 2439
  - 2440
  - 2443
  - 2445
  - 2446
  - 2448
  - 2449
  - 2452
  - 2454
  - 2457
  dulwich.index._transition_to_file:
  - 2352
  - 2355
  - 2357
  - 2358
  - 2361
  - 2372
  - 2374
  - 2375
  - 2378
  - 2383
  - 2386
  - 2390
  - 2392
  - 2393
  - 2395
  - 2396
  - 2400
  - 2403
  - 2405
  - 2410
  - 2411
  - 2414
  - 2418
  - 2419
  - 2420
  - 2421
  - 2429
  dulwich.index._transition_to_submodule:
  - 2320
  - 2323
  - 2325
  - 2328
  - 2329
  - 2330
  - 2332
  - 2334
  dulwich.index._tree_to_fs_path:
  - 3011
  - 3020
  - 3021
  - 3022
  - 3027
  - 3030
  - 3031
  - 3036
  dulwich.index.blob_from_path_and_mode:
  - 2081
  - 2083
  - 2085
  - 2086
  - 2068
  - 2076
  - 2077
  - 2078
  - 2079
  dulwich.index.blob_from_path_and_stat:
  - 2101
  - 2093
  dulwich.index.build_file_from_blob:
  - 1795
  - 1808
  - 1811
  - 1812
  - 1813
  - 1814
  - 1815
  - 1817
  - 1818
  - 1819
  - 1821
  - 1823
  - 1824
  - 1825
  - 1828
  - 1830
  - 1832
  - 1833
  - 1835
  dulwich.index.build_index_from_tree:
  - 2057
  - 2060
  - 2062
  - 1985
  - 2004
  - 2005
  - 2006
  - 2008
  - 2012
  - 2014
  - 2016
  - 2017
  - 2020
  - 2021
  - 2022
  - 2023
  - 2027
  - 2029
  - 2030
  - 2031
  - 2041
  dulwich.index.changes_from_tree:
  - 1664
  - 1665
  - 1668
  - 1670
  - 1640
  - 1674
  - 1652
  - 1654
  - 1655
  - 1658
  - 1661
  - 1663
  dulwich.index.cleanup_mode:
  - 1092
  - 1102
  - 1104
  - 1106
  - 1109
  dulwich.index.commit_index:
  - 1616
  - 1624
  dulwich.index.commit_tree:
  - 1574
  - 1612
  - 1595
  - 1596
  - 1597
  dulwich.index.commit_tree.add_tree:
  - 1585
  - 1587
  - 1588
  - 1589
  dulwich.index.commit_tree.build_tree:
  - 1601
  - 1602
  - 1603
  - 1605
  - 1608
  - 1609
  dulwich.index.detect_case_only_renames:
  - 2561
  - 2564
  - 2565
  - 2567
  - 2573
  - 2575
  - 2581
  - 2585
  - 2588
  - 2589
  - 2593
  - 2474
  - 2504
  - 2511
  - 2512
  - 2515
  - 2519
  - 2526
  - 2530
  - 2534
  - 2542
  - 2548
  - 2552
  dulwich.index.detect_case_only_renames.normalize_path:
  - 2507
  - 2508
  dulwich.index.get_path_element_normalizer:
  - 1866
  - 1877
  - 1879
  dulwich.index.get_unstaged_changes:
  - 2976
  - 2979
  - 2950
  - 2982
  - 3005
  - 2960
  - 2961
  - 2993
  - 2963
  - 2994
  - 2995
  - 2996
  - 2998
  - 3000
  - 3001
  - 3004
  - 2973
  dulwich.index.index_entry_from_directory:
  - 3082
  - 3083
  - 3084
  - 3086
  - 3071
  dulwich.index.index_entry_from_path:
  - 3105
  - 3106
  - 3107
  - 3108
  - 3110
  - 3111
  - 3112
  - 3113
  - 3114
  - 3093
  dulwich.index.index_entry_from_stat:
  - 1698
  - 1699
  - 1707
  - 1708
  - 1682
  - 1716
  - 1689
  - 1690
  - 1725
  dulwich.index.iter_fresh_entries:
  - 3138
  - 3124
  - 3132
  - 3133
  - 3135
  dulwich.index.iter_fresh_objects:
  - 3147
  - 3157
  - 3158
  - 3159
  - 3160
  - 3162
  dulwich.index.locked_index:
  - 3180
  dulwich.index.locked_index.__enter__:
  - 3192
  - 3193
  - 3195
  dulwich.index.locked_index.__exit__:
  - 3204
  - 3205
  - 3206
  - 3209
  - 3210
  - 3212
  - 3214
  dulwich.index.locked_index.__init__:
  - 3188
  dulwich.index.pathjoin:
  - 726
  - 727
  dulwich.index.pathsplit:
  - 709
  - 718
  dulwich.index.read_cache_entry:
  - 768
  - 769
  - 770
  - 800
  - 810
  - 780
  - 781
  - 782
  - 784
  - 788
  - 790
  - 793
  - 761
  - 796
  - 797
  - 798
  dulwich.index.read_cache_time:
  - 738
  - 731
  dulwich.index.read_index:
  - 912
  - 913
  - 915
  - 916
  - 918
  dulwich.index.read_index_dict:
  - 993
  - 1001
  - 1002
  - 1003
  - 1004
  - 1006
  - 1007
  - 1009
  - 1010
  - 1011
  - 1012
  - 1013
  - 1014
  dulwich.index.read_index_dict_with_version:
  - 924
  - 929
  - 933
  - 934
  - 936
  - 937
  - 938
  - 940
  - 941
  - 943
  - 944
  - 945
  - 946
  - 947
  - 948
  - 954
  - 955
  - 956
  - 957
  - 959
  - 963
  - 964
  - 968
  - 970
  - 974
  - 975
  - 977
  - 980
  - 981
  - 984
  - 985
  dulwich.index.read_index_header:
  - 884
  - 889
  - 890
  - 892
  - 893
  dulwich.index.read_submodule_head:
  - 2116
  - 2117
  - 2119
  - 2123
  - 2105
  dulwich.index.refresh_index:
  - 3174
  - 3166
  - 3175
  dulwich.index.symlink:
  - 1760
  - 1772
  dulwich.index.update_working_tree:
  - 2688
  - 2689
  - 2818
  - 2691
  - 2820
  - 2699
  - 2828
  - 2829
  - 2702
  - 2703
  - 2833
  - 2711
  - 2717
  - 2846
  - 2727
  - 2733
  - 2734
  - 2736
  - 2739
  - 2613
  - 2744
  - 2746
  - 2754
  - 2757
  - 2813
  - 2637
  - 2767
  - 2649
  - 2650
  - 2777
  - 2778
  - 2653
  - 2782
  - 2658
  - 2659
  - 2660
  - 2787
  - 2662
  - 2663
  - 2664
  - 2789
  - 2667
  - 2668
  - 2669
  - 2797
  - 2799
  - 2673
  - 2675
  - 2676
  - 2677
  - 2679
  - 2680
  - 2685
  dulwich.index.validate_path:
  - 1962
  - 1963
  - 1964
  - 1965
  dulwich.index.validate_path_element_default:
  - 1894
  - 1886
  dulwich.index.validate_path_element_hfs:
  - 1936
  - 1952
  - 1948
  - 1942
  dulwich.index.validate_path_element_ntfs:
  - 1898
  - 1907
  - 1909
  - 1906
  dulwich.index.write_cache_entry:
  - 819
  - 827
  - 828
  - 829
  - 831
  - 834
  - 835
  - 838
  - 840
  - 842
  - 845
  - 846
  - 854
  - 858
  - 859
  - 861
  - 863
  - 866
  - 867
  - 868
  dulwich.index.write_cache_time:
  - 742
  - 748
  - 750
  - 751
  - 752
  - 753
  - 755
  dulwich.index.write_index:
  - 1024
  - 1056
  - 1032
  - 1035
  - 1036
  - 1040
  - 1042
  - 1043
  - 1046
  - 1047
  - 1049
  - 1050
  - 1054
  - 1055
  dulwich.index.write_index_dict:
  - 1088
  - 1065
  - 1070
  - 1072
  - 1073
  - 1074
  - 1075
  - 1077
  - 1078
  - 1079
  - 1081
  - 1082
  - 1083
  - 1086
  dulwich.index.write_index_extension:
  - 899
  - 905
  - 906
  - 907
  - 908
  dulwich.lfs:
  - 62
  - 60
  - 22
  dulwich.lfs.FileLFSClient:
  - 724
  dulwich.lfs.FileLFSClient.__init__:
  - 738
  - 739
  - 743
  - 744
  - 727
  - 733
  dulwich.lfs.FileLFSClient.download:
  - 771
  - 772
  - 747
  - 761
  - 762
  - 767
  dulwich.lfs.FileLFSClient.upload:
  - 801
  - 802
  - 780
  - 792
  - 796
  - 797
  dulwich.lfs.HTTPLFSClient:
  - 504
  dulwich.lfs.HTTPLFSClient.__init__:
  - 513
  - 507
  dulwich.lfs.HTTPLFSClient._get_pool_manager:
  - 521
  - 517
  - 518
  dulwich.lfs.HTTPLFSClient._make_request:
  - 544
  - 531
  - 532
  - 536
  - 538
  - 539
  - 542
  - 543
  dulwich.lfs.HTTPLFSClient._parse_batch_response:
  - 611
  - 613
  - 614
  - 616
  - 585
  - 587
  - 589
  - 591
  - 592
  - 594
  - 595
  - 599
  - 600
  - 604
  - 607
  dulwich.lfs.HTTPLFSClient.batch:
  - 576
  - 577
  - 579
  - 581
  - 582
  - 556
  - 573
  dulwich.lfs.HTTPLFSClient.download:
  - 640
  - 647
  - 648
  - 649
  - 651
  - 620
  - 652
  - 656
  - 660
  - 661
  - 631
  - 633
  - 637
  dulwich.lfs.HTTPLFSClient.upload:
  - 669
  - 678
  - 680
  - 684
  - 688
  - 691
  - 698
  - 699
  - 700
  - 701
  - 703
  - 704
  - 708
  - 710
  - 712
  - 713
  - 714
  - 715
  - 716
  - 718
  - 719
  dulwich.lfs.LFSAction:
  - 71
  dulwich.lfs.LFSBatchObject:
  - 88
  dulwich.lfs.LFSBatchResponse:
  - 99
  dulwich.lfs.LFSClient:
  - 398
  dulwich.lfs.LFSClient.__init__:
  - 401
  - 407
  dulwich.lfs.LFSClient.download:
  - 416
  dulwich.lfs.LFSClient.from_config:
  - 480
  - 450
  - 482
  - 483
  - 455
  - 487
  - 462
  - 463
  - 464
  - 465
  - 466
  - 494
  - 498
  - 473
  - 443
  - 478
  dulwich.lfs.LFSClient.upload:
  - 431
  dulwich.lfs.LFSClient.url:
  - 412
  - 413
  dulwich.lfs.LFSError:
  - 807
  dulwich.lfs.LFSErrorInfo:
  - 80
  dulwich.lfs.LFSFilterDriver:
  - 258
  dulwich.lfs.LFSFilterDriver.__init__:
  - 261
  dulwich.lfs.LFSFilterDriver._download_object:
  - 323
  - 324
  - 326
  - 329
  - 332
  - 308
  - 319
  dulwich.lfs.LFSFilterDriver.clean:
  - 266
  - 268
  - 269
  - 273
  - 276
  - 277
  dulwich.lfs.LFSFilterDriver.cleanup:
  - 340
  dulwich.lfs.LFSFilterDriver.reuse:
  - 344
  dulwich.lfs.LFSFilterDriver.smudge:
  - 288
  - 293
  - 294
  - 298
  - 302
  - 280
  - 282
  - 283
  dulwich.lfs.LFSPointer:
  - 191
  dulwich.lfs.LFSPointer.__init__:
  - 194
  dulwich.lfs.LFSPointer.from_bytes:
  - 224
  - 226
  - 228
  - 200
  - 233
  - 236
  - 205
  - 210
  - 211
  - 215
  - 221
  - 222
  - 223
  dulwich.lfs.LFSPointer.is_valid_oid:
  - 248
  - 251
  - 247
  dulwich.lfs.LFSPointer.to_bytes:
  - 240
  - 239
  dulwich.lfs.LFSStore:
  - 107
  dulwich.lfs.LFSStore.__init__:
  - 110
  dulwich.lfs.LFSStore._sha_path:
  - 143
  dulwich.lfs.LFSStore.create:
  - 115
  - 116
  - 117
  - 118
  - 119
  - 120
  - 121
  - 122
  - 123
  - 124
  dulwich.lfs.LFSStore.from_controldir:
  - 136
  - 137
  - 138
  - 139
  - 140
  dulwich.lfs.LFSStore.from_repo:
  - 128
  - 129
  - 130
  - 131
  - 132
  dulwich.lfs.LFSStore.open_object:
  - 146
  - 148
  dulwich.lfs.LFSStore.write_object:
  - 160
  - 161
  - 162
  - 164
  - 165
  - 168
  - 172
  - 173
  - 175
  - 176
  - 177
  - 178
  - 179
  - 183
  - 184
  - 153
  - 186
  - 158
  dulwich.lfs._get_lfs_user_agent:
  - 352
  - 361
  - 354
  - 350
  dulwich.lfs._is_valid_lfs_url:
  - 387
  - 388
  - 391
  - 392
  - 366
  - 376
  - 379
  - 383
  dulwich.lfs_server:
  - 22
  dulwich.lfs_server.LFSRequestHandler:
  - 41
  dulwich.lfs_server.LFSRequestHandler._object_exists:
  - 235
  - 238
  dulwich.lfs_server.LFSRequestHandler.do_GET:
  - 73
  - 74
  - 75
  - 77
  dulwich.lfs_server.LFSRequestHandler.do_POST:
  - 57
  - 58
  - 59
  - 60
  - 61
  - 63
  dulwich.lfs_server.LFSRequestHandler.do_PUT:
  - 66
  - 67
  - 68
  - 70
  dulwich.lfs_server.LFSRequestHandler.handle_batch:
  - 99
  - 100
  - 101
  - 103
  - 104
  - 140
  - 142
  - 80
  - 81
  - 82
  - 85
  - 118
  - 87
  - 120
  - 90
  - 91
  - 93
  - 94
  dulwich.lfs_server.LFSRequestHandler.handle_download:
  - 160
  - 161
  - 162
  - 164
  - 145
  - 147
  - 148
  - 149
  - 155
  - 156
  - 158
  - 159
  dulwich.lfs_server.LFSRequestHandler.handle_upload:
  - 193
  - 194
  - 198
  - 167
  - 200
  - 169
  - 170
  - 171
  - 202
  - 203
  - 175
  - 181
  - 182
  - 183
  - 185
  - 186
  - 189
  - 190
  dulwich.lfs_server.LFSRequestHandler.handle_verify:
  - 228
  - 229
  - 230
  - 232
  - 206
  - 208
  - 209
  - 210
  - 214
  - 216
  - 217
  - 219
  - 221
  dulwich.lfs_server.LFSRequestHandler.log_message:
  - 244
  - 245
  - 246
  dulwich.lfs_server.LFSRequestHandler.send_json_response:
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  dulwich.lfs_server.LFSServer:
  - 250
  dulwich.lfs_server.LFSServer.__init__:
  - 265
  - 258
  dulwich.lfs_server.run_lfs_server:
  - 288
  - 290
  - 291
  - 276
  - 287
  dulwich.line_ending:
  - 480
  - 164
  - 488
  - 463
  - 178
  - 21
  - 446
  dulwich.line_ending.BlobNormalizer:
  - 497
  dulwich.line_ending.BlobNormalizer.__init__:
  - 512
  - 545
  - 515
  - 516
  - 520
  - 526
  - 530
  - 531
  - 532
  - 535
  - 536
  - 538
  - 541
  - 510
  dulwich.line_ending.BlobNormalizer.checkin_normalize:
  - 577
  - 583
  - 552
  - 584
  - 554
  - 585
  - 557
  - 558
  - 564
  - 568
  - 571
  - 574
  - 575
  dulwich.line_ending.BlobNormalizer.checkout_normalize:
  - 608
  - 611
  - 614
  - 615
  - 617
  - 623
  - 592
  - 624
  - 594
  - 625
  - 597
  - 598
  - 604
  dulwich.line_ending.LineEndingFilter:
  - 182
  dulwich.line_ending.LineEndingFilter.__init__:
  - 191
  dulwich.line_ending.LineEndingFilter.clean:
  - 274
  - 275
  - 279
  - 282
  - 285
  - 286
  dulwich.line_ending.LineEndingFilter.cleanup:
  - 308
  dulwich.line_ending.LineEndingFilter.from_config:
  - 256
  - 259
  - 263
  - 264
  - 266
  - 201
  - 210
  - 212
  - 214
  - 221
  - 225
  - 227
  - 228
  - 229
  - 236
  - 238
  - 239
  - 240
  - 247
  - 250
  - 251
  dulwich.line_ending.LineEndingFilter.reuse:
  - 312
  dulwich.line_ending.LineEndingFilter.smudge:
  - 291
  - 292
  - 296
  - 299
  - 302
  - 303
  dulwich.line_ending.TreeBlobNormalizer:
  - 656
  dulwich.line_ending.TreeBlobNormalizer.__init__:
  - 672
  - 675
  - 668
  - 669
  - 670
  dulwich.line_ending.TreeBlobNormalizer.checkin_normalize:
  - 688
  - 683
  - 678
  dulwich.line_ending.check_safecrlf:
  - 384
  - 386
  - 388
  - 383
  - 391
  - 362
  - 366
  - 368
  - 370
  - 371
  - 373
  - 375
  - 378
  - 381
  - 351
  dulwich.line_ending.convert_crlf_to_lf:
  - 325
  - 319
  dulwich.line_ending.convert_lf_to_crlf:
  - 329
  - 337
  - 340
  - 341
  - 342
  - 344
  - 345
  dulwich.line_ending.get_checkin_filter:
  - 467
  - 469
  - 473
  - 474
  - 477
  dulwich.line_ending.get_checkin_filter_autocrlf:
  - 492
  - 493
  dulwich.line_ending.get_checkout_filter:
  - 450
  - 452
  - 456
  - 457
  - 460
  dulwich.line_ending.get_checkout_filter_autocrlf:
  - 484
  - 485
  dulwich.line_ending.get_clean_filter:
  - 405
  - 407
  dulwich.line_ending.get_clean_filter_autocrlf:
  - 438
  - 430
  dulwich.line_ending.get_smudge_filter:
  - 397
  - 399
  dulwich.line_ending.get_smudge_filter_autocrlf:
  - 413
  - 421
  dulwich.line_ending.normalize_blob:
  - 642
  - 643
  - 647
  - 649
  - 635
  dulwich.log_utils:
  - 59
  - 60
  - 61
  - 22
  dulwich.log_utils._NullHandler:
  - 53
  dulwich.log_utils._configure_logging_from_trace:
  - 128
  - 131
  - 138
  - 140
  - 109
  - 144
  - 113
  - 114
  - 149
  - 119
  - 121
  - 124
  - 127
  dulwich.log_utils._get_trace_target:
  - 101
  - 76
  - 84
  - 86
  - 89
  - 94
  - 95
  dulwich.log_utils._should_trace:
  - 65
  - 69
  - 70
  dulwich.log_utils.default_logging_config:
  - 168
  - 169
  - 156
  - 165
  dulwich.log_utils.remove_null_handler:
  - 177
  - 183
  dulwich.lru_cache:
  - 33
  - 36
  - 37
  - 23
  dulwich.lru_cache.LRUCache:
  - 78
  dulwich.lru_cache.LRUCache.__contains__:
  - 100
  dulwich.lru_cache.LRUCache.__getitem__:
  - 104
  - 125
  - 112
  - 120
  dulwich.lru_cache.LRUCache.__init__:
  - 97
  - 86
  dulwich.lru_cache.LRUCache.__len__:
  - 138
  - 139
  dulwich.lru_cache.LRUCache.__setitem__:
  - 254
  - 255
  dulwich.lru_cache.LRUCache._record_access:
  - 258
  - 260
  - 264
  - 270
  - 272
  - 274
  - 275
  dulwich.lru_cache.LRUCache._remove_lru:
  - 308
  - 302
  dulwich.lru_cache.LRUCache._remove_node:
  - 288
  - 290
  - 292
  - 294
  - 295
  - 284
  - 286
  dulwich.lru_cache.LRUCache._update_max_cache:
  - 328
  - 324
  - 327
  dulwich.lru_cache.LRUCache._walk_lru:
  - 160
  - 164
  - 165
  - 171
  - 142
  - 175
  - 144
  - 145
  - 152
  - 153
  - 159
  dulwich.lru_cache.LRUCache.add:
  - 192
  - 194
  - 196
  - 200
  - 202
  - 204
  - 206
  - 181
  dulwich.lru_cache.LRUCache.cache_size:
  - 209
  dulwich.lru_cache.LRUCache.cleanup:
  - 250
  - 251
  - 244
  dulwich.lru_cache.LRUCache.clear:
  - 314
  - 311
  dulwich.lru_cache.LRUCache.get:
  - 225
  - 213
  - 222
  - 223
  dulwich.lru_cache.LRUCache.items:
  - 240
  - 241
  dulwich.lru_cache.LRUCache.keys:
  - 237
  - 229
  dulwich.lru_cache.LRUCache.resize:
  - 317
  - 318
  dulwich.lru_cache.LRUSizeCache:
  - 332
  dulwich.lru_cache.LRUSizeCache.__init__:
  - 364
  - 365
  - 368
  - 369
  - 349
  dulwich.lru_cache.LRUSizeCache._remove_node:
  - 425
  dulwich.lru_cache.LRUSizeCache._update_max_size:
  - 440
  - 437
  dulwich.lru_cache.LRUSizeCache.add:
  - 385
  - 387
  - 388
  - 389
  - 392
  - 394
  - 395
  - 396
  - 398
  - 399
  - 374
  - 406
  - 408
  - 410
  dulwich.lru_cache.LRUSizeCache.cleanup:
  - 420
  - 413
  dulwich.lru_cache.LRUSizeCache.resize:
  - 428
  - 429
  - 430
  - 431
  dulwich.lru_cache._LRUNode:
  - 41
  dulwich.lru_cache._LRUNode.__repr__:
  - 63
  dulwich.lru_cache._LRUNode.run_cleanup:
  - 70
  - 71
  dulwich.mailmap:
  - 22
  dulwich.mailmap.Mailmap:
  - 85
  dulwich.mailmap.Mailmap.__init__:
  - 97
  - 106
  - 107
  - 108
  dulwich.mailmap.Mailmap.add_entry:
  - 129
  - 115
  - 124
  dulwich.mailmap.Mailmap.from_path:
  - 172
  - 164
  - 173
  dulwich.mailmap.Mailmap.lookup:
  - 138
  - 139
  - 141
  - 144
  - 145
  - 146
  - 152
  - 156
  - 158
  dulwich.mailmap.parse_identity:
  - 35
  - 45
  - 46
  - 47
  dulwich.mailmap.read_mailmap:
  - 68
  - 70
  - 71
  - 72
  - 74
  - 76
  - 77
  - 80
  - 81
  - 61
  dulwich.maintenance:
  - 1
  - 34
  - 31
  dulwich.maintenance.CommitGraphTask:
  - 140
  dulwich.maintenance.CommitGraphTask.default_enabled:
  - 145
  dulwich.maintenance.CommitGraphTask.run:
  - 160
  - 149
  - 154
  - 155
  - 158
  - 159
  dulwich.maintenance.GcTask:
  - 115
  dulwich.maintenance.GcTask.default_enabled:
  - 120
  dulwich.maintenance.GcTask.run:
  - 132
  - 133
  - 134
  - 135
  - 124
  dulwich.maintenance.IncrementalRepackTask:
  - 194
  dulwich.maintenance.IncrementalRepackTask.run:
  - 226
  - 227
  - 228
  - 229
  - 202
  - 234
  - 235
  - 237
  - 239
  - 240
  - 209
  - 210
  - 213
  - 215
  - 217
  - 218
  - 223
  dulwich.maintenance.LooseObjectsTask:
  - 165
  dulwich.maintenance.LooseObjectsTask.run:
  - 173
  - 180
  - 181
  - 184
  - 185
  - 187
  - 188
  dulwich.maintenance.MaintenanceResult:
  - 47
  - 49
  - 50
  - 51
  - 52
  dulwich.maintenance.MaintenanceSchedule:
  - 38
  dulwich.maintenance.MaintenanceTask:
  - 56
  dulwich.maintenance.MaintenanceTask.__init__:
  - 66
  dulwich.maintenance.MaintenanceTask.default_enabled:
  - 106
  dulwich.maintenance.MaintenanceTask.is_enabled:
  - 97
  - 98
  - 100
  - 103
  - 86
  - 91
  - 94
  dulwich.maintenance.MaintenanceTask.run:
  - 79
  dulwich.maintenance.PackRefsTask:
  - 246
  dulwich.maintenance.PackRefsTask.run:
  - 256
  - 257
  - 251
  - 259
  dulwich.maintenance.PrefetchTask:
  - 264
  dulwich.maintenance.PrefetchTask.run:
  - 288
  - 289
  - 291
  - 292
  - 293
  - 313
  - 298
  - 300
  - 301
  - 272
  - 305
  - 306
  - 280
  - 281
  - 283
  - 286
  - 287
  dulwich.maintenance.get_enabled_tasks:
  - 352
  - 353
  - 354
  - 334
  - 343
  - 350
  dulwich.maintenance.register_repository:
  - 416
  - 419
  - 421
  - 424
  - 456
  - 458
  - 460
  - 429
  - 462
  - 431
  - 465
  - 466
  - 435
  - 467
  - 406
  - 440
  - 444
  - 446
  dulwich.maintenance.run_maintenance:
  - 384
  - 385
  - 390
  - 391
  - 393
  - 394
  - 396
  - 365
  - 398
  - 399
  - 400
  - 376
  - 378
  - 380
  - 381
  - 383
  dulwich.maintenance.unregister_repository:
  - 484
  - 516
  - 487
  - 489
  - 491
  - 525
  - 526
  - 528
  - 498
  - 500
  - 502
  - 471
  - 508
  - 509
  dulwich.mbox:
  - 41
  - 22
  dulwich.mbox._parse_mbox_from_file:
  - 200
  - 211
  - 212
  - 215
  - 217
  - 219
  - 220
  dulwich.mbox._reverse_mboxrd_escaping:
  - 224
  - 234
  - 237
  - 239
  - 241
  - 243
  - 245
  dulwich.mbox.mailinfo:
  - 256
  - 292
  - 278
  - 279
  - 280
  - 281
  - 282
  dulwich.mbox.split_maildir:
  - 130
  - 150
  - 151
  - 152
  - 153
  - 155
  - 156
  - 158
  - 160
  - 162
  - 164
  - 168
  - 171
  - 176
  - 184
  - 185
  - 188
  - 189
  - 191
  - 193
  dulwich.mbox.split_mbox:
  - 53
  - 71
  - 72
  - 73
  - 75
  - 77
  - 82
  - 83
  - 84
  - 85
  - 88
  - 93
  - 99
  - 100
  - 103
  - 104
  - 107
  - 108
  - 111
  - 112
  - 115
  - 117
  dulwich.merge:
  - 16
  - 1
  - 77
  dulwich.merge.MergeConflict:
  - 49
  dulwich.merge.MergeConflict.__init__:
  - 59
  - 52
  dulwich.merge.Merger:
  - 261
  dulwich.merge.Merger.__init__:
  - 269
  dulwich.merge.Merger.merge_blobs:
  - 298
  - 287
  dulwich.merge.Merger.merge_trees:
  - 385
  - 390
  - 396
  - 398
  - 400
  - 403
  - 406
  - 408
  - 413
  - 414
  - 416
  - 421
  - 426
  - 427
  - 429
  - 305
  - 433
  - 438
  - 440
  - 319
  - 448
  - 321
  - 322
  - 450
  - 324
  - 326
  - 328
  - 330
  - 458
  - 332
  - 460
  - 335
  - 337
  - 339
  - 467
  - 468
  - 469
  - 470
  - 346
  - 474
  - 475
  - 478
  - 351
  - 479
  - 483
  - 484
  - 485
  - 486
  - 363
  - 367
  - 368
  - 371
  - 374
  - 379
  dulwich.merge._can_merge_lines:
  - 65
  - 67
  - 69
  dulwich.merge._create_virtual_commit:
  - 512
  - 497
  - 525
  - 509
  dulwich.merge._merge3_to_bytes:
  - 80
  - 89
  - 90
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 97
  - 98
  - 103
  - 104
  - 105
  - 108
  - 109
  - 110
  - 111
  - 112
  - 114
  dulwich.merge._merge_lines:
  - 120
  - 121
  - 123
  dulwich.merge.make_merge3:
  - 40
  - 45
  - 39
  dulwich.merge.merge_blobs:
  - 138
  - 153
  - 154
  - 155
  - 156
  - 157
  - 160
  - 161
  - 162
  - 163
  - 170
  - 174
  - 183
  - 186
  - 188
  - 191
  - 193
  - 197
  - 199
  - 200
  - 202
  - 210
  - 211
  - 213
  - 215
  - 219
  - 220
  - 222
  - 224
  - 227
  - 231
  - 232
  - 233
  - 236
  - 239
  - 241
  - 243
  - 247
  - 248
  - 249
  - 250
  - 254
  dulwich.merge.octopus_merge:
  - 741
  - 712
  - 745
  - 749
  - 750
  - 719
  - 722
  - 690
  - 725
  - 731
  - 766
  dulwich.merge.recursive_merge:
  - 583
  - 615
  - 589
  - 558
  - 591
  - 560
  - 623
  - 563
  - 570
  - 566
  - 538
  - 605
  dulwich.merge.three_way_merge:
  - 641
  - 676
  - 677
  - 678
  - 679
  - 654
  - 657
  - 659
  - 665
  - 671
  dulwich.merge_drivers:
  - 21
  dulwich.merge_drivers.MergeDriver:
  - 40
  dulwich.merge_drivers.MergeDriver.merge:
  - 50
  - 63
  dulwich.merge_drivers.MergeDriverRegistry:
  - 145
  dulwich.merge_drivers.MergeDriverRegistry.__init__:
  - 148
  - 158
  dulwich.merge_drivers.MergeDriverRegistry._create_from_config:
  - 225
  - 226
  - 227
  - 212
  - 220
  dulwich.merge_drivers.MergeDriverRegistry._register_builtin_drivers:
  - 161
  dulwich.merge_drivers.MergeDriverRegistry.get_driver:
  - 193
  - 197
  - 198
  - 203
  - 204
  - 205
  - 184
  dulwich.merge_drivers.MergeDriverRegistry.register_driver:
  - 166
  dulwich.merge_drivers.MergeDriverRegistry.register_factory:
  - 175
  dulwich.merge_drivers.ProcessMergeDriver:
  - 67
  dulwich.merge_drivers.ProcessMergeDriver.__init__:
  - 70
  dulwich.merge_drivers.ProcessMergeDriver.merge:
  - 131
  - 132
  - 87
  - 99
  - 101
  - 102
  - 103
  - 105
  - 106
  - 107
  - 108
  - 109
  - 110
  - 114
  - 115
  - 116
  - 117
  - 118
  - 119
  - 123
  dulwich.merge_drivers.get_merge_driver_registry:
  - 248
  - 249
  - 250
  - 239
  dulwich.midx:
  - 22
  dulwich.midx.MultiPackIndex:
  - 106
  dulwich.midx.MultiPackIndex.__contains__:
  - 409
  - 417
  dulwich.midx.MultiPackIndex.__init__:
  - 143
  - 144
  - 145
  - 146
  - 115
  - 148
  - 153
  - 123
  - 156
  dulwich.midx.MultiPackIndex.__len__:
  - 323
  dulwich.midx.MultiPackIndex._get_oid:
  - 339
  - 335
  - 327
  dulwich.midx.MultiPackIndex._get_pack_info:
  - 356
  - 357
  - 360
  - 362
  - 367
  - 342
  - 350
  dulwich.midx.MultiPackIndex._load_file_contents:
  - 161
  - 171
  - 176
  - 177
  - 178
  - 179
  - 181
  - 189
  - 190
  dulwich.midx.MultiPackIndex._parse_chunk_table:
  - 256
  - 257
  - 229
  - 236
  - 238
  - 242
  - 250
  - 251
  - 252
  - 253
  dulwich.midx.MultiPackIndex._parse_header:
  - 194
  - 195
  - 226
  - 200
  - 205
  - 210
  - 212
  - 222
  dulwich.midx.MultiPackIndex._parse_loff_chunk:
  - 319
  dulwich.midx.MultiPackIndex._parse_oidf_chunk:
  - 288
  - 295
  - 296
  - 299
  - 287
  dulwich.midx.MultiPackIndex._parse_oidl_chunk:
  - 305
  - 306
  dulwich.midx.MultiPackIndex._parse_ooff_chunk:
  - 312
  - 313
  dulwich.midx.MultiPackIndex._parse_pnam_chunk:
  - 260
  - 261
  - 268
  - 269
  - 270
  - 277
  - 278
  - 281
  - 282
  - 283
  dulwich.midx.MultiPackIndex.close:
  - 432
  - 434
  - 435
  - 436
  - 440
  - 441
  dulwich.midx.MultiPackIndex.iterentries:
  - 420
  - 425
  - 426
  - 427
  - 429
  dulwich.midx.MultiPackIndex.object_offset:
  - 395
  - 397
  - 399
  - 401
  - 374
  - 382
  dulwich.midx.load_midx:
  - 454
  - 446
  - 455
  dulwich.midx.load_midx_file:
  - 461
  - 470
  dulwich.midx.write_midx:
  - 512
  - 515
  - 516
  - 526
  - 527
  - 537
  - 539
  - 542
  - 566
  - 568
  - 575
  - 576
  - 577
  - 578
  - 579
  - 580
  - 589
  - 590
  - 592
  - 593
  - 594
  - 597
  - 598
  - 601
  - 605
  - 478
  - 611
  - 613
  - 616
  - 489
  - 617
  - 491
  - 620
  - 621
  - 635
  - 623
  - 497
  - 625
  - 626
  - 500
  - 628
  - 630
  - 634
  - 633
  - 506
  - 507
  - 508
  - 509
  - 638
  dulwich.midx.write_midx_file:
  - 657
  - 658
  - 646
  dulwich.notes:
  - 41
  - 21
  dulwich.notes.Notes:
  - 609
  dulwich.notes.Notes.__init__:
  - 614
  dulwich.notes.Notes.get_note:
  - 672
  - 678
  - 681
  - 650
  - 682
  - 660
  dulwich.notes.Notes.get_notes_ref:
  - 640
  - 642
  - 628
  - 637
  - 638
  - 639
  dulwich.notes.Notes.list_notes:
  - 865
  - 877
  - 883
  - 888
  - 886
  - 856
  - 890
  - 891
  dulwich.notes.Notes.remove_note:
  - 835
  - 804
  - 828
  - 778
  - 810
  - 843
  - 846
  - 816
  - 817
  - 818
  - 822
  - 823
  - 824
  - 826
  - 796
  - 831
  dulwich.notes.Notes.set_note:
  - 737
  - 738
  - 739
  - 741
  - 743
  - 713
  - 746
  - 759
  - 750
  - 721
  - 694
  - 727
  - 728
  - 730
  - 764
  - 733
  - 734
  dulwich.notes.NotesTree:
  - 138
  dulwich.notes.NotesTree.__init__:
  - 141
  - 149
  dulwich.notes.NotesTree._detect_fanout_level:
  - 194
  - 165
  - 168
  - 200
  - 170
  - 171
  - 204
  - 175
  - 207
  - 177
  - 209
  - 180
  - 182
  - 189
  - 152
  - 188
  - 157
  - 190
  dulwich.notes.NotesTree._get_note_sha:
  - 357
  - 358
  - 361
  - 364
  - 367
  - 374
  - 349
  dulwich.notes.NotesTree._reorganize_tree:
  - 227
  - 232
  - 234
  - 235
  - 314
  - 238
  - 239
  - 245
  - 247
  - 248
  - 313
  - 250
  - 251
  - 222
  dulwich.notes.NotesTree._reorganize_tree.update_tree:
  - 257
  - 267
  - 269
  - 270
  - 271
  - 275
  - 276
  - 280
  - 282
  - 283
  - 286
  - 288
  - 291
  - 292
  - 293
  - 294
  - 302
  - 304
  - 306
  - 307
  - 308
  - 309
  dulwich.notes.NotesTree._update_tree_entry:
  - 330
  - 331
  - 332
  - 338
  - 339
  - 340
  - 343
  - 319
  dulwich.notes.NotesTree.get_note:
  - 390
  - 395
  - 381
  - 389
  dulwich.notes.NotesTree.list_notes:
  - 562
  - 591
  dulwich.notes.NotesTree.list_notes.walk_tree:
  - 580
  - 582
  - 584
  - 585
  - 586
  - 589
  - 571
  dulwich.notes.NotesTree.remove_note:
  - 486
  - 552
  - 553
  - 554
  - 556
  - 494
  - 558
  - 498
  - 499
  dulwich.notes.NotesTree.remove_note.remove_from_tree:
  - 512
  - 514
  - 516
  - 517
  - 519
  - 523
  - 527
  - 530
  - 532
  - 534
  - 537
  - 538
  - 539
  - 540
  - 541
  - 544
  - 546
  - 550
  - 503
  dulwich.notes.NotesTree.set_note:
  - 480
  - 417
  - 418
  - 419
  - 482
  - 422
  - 423
  - 403
  - 413
  - 414
  - 479
  dulwich.notes.NotesTree.set_note.update_tree:
  - 429
  - 439
  - 441
  - 442
  - 443
  - 445
  - 446
  - 450
  - 452
  - 453
  - 456
  - 458
  - 461
  - 462
  - 463
  - 464
  - 468
  - 470
  - 472
  - 473
  - 474
  - 475
  dulwich.notes.create_notes_tree:
  - 603
  - 595
  - 604
  dulwich.notes.get_note_fanout_level:
  - 97
  - 91
  - 51
  - 95
  dulwich.notes.get_note_fanout_level.count_notes:
  - 67
  - 77
  - 79
  - 81
  - 85
  - 86
  dulwich.notes.get_note_path:
  - 124
  - 133
  - 134
  dulwich.notes.split_path_for_fanout:
  - 104
  - 113
  - 117
  - 118
  - 119
  - 120
  dulwich.object_store:
  - 24
  - 117
  dulwich.object_store.BaseObjectStore:
  - 320
  dulwich.object_store.BaseObjectStore.__contains__:
  - 355
  - 351
  dulwich.object_store.BaseObjectStore.__getitem__:
  - 372
  - 373
  - 374
  dulwich.object_store.BaseObjectStore.__iter__:
  - 377
  dulwich.object_store.BaseObjectStore._get_depth:
  - 665
  - 655
  dulwich.object_store.BaseObjectStore.add_object:
  - 381
  dulwich.object_store.BaseObjectStore.add_objects:
  - 389
  dulwich.object_store.BaseObjectStore.close:
  - 668
  dulwich.object_store.BaseObjectStore.contains_loose:
  - 343
  dulwich.object_store.BaseObjectStore.contains_packed:
  - 347
  dulwich.object_store.BaseObjectStore.determine_wants_all:
  - 336
  - 337
  - 338
  - 325
  dulwich.object_store.BaseObjectStore.determine_wants_all._want_deepen:
  - 328
  - 330
  - 332
  dulwich.object_store.BaseObjectStore.find_common_revisions:
  - 588
  - 595
  - 597
  - 598
  - 599
  - 600
  dulwich.object_store.BaseObjectStore.find_missing_objects:
  - 576
  - 561
  - 585
  - 575
  dulwich.object_store.BaseObjectStore.generate_pack_data:
  - 626
  - 627
  - 612
  - 623
  dulwich.object_store.BaseObjectStore.get_commit_graph:
  - 695
  dulwich.object_store.BaseObjectStore.get_object_mtime:
  - 719
  dulwich.object_store.BaseObjectStore.get_raw:
  - 363
  dulwich.object_store.BaseObjectStore.get_reachability_provider:
  - 400
  - 413
  dulwich.object_store.BaseObjectStore.iter_prefix:
  - 692
  - 690
  - 691
  - 684
  dulwich.object_store.BaseObjectStore.iter_tree_contents:
  - 472
  - 482
  - 487
  dulwich.object_store.BaseObjectStore.iter_unpacked_subset:
  - 544
  - 545
  - 547
  - 549
  - 518
  - 540
  dulwich.object_store.BaseObjectStore.iterobjects_subset:
  - 504
  - 506
  - 492
  - 508
  dulwich.object_store.BaseObjectStore.packs:
  - 359
  dulwich.object_store.BaseObjectStore.peel_sha:
  - 647
  - 634
  - 642
  dulwich.object_store.BaseObjectStore.prune:
  - 672
  dulwich.object_store.BaseObjectStore.tree_changes:
  - 447
  - 463
  - 431
  dulwich.object_store.BaseObjectStore.write_commit_graph:
  - 705
  dulwich.object_store.BitmapReachability:
  - 3542
  dulwich.object_store.BitmapReachability.__init__:
  - 3557
  - 3550
  dulwich.object_store.BitmapReachability._combine_commit_bitmaps:
  - 3586
  - 3618
  - 3588
  - 3590
  - 3624
  - 3593
  - 3627
  - 3564
  - 3596
  - 3604
  - 3605
  - 3607
  - 3576
  - 3579
  - 3611
  - 3613
  - 3615
  dulwich.object_store.BitmapReachability.get_reachable_commits:
  - 3651
  - 3652
  - 3654
  - 3655
  - 3658
  - 3659
  - 3660
  - 3666
  - 3667
  - 3637
  - 3669
  dulwich.object_store.BitmapReachability.get_reachable_objects:
  - 3715
  - 3693
  - 3704
  - 3705
  - 3708
  - 3709
  - 3710
  dulwich.object_store.BitmapReachability.get_tree_objects:
  - 3677
  - 3686
  dulwich.object_store.BucketBasedObjectStore:
  - 3174
  dulwich.object_store.BucketBasedObjectStore._iter_loose_objects:
  - 3177
  - 3178
  dulwich.object_store.BucketBasedObjectStore._remove_pack_by_name:
  - 3204
  dulwich.object_store.BucketBasedObjectStore._update_pack_cache:
  - 3214
  - 3218
  - 3219
  - 3220
  - 3221
  - 3224
  - 3225
  dulwich.object_store.BucketBasedObjectStore.add_pack:
  - 3242
  - 3234
  dulwich.object_store.BucketBasedObjectStore.add_pack.commit:
  - 3247
  - 3248
  - 3251
  - 3253
  - 3254
  - 3255
  - 3256
  - 3259
  - 3260
  - 3261
  - 3262
  - 3263
  - 3264
  - 3265
  - 3266
  - 3267
  - 3268
  - 3270
  - 3271
  - 3272
  - 3273
  - 3274
  - 3275
  - 3276
  dulwich.object_store.BucketBasedObjectStore.delete_loose_object:
  - 3184
  dulwich.object_store.BucketBasedObjectStore.pack_loose_objects:
  - 3194
  dulwich.object_store.DiskObjectStore:
  - 1359
  dulwich.object_store.DiskObjectStore.__init__:
  - 1417
  - 1386
  - 1406
  dulwich.object_store.DiskObjectStore.__repr__:
  - 1438
  dulwich.object_store.DiskObjectStore._complete_pack:
  - 1792
  - 1793
  - 1794
  - 1795
  - 1797
  - 1799
  - 1804
  - 1805
  - 1807
  - 1811
  - 1812
  - 1814
  - 1817
  - 1818
  - 1820
  - 1821
  - 1826
  - 1829
  - 1830
  - 1831
  - 1835
  - 1841
  - 1846
  - 1850
  - 1851
  - 1854
  - 1855
  - 1856
  - 1860
  - 1867
  - 1874
  - 1876
  - 1877
  - 1880
  - 1889
  - 1890
  - 1778
  dulwich.object_store.DiskObjectStore._complete_pack.<lambda1>:
  - 1867
  - 1868
  dulwich.object_store.DiskObjectStore._get_loose_object:
  - 1699
  - 1701
  dulwich.object_store.DiskObjectStore._get_pack_basepath:
  - 1764
  - 1766
  - 1767
  dulwich.object_store.DiskObjectStore._get_pack_by_name:
  - 2113
  - 2119
  - 2123
  - 2124
  - 2127
  - 2099
  - 2111
  dulwich.object_store.DiskObjectStore._get_shafile_path:
  - 1660
  dulwich.object_store.DiskObjectStore._iter_loose_objects:
  - 1664
  - 1666
  - 1667
  - 1668
  - 1670
  - 1663
  dulwich.object_store.DiskObjectStore._read_alternate_paths:
  - 1583
  - 1587
  - 1588
  - 1589
  - 1591
  - 1592
  - 1594
  dulwich.object_store.DiskObjectStore._remove_pack:
  - 1753
  - 1756
  - 1757
  - 1758
  - 1759
  dulwich.object_store.DiskObjectStore._update_pack_cache:
  - 1633
  - 1634
  - 1635
  - 1636
  - 1655
  - 1640
  - 1641
  - 1642
  - 1643
  - 1651
  - 1622
  - 1654
  - 1624
  - 1626
  - 1628
  - 1629
  - 1630
  dulwich.object_store.DiskObjectStore.add_alternate_path:
  - 1600
  - 1601
  - 1602
  - 1605
  - 1607
  - 1609
  - 1614
  - 1615
  - 1617
  - 1618
  - 1619
  - 1597
  - 1598
  dulwich.object_store.DiskObjectStore.add_object:
  - 1962
  - 1967
  - 1968
  - 1970
  - 1971
  - 1972
  - 1975
  - 1978
  - 1979
  - 1980
  dulwich.object_store.DiskObjectStore.add_pack:
  - 1935
  - 1938
  - 1936
  - 1927
  dulwich.object_store.DiskObjectStore.add_pack.abort:
  - 1956
  - 1957
  dulwich.object_store.DiskObjectStore.add_pack.commit:
  - 1952
  - 1941
  - 1942
  - 1944
  - 1945
  - 1949
  - 1951
  dulwich.object_store.DiskObjectStore.add_thin_pack:
  - 1920
  - 1921
  - 1922
  - 1899
  - 1916
  - 1917
  - 1918
  - 1919
  dulwich.object_store.DiskObjectStore.alternates:
  - 1577
  - 1578
  - 1574
  - 1567
  dulwich.object_store.DiskObjectStore.close:
  - 2348
  - 2353
  - 2354
  - 2358
  - 2359
  - 2360
  - 2364
  dulwich.object_store.DiskObjectStore.contains_packed:
  - 2152
  - 2153
  - 2140
  - 2157
  dulwich.object_store.DiskObjectStore.count_loose_objects:
  - 1673
  - 1679
  - 1682
  - 1683
  - 1685
  - 1688
  - 1689
  dulwich.object_store.DiskObjectStore.delete_loose_object:
  - 1714
  - 1706
  dulwich.object_store.DiskObjectStore.from_config:
  - 1538
  - 1539
  - 1543
  - 1454
  - 1466
  - 1467
  - 1472
  - 1473
  - 1478
  - 1479
  - 1484
  - 1490
  - 1491
  - 1496
  - 1500
  - 1501
  - 1506
  - 1510
  - 1514
  - 1515
  - 1521
  - 1524
  - 1527
  - 1530
  - 1531
  - 1534
  dulwich.object_store.DiskObjectStore.get_commit_graph:
  - 2061
  - 2066
  - 2069
  - 2073
  - 2074
  - 2075
  dulwich.object_store.DiskObjectStore.get_midx:
  - 2088
  - 2091
  - 2093
  - 2094
  - 2095
  - 2079
  dulwich.object_store.DiskObjectStore.get_object_mtime:
  - 1729
  - 1730
  - 1732
  - 1737
  - 1739
  - 1743
  - 1717
  dulwich.object_store.DiskObjectStore.get_raw:
  - 2177
  - 2179
  - 2180
  - 2182
  - 2187
  - 2188
  - 2189
  - 2190
  - 2160
  - 2193
  - 2194
  - 2200
  - 2173
  dulwich.object_store.DiskObjectStore.init:
  - 2016
  - 1991
  - 2004
  - 2005
  - 2006
  - 2009
  - 2010
  - 2011
  - 2012
  - 2013
  - 2014
  - 2015
  dulwich.object_store.DiskObjectStore.iter_prefix:
  - 2049
  - 2050
  - 2051
  - 2052
  - 2053
  - 2054
  - 2055
  - 2056
  - 2057
  - 2058
  - 2019
  - 2027
  - 2028
  - 2030
  - 2031
  - 2032
  - 2034
  - 2035
  - 2036
  - 2037
  - 2038
  - 2039
  - 2043
  - 2045
  - 2046
  - 2047
  dulwich.object_store.DiskObjectStore.prune:
  - 2336
  - 2339
  - 2340
  - 2341
  - 2311
  - 2343
  - 2344
  - 2345
  - 2315
  - 2330
  - 2317
  - 2318
  - 2319
  - 2323
  - 2328
  - 2298
  - 2331
  - 2334
  dulwich.object_store.DiskObjectStore.write_commit_graph:
  - 2237
  - 2246
  - 2250
  - 2253
  - 2254
  - 2259
  - 2261
  - 2264
  - 2266
  - 2271
  - 2276
  - 2278
  - 2280
  - 2281
  - 2282
  - 2283
  - 2286
  - 2288
  - 2289
  - 2292
  dulwich.object_store.DiskObjectStore.write_midx:
  - 2217
  - 2224
  - 2226
  - 2227
  - 2228
  - 2231
  - 2232
  - 2203
  dulwich.object_store.GraphTraversalReachability:
  - 3443
  dulwich.object_store.GraphTraversalReachability.__init__:
  - 3451
  dulwich.object_store.GraphTraversalReachability.get_reachable_commits:
  - 3464
  - 3476
  - 3477
  - 3478
  dulwich.object_store.GraphTraversalReachability.get_reachable_objects:
  - 3521
  - 3524
  - 3525
  - 3531
  - 3534
  - 3535
  - 3507
  - 3516
  - 3517
  dulwich.object_store.GraphTraversalReachability.get_tree_objects:
  - 3497
  - 3498
  - 3499
  - 3487
  dulwich.object_store.GraphWalker:
  - 126
  dulwich.object_store.GraphWalker.__next__:
  - 129
  - 130
  dulwich.object_store.GraphWalker.ack:
  - 133
  - 134
  dulwich.object_store.GraphWalker.nak:
  - 137
  - 138
  dulwich.object_store.MemoryObjectStore:
  - 2368
  dulwich.object_store.MemoryObjectStore.__delitem__:
  - 2429
  - 2430
  dulwich.object_store.MemoryObjectStore.__getitem__:
  - 2426
  - 2415
  dulwich.object_store.MemoryObjectStore.__init__:
  - 2371
  - 2375
  dulwich.object_store.MemoryObjectStore.__iter__:
  - 2396
  - 2397
  dulwich.object_store.MemoryObjectStore._to_hexsha:
  - 2380
  - 2381
  - 2382
  - 2383
  dulwich.object_store.MemoryObjectStore.add_object:
  - 2433
  - 2434
  dulwich.object_store.MemoryObjectStore.add_objects:
  - 2448
  - 2441
  - 2447
  dulwich.object_store.MemoryObjectStore.add_pack:
  - 2451
  - 2461
  dulwich.object_store.MemoryObjectStore.add_pack.abort:
  - 2477
  dulwich.object_store.MemoryObjectStore.add_pack.commit:
  - 2464
  - 2465
  - 2466
  - 2468
  - 2469
  - 2470
  - 2471
  - 2472
  - 2474
  dulwich.object_store.MemoryObjectStore.add_pack_data:
  - 2500
  - 2502
  - 2509
  - 2512
  - 2487
  - 2494
  dulwich.object_store.MemoryObjectStore.add_thin_pack:
  - 2533
  - 2535
  - 2536
  - 2538
  - 2541
  - 2520
  dulwich.object_store.MemoryObjectStore.contains_loose:
  - 2388
  - 2389
  dulwich.object_store.MemoryObjectStore.contains_packed:
  - 2392
  dulwich.object_store.MemoryObjectStore.get_raw:
  - 2411
  - 2412
  - 2405
  dulwich.object_store.MemoryObjectStore.packs:
  - 2401
  dulwich.object_store.MissingObjectFinder:
  - 2651
  dulwich.object_store.MissingObjectFinder.__init__:
  - 2688
  - 2690
  - 2694
  - 2697
  - 2702
  - 2711
  - 2714
  - 2715
  - 2719
  - 2724
  - 2725
  - 2727
  - 2729
  - 2730
  - 2733
  - 2734
  - 2735
  - 2742
  - 2743
  - 2746
  - 2747
  - 2749
  - 2750
  - 2753
  - 2675
  - 2687
  dulwich.object_store.MissingObjectFinder.__iter__:
  - 2825
  dulwich.object_store.MissingObjectFinder.__next__:
  - 2816
  - 2817
  - 2818
  - 2774
  - 2783
  - 2784
  - 2785
  - 2788
  - 2789
  - 2791
  - 2793
  - 2794
  - 2795
  - 2797
  - 2801
  - 2802
  - 2806
  - 2807
  - 2810
  - 2811
  - 2812
  - 2813
  - 2814
  - 2815
  dulwich.object_store.MissingObjectFinder.add_todo:
  - 2771
  - 2766
  dulwich.object_store.MissingObjectFinder.get_remote_has:
  - 2756
  dulwich.object_store.ObjectIterator:
  - 2545
  dulwich.object_store.ObjectIterator.iterobjects:
  - 2548
  dulwich.object_store.ObjectReachabilityProvider:
  - 142
  dulwich.object_store.ObjectReachabilityProvider.get_reachable_commits:
  - 154
  - 164
  dulwich.object_store.ObjectReachabilityProvider.get_reachable_objects:
  - 171
  - 180
  dulwich.object_store.ObjectReachabilityProvider.get_tree_objects:
  - 194
  - 186
  dulwich.object_store.ObjectStoreGraphWalker:
  - 2840
  - 2834
  - 2837
  dulwich.object_store.ObjectStoreGraphWalker.__init__:
  - 2864
  - 2852
  - 2860
  - 2863
  dulwich.object_store.ObjectStoreGraphWalker.ack:
  - 2880
  - 2881
  - 2884
  - 2885
  - 2886
  - 2887
  - 2888
  - 2892
  - 2872
  - 2873
  - 2879
  dulwich.object_store.ObjectStoreGraphWalker.nak:
  - 2869
  dulwich.object_store.ObjectStoreGraphWalker.next:
  - 2898
  - 2899
  - 2900
  - 2902
  - 2906
  dulwich.object_store.OverlayObjectStore:
  - 2977
  dulwich.object_store.OverlayObjectStore.__init__:
  - 2984
  dulwich.object_store.OverlayObjectStore.__iter__:
  - 3042
  - 3043
  - 3044
  - 3045
  - 3046
  - 3047
  - 3037
  dulwich.object_store.OverlayObjectStore.add_object:
  - 3002
  - 2994
  - 3004
  dulwich.object_store.OverlayObjectStore.add_objects:
  - 3011
  - 3020
  - 3022
  dulwich.object_store.OverlayObjectStore.contains_loose:
  - 3148
  - 3157
  - 3156
  dulwich.object_store.OverlayObjectStore.contains_packed:
  - 3142
  - 3134
  - 3143
  dulwich.object_store.OverlayObjectStore.get_raw:
  - 3128
  - 3115
  - 3126
  dulwich.object_store.OverlayObjectStore.iter_unpacked_subset:
  - 3109
  - 3110
  - 3111
  - 3087
  - 3101
  - 3102
  - 3103
  dulwich.object_store.OverlayObjectStore.iterobjects_subset:
  - 3072
  - 3073
  - 3077
  - 3052
  - 3064
  - 3065
  - 3067
  - 3071
  dulwich.object_store.OverlayObjectStore.packs:
  - 3032
  - 3033
  - 3026
  dulwich.object_store.PackBasedObjectStore:
  - 802
  dulwich.object_store.PackBasedObjectStore.__contains__:
  - 928
  - 932
  - 934
  - 935
  dulwich.object_store.PackBasedObjectStore.__init__:
  - 820
  dulwich.object_store.PackBasedObjectStore.__iter__:
  - 1153
  - 1154
  - 1146
  - 1147
  - 1148
  - 1150
  dulwich.object_store.PackBasedObjectStore._add_cached_pack:
  - 940
  - 941
  - 942
  - 944
  - 945
  dulwich.object_store.PackBasedObjectStore._clear_cached_packs:
  - 982
  - 983
  dulwich.object_store.PackBasedObjectStore._iter_alternate_objects:
  - 1018
  - 1019
  - 1020
  dulwich.object_store.PackBasedObjectStore._iter_cached_packs:
  - 986
  dulwich.object_store.PackBasedObjectStore._iter_loose_objects:
  - 1023
  dulwich.object_store.PackBasedObjectStore.add_objects:
  - 1353
  - 1345
  - 1354
  - 1355
  dulwich.object_store.PackBasedObjectStore.add_pack:
  - 875
  dulwich.object_store.PackBasedObjectStore.add_pack_data:
  - 896
  - 904
  - 907
  - 884
  - 891
  - 894
  dulwich.object_store.PackBasedObjectStore.alternates:
  - 911
  dulwich.object_store.PackBasedObjectStore.close:
  - 992
  - 996
  dulwich.object_store.PackBasedObjectStore.contains_loose:
  - 1161
  - 1157
  dulwich.object_store.PackBasedObjectStore.contains_packed:
  - 921
  - 915
  - 919
  dulwich.object_store.PackBasedObjectStore.count_pack_files:
  - 1010
  - 1004
  - 1013
  dulwich.object_store.PackBasedObjectStore.delete_loose_object:
  - 1030
  dulwich.object_store.PackBasedObjectStore.generate_pack_bitmaps:
  - 1120
  - 1141
  - 1134
  - 1135
  dulwich.object_store.PackBasedObjectStore.generate_pack_data:
  - 965
  - 968
  - 969
  - 970
  - 956
  dulwich.object_store.PackBasedObjectStore.get_raw:
  - 1185
  - 1186
  - 1187
  - 1188
  - 1189
  - 1192
  - 1194
  - 1164
  - 1197
  - 1199
  - 1170
  - 1172
  - 1173
  - 1174
  - 1175
  - 1176
  - 1180
  - 1182
  dulwich.object_store.PackBasedObjectStore.get_reachability_provider:
  - 868
  - 869
  - 872
  - 846
  - 855
  - 858
  - 861
  dulwich.object_store.PackBasedObjectStore.get_unpacked_object:
  - 1312
  - 1313
  - 1314
  - 1318
  - 1320
  - 1323
  - 1324
  - 1327
  - 1329
  - 1332
  - 1333
  - 1302
  - 1335
  - 1308
  - 1310
  - 1311
  dulwich.object_store.PackBasedObjectStore.iter_unpacked_subset:
  - 1248
  - 1249
  - 1250
  - 1256
  - 1225
  - 1226
  - 1227
  - 1257
  - 1258
  - 1233
  - 1234
  - 1235
  - 1238
  - 1239
  - 1211
  - 1245
  - 1246
  - 1247
  dulwich.object_store.PackBasedObjectStore.iterobjects_subset:
  - 1280
  - 1281
  - 1284
  - 1285
  - 1286
  - 1287
  - 1288
  - 1289
  - 1290
  - 1291
  - 1292
  - 1293
  - 1294
  - 1295
  - 1296
  - 1263
  - 1277
  - 1278
  - 1279
  dulwich.object_store.PackBasedObjectStore.pack_loose_objects:
  - 1056
  - 1041
  - 1049
  - 1050
  - 1051
  - 1052
  - 1053
  - 1054
  - 1055
  dulwich.object_store.PackBasedObjectStore.packs:
  - 1000
  - 1001
  dulwich.object_store.PackBasedObjectStore.repack:
  - 1063
  - 1072
  - 1073
  - 1075
  - 1076
  - 1077
  - 1078
  - 1079
  - 1080
  - 1081
  - 1083
  - 1086
  - 1087
  - 1088
  - 1089
  - 1093
  - 1097
  - 1098
  - 1099
  - 1102
  - 1103
  - 1104
  - 1106
  - 1107
  - 1108
  - 1109
  - 1110
  - 1111
  dulwich.object_store.PackCapableObjectStore:
  - 736
  dulwich.object_store.PackCapableObjectStore.add_pack:
  - 743
  dulwich.object_store.PackCapableObjectStore.add_pack_data:
  - 755
  dulwich.object_store.PackCapableObjectStore.get_unpacked_object:
  - 779
  - 767
  dulwich.object_store.PackCapableObjectStore.iterobjects_subset:
  - 784
  - 793
  - 795
  - 797
  dulwich.object_store.PackContainer:
  - 313
  dulwich.object_store.PackContainer.add_pack:
  - 316
  dulwich.object_store._collect_ancestors:
  - 3328
  - 3329
  - 3331
  - 3303
  - 3304
  - 3306
  - 3309
  - 3312
  - 3313
  - 3314
  - 3315
  - 3316
  - 3317
  - 3289
  - 3322
  - 3323
  - 3325
  dulwich.object_store._collect_filetree_revs:
  - 2592
  - 2593
  - 2578
  - 2586
  - 2587
  - 2590
  - 2591
  dulwich.object_store._split_commits_and_tags:
  - 2624
  - 2628
  - 2630
  - 2631
  - 2632
  - 2602
  - 2636
  - 2637
  - 2638
  - 2639
  - 2641
  - 2646
  - 2616
  - 2621
  - 2622
  - 2623
  dulwich.object_store.commit_tree_changes:
  - 2945
  - 2948
  - 2950
  - 2918
  - 2952
  - 2958
  - 2959
  - 2964
  - 2965
  - 2967
  - 2968
  - 2972
  - 2941
  dulwich.object_store.find_shallow:
  - 225
  - 257
  - 258
  - 259
  - 261
  - 263
  - 213
  - 245
  - 248
  - 251
  - 252
  - 254
  - 255
  dulwich.object_store.find_shallow.get_parents:
  - 228
  - 229
  - 231
  - 232
  - 233
  - 239
  dulwich.object_store.get_depth:
  - 289
  - 292
  - 293
  - 297
  - 298
  - 300
  - 303
  - 274
  - 306
  - 308
  - 285
  dulwich.object_store.iter_commit_contents:
  - 3394
  - 3395
  - 3403
  - 3376
  - 3410
  - 3411
  - 3414
  - 3415
  - 3416
  - 3418
  dulwich.object_store.iter_tree_contents:
  - 3361
  - 3362
  - 3364
  - 3365
  - 3366
  - 3367
  - 3338
  - 3349
  - 3353
  - 3355
  - 3357
  dulwich.object_store.peel_sha:
  - 3424
  - 3434
  - 3436
  dulwich.object_store.read_packs_file:
  - 3168
  - 3170
  - 3163
  - 3164
  - 3165
  - 3167
  dulwich.object_store.tree_lookup_path:
  - 2561
  - 2570
  - 2572
  - 2569
  dulwich.objects:
  - 407
  - 110
  - 145
  - 1651
  - 148
  - 212
  - 23
  - 151
  - 91
  - 2111
  dulwich.objects.Blob:
  - 786
  - 802
  - 765
  dulwich.objects.Blob.__init__:
  - 776
  - 775
  dulwich.objects.Blob._get_data:
  - 781
  dulwich.objects.Blob._set_data:
  - 784
  dulwich.objects.Blob.check:
  - 832
  - 827
  dulwich.objects.Blob.from_path:
  - 810
  - 821
  - 822
  dulwich.objects.Blob.splitlines:
  - 835
  - 840
  - 842
  - 843
  - 847
  - 848
  - 849
  - 850
  - 851
  - 853
  - 854
  - 855
  - 857
  - 858
  - 859
  dulwich.objects.Commit:
  - 2049
  - 2081
  - 2085
  - 2055
  - 1736
  - 2091
  - 2060
  - 2095
  - 2097
  - 2099
  - 2068
  - 2038
  - 2070
  - 2074
  - 2076
  dulwich.objects.Commit.__init__:
  - 1760
  - 1761
  dulwich.objects.Commit._deserialize:
  - 1824
  - 1826
  - 1827
  - 1828
  - 1829
  - 1831
  - 1834
  - 1807
  - 1809
  - 1811
  - 1813
  - 1814
  - 1815
  - 1817
  - 1818
  - 1819
  - 1821
  - 1822
  dulwich.objects.Commit._get_extra:
  - 2057
  dulwich.objects.Commit._get_parents:
  - 2041
  dulwich.objects.Commit._serialize:
  - 2017
  - 2020
  - 1995
  - 1996
  - 1997
  - 1998
  - 2027
  - 2028
  - 2029
  - 2030
  - 2003
  - 2031
  - 2034
  - 2006
  - 2035
  - 2036
  dulwich.objects.Commit._set_parents:
  - 2045
  dulwich.objects.Commit.check:
  - 1848
  - 1853
  - 1855
  - 1856
  - 1857
  - 1858
  - 1859
  - 1861
  - 1862
  - 1864
  - 1868
  - 1869
  - 1873
  - 1874
  - 1877
  - 1878
  - 1880
  - 1885
  - 1890
  - 1892
  dulwich.objects.Commit.extract_signature:
  - 1952
  - 1932
  - 1944
  - 1945
  - 1947
  - 1950
  dulwich.objects.Commit.from_path:
  - 1784
  - 1772
  - 1783
  dulwich.objects.Commit.raw_without_sig:
  - 1921
  - 1929
  - 1925
  - 1926
  dulwich.objects.Commit.sign:
  - 1899
  - 1907
  - 1908
  - 1909
  - 1910
  - 1911
  - 1912
  - 1916
  - 1917
  dulwich.objects.Commit.verify:
  - 1984
  - 1985
  - 1986
  - 1987
  - 1988
  - 1960
  - 1973
  - 1978
  - 1979
  - 1980
  - 1983
  dulwich.objects.EmptyFileException:
  - 155
  dulwich.objects.FixedSha:
  - 380
  dulwich.objects.FixedSha.__init__:
  - 385
  - 390
  - 391
  - 392
  - 395
  dulwich.objects.FixedSha.digest:
  - 398
  dulwich.objects.FixedSha.hexdigest:
  - 402
  - 403
  dulwich.objects.S_ISGITLINK:
  - 165
  - 159
  dulwich.objects.ShaFile:
  - 444
  dulwich.objects.ShaFile.__bytes__:
  - 528
  - 529
  dulwich.objects.ShaFile.__eq__:
  - 748
  - 749
  dulwich.objects.ShaFile.__hash__:
  - 532
  - 533
  dulwich.objects.ShaFile.__init__:
  - 604
  dulwich.objects.ShaFile.__le__:
  - 758
  - 759
  dulwich.objects.ShaFile.__lt__:
  - 752
  - 753
  dulwich.objects.ShaFile.__ne__:
  - 744
  - 745
  dulwich.objects.ShaFile.__repr__:
  - 740
  dulwich.objects.ShaFile._check_has_member:
  - 675
  - 684
  dulwich.objects.ShaFile._header:
  - 710
  dulwich.objects.ShaFile._is_legacy_object:
  - 584
  - 585
  dulwich.objects.ShaFile._parse_file:
  - 591
  - 592
  - 595
  - 596
  - 597
  - 599
  - 600
  dulwich.objects.ShaFile._parse_legacy_object:
  - 484
  - 485
  - 486
  - 487
  - 489
  dulwich.objects.ShaFile._parse_legacy_object_header:
  - 481
  - 458
  - 460
  - 461
  - 465
  - 466
  - 468
  - 469
  - 471
  - 473
  - 476
  - 477
  dulwich.objects.ShaFile._parse_object:
  - 577
  - 571
  - 580
  - 574
  dulwich.objects.ShaFile._parse_object_header:
  - 563
  - 564
  - 565
  - 566
  - 568
  dulwich.objects.ShaFile.as_legacy_object:
  - 504
  - 505
  - 503
  dulwich.objects.ShaFile.as_legacy_object_chunks:
  - 492
  - 496
  - 497
  - 498
  - 499
  - 500
  dulwich.objects.ShaFile.as_pretty_string:
  - 536
  - 537
  dulwich.objects.ShaFile.as_raw_chunks:
  - 513
  - 515
  - 509
  dulwich.objects.ShaFile.as_raw_string:
  - 521
  - 525
  dulwich.objects.ShaFile.check:
  - 688
  - 706
  - 701
  dulwich.objects.ShaFile.copy:
  - 728
  - 729
  - 730
  - 732
  dulwich.objects.ShaFile.from_file:
  - 625
  - 623
  dulwich.objects.ShaFile.from_path:
  - 617
  - 618
  - 619
  dulwich.objects.ShaFile.from_raw_chunks:
  - 653
  - 660
  - 661
  - 663
  - 664
  dulwich.objects.ShaFile.from_raw_string:
  - 642
  - 643
  - 645
  - 646
  - 635
  dulwich.objects.ShaFile.from_string:
  - 669
  - 670
  - 671
  dulwich.objects.ShaFile.id:
  - 736
  - 737
  dulwich.objects.ShaFile.raw_length:
  - 713
  - 714
  dulwich.objects.ShaFile.set_raw_chunks:
  - 552
  - 553
  - 556
  - 550
  dulwich.objects.ShaFile.set_raw_string:
  - 545
  - 542
  - 543
  dulwich.objects.ShaFile.sha:
  - 717
  - 718
  - 720
  - 721
  - 722
  - 723
  dulwich.objects.SubmoduleEncountered:
  - 1363
  dulwich.objects.SubmoduleEncountered.__init__:
  - 1366
  dulwich.objects.Tag:
  - 1124
  - 933
  - 1126
  - 1127
  - 1130
  - 1134
  - 1137
  - 1139
  dulwich.objects.Tag.__init__:
  - 961
  - 962
  dulwich.objects.Tag._deserialize:
  - 1061
  - 1093
  - 1096
  - 1066
  - 1067
  - 1100
  - 1069
  - 1070
  - 1071
  - 1072
  - 1075
  - 1077
  - 1078
  - 1084
  - 1085
  - 1086
  dulwich.objects.Tag._get_object:
  - 1112
  - 1116
  dulwich.objects.Tag._serialize:
  - 1058
  - 1028
  - 1030
  - 1031
  - 1033
  - 1034
  - 1036
  - 1037
  - 1038
  - 1039
  - 1041
  - 1043
  - 1046
  - 1054
  dulwich.objects.Tag.check:
  - 993
  - 995
  - 996
  - 997
  - 999
  - 1002
  - 1004
  - 1020
  - 1006
  - 1007
  - 1009
  - 1010
  - 1012
  - 1015
  - 1016
  - 1018
  - 988
  - 1022
  dulwich.objects.Tag.extract_signature:
  - 1186
  - 1187
  - 1189
  - 1192
  - 1194
  - 1174
  dulwich.objects.Tag.from_path:
  - 971
  - 982
  - 983
  dulwich.objects.Tag.raw_without_sig:
  - 1168
  - 1169
  - 1170
  - 1164
  dulwich.objects.Tag.sign:
  - 1152
  - 1153
  - 1154
  - 1155
  - 1159
  - 1160
  - 1142
  - 1150
  - 1151
  dulwich.objects.Tag.verify:
  - 1220
  - 1221
  - 1222
  - 1225
  - 1226
  - 1227
  - 1228
  - 1229
  - 1230
  - 1202
  - 1215
  dulwich.objects.Tree:
  - 1377
  dulwich.objects.Tree.__contains__:
  - 1408
  dulwich.objects.Tree.__delitem__:
  - 1429
  dulwich.objects.Tree.__getitem__:
  - 1412
  dulwich.objects.Tree.__init__:
  - 1385
  - 1386
  dulwich.objects.Tree.__iter__:
  - 1438
  - 1439
  dulwich.objects.Tree.__len__:
  - 1434
  - 1435
  dulwich.objects.Tree.__setitem__:
  - 1416
  dulwich.objects.Tree._deserialize:
  - 1473
  - 1471
  dulwich.objects.Tree._serialize:
  - 1518
  dulwich.objects.Tree.add:
  - 1442
  dulwich.objects.Tree.as_pretty_string:
  - 1521
  - 1527
  - 1528
  - 1533
  - 1534
  dulwich.objects.Tree.check:
  - 1506
  - 1510
  - 1511
  - 1513
  - 1482
  - 1487
  - 1499
  - 1500
  - 1501
  dulwich.objects.Tree.from_path:
  - 1402
  - 1403
  - 1391
  dulwich.objects.Tree.items:
  - 1464
  - 1468
  dulwich.objects.Tree.iteritems:
  - 1461
  - 1454
  dulwich.objects.Tree.lookup_path:
  - 1539
  - 1547
  - 1550
  - 1553
  - 1554
  - 1556
  - 1558
  - 1559
  - 1562
  dulwich.objects.TreeEntry:
  - 1236
  dulwich.objects.TreeEntry.in_path:
  - 1243
  - 1244
  - 1246
  dulwich.objects._decompress:
  - 169
  - 170
  - 171
  dulwich.objects._format_message:
  - 928
  - 929
  - 922
  - 923
  - 924
  - 925
  - 926
  - 927
  dulwich.objects._parse_message:
  - 896
  - 897
  - 866
  - 900
  - 874
  - 911
  - 914
  - 916
  - 889
  - 890
  - 894
  dulwich.objects._parse_message._strip_last_newline:
  - 880
  - 881
  dulwich.objects._path_to_bytes:
  - 354
  - 355
  - 356
  dulwich.objects.check_hexsha:
  - 323
  - 315
  dulwich.objects.check_identity:
  - 328
  - 336
  - 338
  - 339
  - 340
  dulwich.objects.check_time:
  - 361
  - 370
  dulwich.objects.filename_to_hex:
  - 257
  - 259
  - 260
  - 262
  - 264
  - 265
  - 244
  - 247
  - 248
  - 249
  - 251
  - 253
  dulwich.objects.format_time_entry:
  - 1644
  - 1646
  dulwich.objects.format_timezone:
  - 1611
  - 1604
  - 1597
  - 1606
  dulwich.objects.git_line:
  - 376
  - 375
  dulwich.objects.hex_to_filename:
  - 227
  - 228
  - 232
  - 233
  - 238
  - 239
  - 216
  - 220
  - 221
  - 222
  dulwich.objects.hex_to_sha:
  - 184
  - 186
  - 188
  - 183
  dulwich.objects.is_blob:
  - 418
  - 435
  dulwich.objects.is_commit:
  - 410
  - 427
  dulwich.objects.is_tag:
  - 422
  - 439
  dulwich.objects.is_tree:
  - 414
  - 431
  dulwich.objects.key_entry:
  - 1328
  - 1322
  dulwich.objects.key_entry_name_order:
  - 1334
  dulwich.objects.object_class:
  - 304
  - 311
  dulwich.objects.object_header:
  - 273
  - 269
  - 270
  - 271
  dulwich.objects.parse_commit:
  - 1665
  - 1690
  - 1692
  - 1694
  - 1695
  - 1697
  - 1698
  - 1699
  - 1701
  - 1702
  - 1703
  - 1705
  - 1706
  - 1708
  - 1709
  - 1711
  - 1712
  - 1713
  - 1714
  - 1716
  - 1719
  - 1721
  dulwich.objects.parse_time_entry:
  - 1633
  - 1634
  - 1635
  - 1617
  - 1627
  dulwich.objects.parse_timezone:
  - 1568
  - 1579
  - 1582
  - 1583
  - 1587
  - 1588
  dulwich.objects.parse_tree:
  - 1280
  - 1252
  - 1263
  - 1265
  - 1267
  - 1270
  - 1273
  - 1277
  - 1279
  dulwich.objects.pretty_format_tree_entry:
  - 1350
  - 1354
  - 1357
  - 1358
  - 1341
  dulwich.objects.serializable_property:
  - 300
  - 277
  dulwich.objects.serializable_property.get:
  - 290
  - 298
  dulwich.objects.serializable_property.set:
  - 280
  - 286
  dulwich.objects.serialize_tree:
  - 1290
  - 1291
  - 1284
  - 1292
  dulwich.objects.sha_to_hex:
  - 176
  - 177
  - 178
  - 179
  dulwich.objects.sorted_tree_items:
  - 1312
  - 1315
  - 1316
  - 1318
  - 1299
  - 1308
  dulwich.objects.valid_hexsha:
  - 202
  - 194
  - 205
  dulwich.objectspec:
  - 45
  - 22
  dulwich.objectspec.AmbiguousShortId:
  - 466
  dulwich.objectspec.AmbiguousShortId.__init__:
  - 469
  dulwich.objectspec._parse_number_suffix:
  - 89
  - 91
  - 84
  - 85
  dulwich.objectspec._resolve_object:
  - 73
  - 68
  dulwich.objectspec.parse_commit:
  - 545
  - 550
  - 554
  - 523
  - 527
  - 496
  - 528
  - 530
  - 536
  - 538
  - 542
  - 543
  dulwich.objectspec.parse_commit.dereference_tag:
  - 516
  - 508
  - 509
  dulwich.objectspec.parse_commit_range:
  - 448
  - 449
  - 452
  - 453
  - 459
  - 460
  - 435
  dulwich.objectspec.parse_object:
  - 134
  - 135
  - 140
  - 141
  - 144
  - 145
  - 148
  - 149
  - 156
  - 163
  - 164
  - 168
  - 169
  - 170
  - 175
  - 176
  - 178
  - 181
  - 182
  - 190
  - 193
  - 194
  - 198
  - 208
  - 209
  - 210
  - 216
  - 217
  - 218
  - 219
  - 222
  - 95
  - 223
  - 225
  - 227
  - 228
  - 229
  - 104
  - 234
  - 107
  - 108
  - 109
  - 239
  - 112
  - 113
  - 114
  - 240
  - 242
  - 121
  - 250
  - 253
  - 127
  dulwich.objectspec.parse_ref:
  - 320
  - 324
  - 325
  - 329
  - 330
  - 331
  - 311
  dulwich.objectspec.parse_refs:
  - 424
  - 427
  - 428
  - 414
  dulwich.objectspec.parse_reftuple:
  - 352
  - 353
  - 358
  - 359
  - 364
  - 367
  - 370
  - 341
  - 374
  - 377
  - 378
  - 380
  dulwich.objectspec.parse_reftuples:
  - 401
  - 406
  - 405
  - 390
  dulwich.objectspec.parse_tree:
  - 257
  - 291
  - 292
  - 294
  - 298
  - 267
  - 300
  - 302
  - 271
  - 273
  - 305
  - 306
  - 277
  - 280
  - 283
  - 285
  dulwich.objectspec.scan_for_short_id:
  - 482
  - 484
  - 486
  - 487
  - 488
  - 490
  dulwich.objectspec.to_bytes:
  - 52
  - 61
  - 60
  dulwich.pack:
  - 139
  - 148
  - 1917
  - 23
  dulwich.pack.DeltaChainIterator:
  - 1921
  dulwich.pack.DeltaChainIterator.__init__:
  - 1958
  - 1950
  - 1959
  dulwich.pack.DeltaChainIterator.__iter__:
  - 2139
  - 2140
  dulwich.pack.DeltaChainIterator._ensure_no_pending:
  - 2068
  dulwich.pack.DeltaChainIterator._follow_chain:
  - 2124
  - 2125
  - 2126
  - 2129
  - 2130
  - 2131
  - 2133
  dulwich.pack.DeltaChainIterator._resolve_object:
  - 2114
  - 2109
  - 2102
  - 2103
  dulwich.pack.DeltaChainIterator._walk_all_chains:
  - 2064
  - 2065
  - 2062
  - 2063
  dulwich.pack.DeltaChainIterator._walk_ref_chains:
  - 2082
  - 2088
  - 2089
  - 2090
  - 2091
  - 2093
  - 2074
  - 2075
  - 2078
  - 2079
  dulwich.pack.DeltaChainIterator.ext_refs:
  - 2143
  dulwich.pack.DeltaChainIterator.for_pack_data:
  - 1967
  - 1976
  - 1977
  - 1978
  - 1979
  dulwich.pack.DeltaChainIterator.for_pack_subset:
  - 1991
  - 2002
  - 2003
  - 2004
  - 2005
  - 2007
  - 2009
  - 2012
  - 2013
  - 2015
  - 2016
  - 2017
  - 2018
  - 2020
  - 2023
  - 2025
  - 2026
  - 2027
  - 2028
  - 2029
  - 2030
  dulwich.pack.DeltaChainIterator.record:
  - 2048
  - 2049
  - 2051
  - 2034
  - 2042
  - 2044
  - 2046
  - 2047
  dulwich.pack.DeltaChainIterator.set_pack_data:
  - 2054
  dulwich.pack.FilePackIndex:
  - 810
  dulwich.pack.FilePackIndex.__eq__:
  - 857
  - 858
  - 863
  - 855
  dulwich.pack.FilePackIndex.__init__:
  - 839
  - 840
  - 843
  - 844
  - 847
  - 831
  dulwich.pack.FilePackIndex.__len__:
  - 873
  dulwich.pack.FilePackIndex._itersha:
  - 897
  - 898
  - 899
  dulwich.pack.FilePackIndex._object_offset:
  - 974
  - 979
  - 980
  - 981
  - 986
  - 987
  - 989
  dulwich.pack.FilePackIndex._read_fan_out_table:
  - 921
  - 925
  - 911
  dulwich.pack.FilePackIndex._unpack_crc32_checksum:
  - 893
  dulwich.pack.FilePackIndex._unpack_entry:
  - 877
  dulwich.pack.FilePackIndex._unpack_name:
  - 885
  dulwich.pack.FilePackIndex._unpack_offset:
  - 889
  dulwich.pack.FilePackIndex.calculate_checksum:
  - 936
  - 940
  dulwich.pack.FilePackIndex.check:
  - 929
  - 930
  - 931
  - 932
  dulwich.pack.FilePackIndex.close:
  - 866
  - 867
  - 868
  - 869
  - 870
  dulwich.pack.FilePackIndex.get_pack_checksum:
  - 947
  - 943
  dulwich.pack.FilePackIndex.get_stored_checksum:
  - 954
  - 950
  dulwich.pack.FilePackIndex.iter_prefix:
  - 992
  - 993
  - 994
  - 998
  - 999
  - 1000
  - 1005
  - 1006
  - 1007
  - 1008
  - 1010
  dulwich.pack.FilePackIndex.iterentries:
  - 907
  - 908
  - 902
  dulwich.pack.FilePackIndex.object_offset:
  - 963
  - 964
  - 966
  - 968
  - 969
  - 957
  dulwich.pack.FilePackIndex.path:
  - 851
  - 852
  dulwich.pack.MemoryPackIndex:
  - 744
  dulwich.pack.MemoryPackIndex.__init__:
  - 759
  - 751
  dulwich.pack.MemoryPackIndex.__len__:
  - 770
  - 771
  dulwich.pack.MemoryPackIndex._itersha:
  - 789
  - 790
  dulwich.pack.MemoryPackIndex.clone:
  - 805
  - 806
  dulwich.pack.MemoryPackIndex.for_pack:
  - 800
  - 798
  - 799
  dulwich.pack.MemoryPackIndex.get_pack_checksum:
  - 766
  dulwich.pack.MemoryPackIndex.iterentries:
  - 793
  - 794
  dulwich.pack.MemoryPackIndex.object_offset:
  - 780
  - 781
  - 774
  - 782
  dulwich.pack.MemoryPackIndex.object_sha1:
  - 785
  dulwich.pack.ObjectContainer:
  - 198
  dulwich.pack.ObjectContainer.__contains__:
  - 217
  dulwich.pack.ObjectContainer.__getitem__:
  - 220
  dulwich.pack.ObjectContainer.add_object:
  - 201
  dulwich.pack.ObjectContainer.add_objects:
  - 208
  dulwich.pack.ObjectContainer.get_commit_graph:
  - 223
  dulwich.pack.Pack:
  - 3495
  dulwich.pack.Pack.__contains__:
  - 3741
  - 3743
  dulwich.pack.Pack.__enter__:
  - 3674
  dulwich.pack.Pack.__eq__:
  - 3688
  - 3687
  dulwich.pack.Pack.__exit__:
  - 3683
  - 3684
  dulwich.pack.Pack.__getitem__:
  - 3756
  - 3757
  - 3758
  dulwich.pack.Pack.__init__:
  - 3516
  - 3541
  - 3550
  dulwich.pack.Pack.__init__.<lambda1>:
  - 3541
  dulwich.pack.Pack.__init__.<lambda2>:
  - 3550
  dulwich.pack.Pack.__iter__:
  - 3701
  - 3702
  dulwich.pack.Pack.__len__:
  - 3693
  - 3694
  dulwich.pack.Pack.__repr__:
  - 3697
  dulwich.pack.Pack.bitmap:
  - 3600
  - 3608
  - 3611
  dulwich.pack.Pack.check:
  - 3721
  - 3726
  - 3727
  - 3728
  - 3729
  dulwich.pack.Pack.check_length_and_checksum:
  - 3705
  - 3706
  - 3707
  - 3709
  - 3710
  - 3711
  dulwich.pack.Pack.close:
  - 3667
  - 3668
  - 3669
  - 3670
  - 3671
  dulwich.pack.Pack.data:
  - 3584
  - 3580
  - 3581
  - 3583
  dulwich.pack.Pack.ensure_bitmap:
  - 3650
  - 3621
  - 3656
  - 3658
  - 3659
  - 3637
  - 3643
  - 3644
  - 3646
  dulwich.pack.Pack.entries:
  - 3942
  - 3935
  dulwich.pack.Pack.from_lazy_objects:
  - 3557
  - 3558
  dulwich.pack.Pack.from_objects:
  - 3571
  - 3565
  - 3566
  dulwich.pack.Pack.get_raw:
  - 3749
  - 3750
  - 3751
  - 3752
  - 3753
  dulwich.pack.Pack.get_ref:
  - 3851
  - 3854
  - 3857
  - 3858
  - 3859
  - 3860
  dulwich.pack.Pack.get_stored_checksum:
  - 3733
  - 3734
  dulwich.pack.Pack.get_unpacked_object:
  - 3969
  - 3976
  - 3977
  - 3978
  - 3979
  - 3980
  dulwich.pack.Pack.index:
  - 3593
  - 3595
  - 3589
  dulwich.pack.Pack.iter_unpacked:
  - 3824
  - 3826
  - 3822
  - 3831
  dulwich.pack.Pack.iter_unpacked_subset:
  - 3810
  - 3811
  - 3812
  - 3813
  - 3816
  - 3818
  - 3789
  - 3790
  - 3792
  - 3793
  - 3794
  - 3795
  - 3797
  - 3798
  - 3799
  - 3800
  - 3806
  dulwich.pack.Pack.iterobjects:
  - 3761
  - 3762
  - 3763
  dulwich.pack.Pack.iterobjects_subset:
  - 3769
  - 3772
  dulwich.pack.Pack.keep:
  - 3842
  - 3843
  - 3844
  - 3845
  - 3834
  dulwich.pack.Pack.name:
  - 3576
  - 3575
  dulwich.pack.Pack.pack_tuples:
  - 3737
  - 3738
  dulwich.pack.Pack.resolve_object:
  - 3875
  - 3887
  - 3889
  - 3892
  - 3897
  - 3898
  - 3899
  - 3901
  - 3902
  - 3903
  - 3904
  - 3906
  - 3911
  - 3913
  - 3914
  - 3915
  - 3918
  - 3919
  - 3926
  - 3928
  dulwich.pack.Pack.sorted_entries:
  - 3957
  - 3956
  - 3949
  dulwich.pack.PackChunkGenerator:
  - 3006
  dulwich.pack.PackChunkGenerator.__init__:
  - 3016
  - 3025
  - 3027
  - 3028
  - 3029
  dulwich.pack.PackChunkGenerator.__iter__:
  - 3042
  dulwich.pack.PackChunkGenerator._pack_data_chunks:
  - 3073
  - 3075
  - 3076
  - 3078
  - 3079
  - 3080
  - 3086
  - 3094
  - 3097
  - 3102
  - 3103
  - 3104
  - 3105
  - 3106
  - 3108
  - 3110
  - 3115
  - 3054
  - 3065
  - 3066
  - 3068
  - 3069
  - 3070
  - 3071
  dulwich.pack.PackChunkGenerator.sha1digest:
  - 3038
  - 3039
  dulwich.pack.PackData:
  - 1564
  dulwich.pack.PackData.__enter__:
  - 1682
  dulwich.pack.PackData.__eq__:
  - 1696
  - 1697
  - 1695
  dulwich.pack.PackData.__exit__:
  - 1691
  - 1692
  dulwich.pack.PackData.__init__:
  - 1603
  - 1622
  - 1623
  - 1626
  - 1630
  dulwich.pack.PackData.__len__:
  - 1710
  dulwich.pack.PackData._get_size:
  - 1704
  - 1701
  - 1703
  dulwich.pack.PackData.calculate_checksum:
  - 1714
  - 1718
  dulwich.pack.PackData.check:
  - 1888
  - 1889
  - 1886
  - 1887
  dulwich.pack.PackData.close:
  - 1678
  - 1679
  dulwich.pack.PackData.create_index:
  - 1862
  - 1863
  - 1866
  - 1867
  - 1870
  - 1871
  - 1852
  dulwich.pack.PackData.create_index_v1:
  - 1792
  - 1793
  - 1780
  - 1788
  - 1791
  dulwich.pack.PackData.create_index_v2:
  - 1817
  - 1818
  - 1806
  - 1814
  dulwich.pack.PackData.create_index_v3:
  - 1827
  - 1836
  - 1839
  - 1840
  - 1841
  dulwich.pack.PackData.filename:
  - 1641
  - 1636
  dulwich.pack.PackData.from_file:
  - 1654
  - 1663
  dulwich.pack.PackData.from_path:
  - 1667
  - 1675
  dulwich.pack.PackData.get_object_at:
  - 1913
  - 1914
  - 1903
  dulwich.pack.PackData.get_stored_checksum:
  - 1881
  - 1882
  - 1883
  dulwich.pack.PackData.get_unpacked_object_at:
  - 1897
  - 1898
  - 1895
  dulwich.pack.PackData.iter_unpacked:
  - 1728
  - 1729
  - 1733
  - 1735
  - 1721
  - 1722
  - 1724
  - 1727
  dulwich.pack.PackData.iterentries:
  - 1742
  - 1751
  - 1752
  - 1753
  - 1754
  - 1755
  dulwich.pack.PackData.path:
  - 1645
  dulwich.pack.PackData.sorted_entries:
  - 1762
  - 1771
  - 1770
  dulwich.pack.PackFileDisappeared:
  - 318
  dulwich.pack.PackFileDisappeared.__init__:
  - 321
  dulwich.pack.PackIndex:
  - 627
  - 676
  dulwich.pack.PackIndex.__eq__:
  - 642
  - 643
  - 645
  - 638
  - 639
  dulwich.pack.PackIndex.__iter__:
  - 658
  - 659
  dulwich.pack.PackIndex.__iter__.<lambda1>:
  - 659
  dulwich.pack.PackIndex.__len__:
  - 654
  dulwich.pack.PackIndex.__ne__:
  - 650
  - 651
  dulwich.pack.PackIndex._itersha:
  - 721
  dulwich.pack.PackIndex._object_offset:
  - 706
  dulwich.pack.PackIndex.check:
  - 740
  dulwich.pack.PackIndex.close:
  - 737
  dulwich.pack.PackIndex.get_pack_checksum:
  - 670
  dulwich.pack.PackIndex.iter_prefix:
  - 733
  - 732
  - 725
  - 734
  dulwich.pack.PackIndex.iterentries:
  - 662
  dulwich.pack.PackIndex.object_index:
  - 686
  - 678
  dulwich.pack.PackIndex.object_offset:
  - 689
  dulwich.pack.PackIndex.object_sha1:
  - 698
  - 699
  - 700
  dulwich.pack.PackIndex.objects_sha1:
  - 714
  - 718
  dulwich.pack.PackIndex1:
  - 1015
  dulwich.pack.PackIndex1.__init__:
  - 1024
  - 1032
  - 1034
  dulwich.pack.PackIndex1._unpack_entry:
  - 1037
  - 1038
  dulwich.pack.PackIndex1._unpack_offset:
  - 1046
  - 1047
  dulwich.pack.PackIndex2:
  - 1056
  dulwich.pack.PackIndex2.__init__:
  - 1065
  - 1073
  - 1074
  - 1076
  - 1077
  - 1079
  - 1081
  - 1082
  - 1083
  dulwich.pack.PackIndex2._unpack_crc32_checksum:
  - 1112
  - 1111
  dulwich.pack.PackIndex2._unpack_entry:
  - 1089
  - 1090
  - 1091
  dulwich.pack.PackIndex2._unpack_offset:
  - 1100
  - 1101
  - 1102
  - 1106
  - 1107
  dulwich.pack.PackIndex3:
  - 1117
  dulwich.pack.PackIndex3.__init__:
  - 1154
  - 1157
  - 1129
  - 1161
  - 1162
  - 1163
  - 1137
  - 1138
  - 1140
  - 1141
  - 1145
  - 1146
  - 1148
  dulwich.pack.PackIndex3._unpack_crc32_checksum:
  - 1192
  - 1191
  dulwich.pack.PackIndex3._unpack_entry:
  - 1169
  - 1170
  - 1171
  dulwich.pack.PackIndex3._unpack_offset:
  - 1186
  - 1187
  - 1180
  - 1181
  - 1182
  dulwich.pack.PackIndexer:
  - 2163
  dulwich.pack.PackIndexer._result:
  - 2168
  - 2177
  dulwich.pack.PackInflater:
  - 2181
  dulwich.pack.PackInflater._result:
  - 2184
  - 2192
  dulwich.pack.PackStreamCopier:
  - 1472
  dulwich.pack.PackStreamCopier.__init__:
  - 1496
  - 1485
  dulwich.pack.PackStreamCopier._read:
  - 1501
  - 1502
  - 1503
  dulwich.pack.PackStreamCopier.verify:
  - 1507
  - 1513
  - 1514
  - 1515
  - 1516
  - 1517
  - 1518
  - 1519
  dulwich.pack.PackStreamReader:
  - 1315
  dulwich.pack.PackStreamReader.__init__:
  - 1327
  - 1335
  - 1339
  - 1341
  - 1343
  dulwich.pack.PackStreamReader.__len__:
  - 1412
  dulwich.pack.PackStreamReader._buf_len:
  - 1384
  - 1381
  - 1382
  - 1383
  dulwich.pack.PackStreamReader._read:
  - 1376
  - 1347
  - 1358
  - 1361
  - 1363
  - 1364
  - 1368
  - 1370
  - 1371
  - 1373
  dulwich.pack.PackStreamReader.offset:
  - 1389
  - 1390
  dulwich.pack.PackStreamReader.read:
  - 1393
  - 1394
  - 1395
  - 1396
  - 1397
  - 1398
  - 1399
  dulwich.pack.PackStreamReader.read_objects:
  - 1440
  - 1416
  - 1449
  - 1450
  - 1451
  - 1452
  - 1455
  - 1457
  - 1462
  - 1464
  - 1465
  - 1436
  - 1438
  dulwich.pack.PackStreamReader.recv:
  - 1409
  - 1402
  - 1403
  - 1404
  - 1405
  - 1406
  - 1407
  dulwich.pack.PackedObjectContainer:
  - 232
  dulwich.pack.PackedObjectContainer.get_unpacked_object:
  - 237
  dulwich.pack.PackedObjectContainer.iter_unpacked_subset:
  - 270
  dulwich.pack.PackedObjectContainer.iterobjects_subset:
  - 251
  dulwich.pack.SHA1Reader:
  - 2196
  dulwich.pack.SHA1Reader.__enter__:
  - 2309
  dulwich.pack.SHA1Reader.__exit__:
  - 2318
  - 2319
  dulwich.pack.SHA1Reader.__init__:
  - 2205
  - 2199
  dulwich.pack.SHA1Reader.__iter__:
  - 2322
  dulwich.pack.SHA1Reader.__next__:
  - 2335
  - 2326
  - 2334
  dulwich.pack.SHA1Reader.check_sha:
  - 2231
  - 2233
  - 2221
  - 2229
  dulwich.pack.SHA1Reader.close:
  - 2241
  - 2242
  dulwich.pack.SHA1Reader.fileno:
  - 2340
  - 2341
  dulwich.pack.SHA1Reader.flush:
  - 2274
  - 2275
  - 2276
  dulwich.pack.SHA1Reader.isatty:
  - 2344
  - 2345
  dulwich.pack.SHA1Reader.read:
  - 2208
  - 2217
  - 2216
  dulwich.pack.SHA1Reader.readable:
  - 2250
  dulwich.pack.SHA1Reader.readline:
  - 2287
  - 2279
  dulwich.pack.SHA1Reader.readlines:
  - 2290
  - 2298
  dulwich.pack.SHA1Reader.seek:
  - 2262
  - 2271
  dulwich.pack.SHA1Reader.seekable:
  - 2258
  - 2259
  dulwich.pack.SHA1Reader.tell:
  - 2245
  - 2246
  dulwich.pack.SHA1Reader.truncate:
  - 2348
  dulwich.pack.SHA1Reader.writable:
  - 2254
  dulwich.pack.SHA1Reader.write:
  - 2305
  dulwich.pack.SHA1Reader.writelines:
  - 2301
  dulwich.pack.SHA1Writer:
  - 2357
  dulwich.pack.SHA1Writer.__enter__:
  - 2477
  dulwich.pack.SHA1Writer.__exit__:
  - 2486
  - 2487
  dulwich.pack.SHA1Writer.__init__:
  - 2360
  - 2367
  dulwich.pack.SHA1Writer.__iter__:
  - 2490
  dulwich.pack.SHA1Writer.__next__:
  - 2494
  dulwich.pack.SHA1Writer.close:
  - 2397
  - 2398
  - 2399
  dulwich.pack.SHA1Writer.fileno:
  - 2502
  - 2503
  dulwich.pack.SHA1Writer.flush:
  - 2440
  - 2441
  - 2439
  dulwich.pack.SHA1Writer.isatty:
  - 2506
  - 2507
  dulwich.pack.SHA1Writer.offset:
  - 2402
  dulwich.pack.SHA1Writer.read:
  - 2469
  dulwich.pack.SHA1Writer.readable:
  - 2415
  dulwich.pack.SHA1Writer.readline:
  - 2444
  dulwich.pack.SHA1Writer.readlines:
  - 2452
  dulwich.pack.SHA1Writer.seek:
  - 2427
  - 2436
  dulwich.pack.SHA1Writer.seekable:
  - 2424
  - 2423
  dulwich.pack.SHA1Writer.tell:
  - 2410
  - 2411
  dulwich.pack.SHA1Writer.truncate:
  - 2510
  dulwich.pack.SHA1Writer.writable:
  - 2419
  dulwich.pack.SHA1Writer.write:
  - 2379
  - 2371
  - 2380
  dulwich.pack.SHA1Writer.write_sha:
  - 2385
  - 2390
  - 2391
  - 2392
  - 2393
  dulwich.pack.SHA1Writer.writelines:
  - 2465
  - 2466
  - 2460
  dulwich.pack.UnpackedObject:
  - 330
  dulwich.pack.UnpackedObject.__eq__:
  - 432
  - 434
  - 435
  - 431
  dulwich.pack.UnpackedObject.__init__:
  - 400
  - 377
  - 394
  - 395
  dulwich.pack.UnpackedObject.__ne__:
  - 440
  dulwich.pack.UnpackedObject.__repr__:
  - 444
  - 445
  - 446
  dulwich.pack.UnpackedObject._obj:
  - 424
  - 425
  - 423
  dulwich.pack.UnpackedObject.sha:
  - 409
  - 410
  - 412
  - 413
  dulwich.pack.UnpackedObject.sha_file:
  - 416
  - 418
  dulwich.pack.UnpackedObjectIterator:
  - 2148
  dulwich.pack.UnpackedObjectIterator._result:
  - 2151
  dulwich.pack.UnpackedObjectStream:
  - 285
  dulwich.pack.UnpackedObjectStream.__iter__:
  - 288
  dulwich.pack.UnpackedObjectStream.__len__:
  - 292
  dulwich.pack.UnresolvedDeltas:
  - 186
  dulwich.pack.UnresolvedDeltas.__init__:
  - 189
  dulwich.pack._compute_object_size:
  - 1307
  - 1309
  - 1310
  - 1311
  dulwich.pack._create_delta_py:
  - 3215
  - 3221
  - 3222
  - 3223
  - 3224
  - 3225
  - 3226
  - 3228
  - 3229
  - 3231
  - 3232
  - 3236
  - 3242
  - 3243
  - 3246
  - 3252
  - 3253
  - 3256
  - 3257
  dulwich.pack._create_delta_rs_wrapper:
  - 4056
  - 4055
  dulwich.pack._delta_encode_size:
  - 3184
  - 3192
  - 3188
  - 3191
  dulwich.pack._encode_copy_operation:
  - 3202
  - 3203
  - 3204
  - 3205
  - 3207
  - 3208
  - 3209
  - 3211
  dulwich.pack._load_file_contents:
  - 547
  - 555
  - 559
  - 560
  - 561
  - 562
  - 564
  - 570
  - 571
  dulwich.pack.apply_delta:
  - 3331
  - 3334
  - 3267
  - 3273
  - 3274
  - 3275
  - 3276
  - 3279
  - 3293
  - 3294
  - 3295
  - 3300
  - 3302
  - 3304
  - 3305
  - 3306
  - 3311
  - 3312
  - 3313
  - 3316
  - 3318
  - 3324
  - 3325
  - 3326
  dulwich.pack.apply_delta.get_delta_header_size:
  - 3289
  - 3285
  dulwich.pack.bisect_find_sha:
  - 616
  - 601
  - 613
  - 614
  dulwich.pack.chunks_length:
  - 1224
  - 1217
  - 1226
  - 1223
  dulwich.pack.compute_file_sha:
  - 1537
  - 1547
  - 1548
  - 1549
  - 1550
  - 1555
  - 1557
  - 1558
  - 1559
  dulwich.pack.deltas_from_sorted_objects:
  - 2817
  - 2822
  - 2823
  - 2824
  - 2779
  - 2790
  - 2793
  - 2794
  - 2795
  - 2796
  - 2797
  - 2799
  - 2801
  - 2802
  - 2806
  - 2807
  - 2808
  - 2810
  - 2815
  dulwich.pack.deltify_pack_objects:
  - 2736
  - 2718
  - 2735
  dulwich.pack.deltify_pack_objects.objects_with_hints:
  - 2729
  - 2730
  - 2731
  - 2733
  dulwich.pack.extend_pack:
  - 3993
  - 3999
  - 4000
  - 4002
  - 4003
  - 4004
  - 4007
  - 4010
  - 4013
  - 4018
  - 4019
  - 4020
  - 4021
  - 4023
  - 4024
  - 4025
  - 4026
  - 4033
  - 4034
  - 4035
  dulwich.pack.find_reusable_deltas:
  - 2693
  - 2694
  - 2696
  - 2697
  - 2701
  - 2702
  - 2703
  - 2704
  - 2705
  - 2706
  - 2708
  - 2709
  - 2682
  dulwich.pack.full_unpacked_object:
  - 2928
  - 2923
  - 2915
  - 2927
  dulwich.pack.generate_unpacked_objects:
  - 2884
  - 2888
  - 2889
  - 2890
  - 2891
  - 2893
  - 2894
  - 2895
  - 2899
  - 2900
  - 2901
  - 2903
  - 2904
  - 2910
  - 2911
  dulwich.pack.iter_sha1:
  - 521
  - 527
  - 528
  - 529
  - 530
  dulwich.pack.load_pack_index:
  - 540
  - 541
  - 534
  dulwich.pack.load_pack_index_file:
  - 578
  - 585
  - 586
  - 587
  - 588
  - 589
  - 590
  - 591
  - 595
  dulwich.pack.obj_sha:
  - 1523
  - 1524
  - 1525
  - 1526
  - 1527
  - 1529
  - 1530
  - 1531
  dulwich.pack.pack_header_chunks:
  - 2651
  - 2652
  - 2653
  - 2654
  dulwich.pack.pack_object_chunks:
  - 2566
  - 2567
  - 2575
  - 2577
  - 2579
  - 2580
  - 2585
  - 2586
  - 2587
  - 2588
  - 2589
  - 2558
  dulwich.pack.pack_object_header:
  - 2533
  - 2536
  - 2537
  - 2538
  - 2543
  - 2545
  - 2546
  - 2547
  - 2548
  - 2550
  - 2521
  dulwich.pack.pack_objects_to_data:
  - 2848
  - 2853
  - 2856
  - 2857
  - 2837
  - 2871
  - 2847
  dulwich.pack.pack_objects_to_data.iter_without_path:
  - 2865
  - 2866
  - 2867
  - 2869
  dulwich.pack.read_pack_header:
  - 1197
  - 1204
  - 1205
  - 1207
  - 1209
  - 1210
  - 1212
  dulwich.pack.read_zlib_chunks:
  - 515
  - 458
  - 481
  - 483
  - 491
  - 492
  - 494
  - 495
  - 496
  - 497
  - 499
  - 500
  - 501
  - 502
  - 503
  - 506
  - 507
  - 508
  - 511
  dulwich.pack.sort_objects_for_delta:
  - 2755
  - 2756
  - 2758
  - 2767
  - 2770
  - 2746
  dulwich.pack.take_msb_bytes:
  - 299
  - 309
  - 310
  - 311
  - 312
  - 313
  dulwich.pack.unpack_object:
  - 1280
  - 1285
  - 1286
  - 1287
  - 1288
  - 1259
  - 1261
  - 1294
  - 1297
  - 1266
  - 1236
  - 1269
  - 1273
  - 1274
  - 1275
  - 1276
  - 1277
  dulwich.pack.write_pack:
  - 2626
  - 2636
  - 2637
  - 2644
  - 2645
  - 2646
  dulwich.pack.write_pack_data:
  - 3138
  - 3144
  - 3145
  - 3146
  - 3148
  - 3149
  - 3128
  dulwich.pack.write_pack_from_container:
  - 2944
  - 2968
  - 2958
  - 2959
  dulwich.pack.write_pack_header:
  - 2660
  - 2662
  - 2664
  - 2671
  - 2672
  dulwich.pack.write_pack_index:
  - 3488
  - 3489
  - 3469
  - 3481
  - 3484
  - 3485
  - 3486
  - 3487
  dulwich.pack.write_pack_index_v1:
  - 3168
  - 3169
  - 3171
  - 3172
  - 3174
  - 3175
  - 3177
  - 3178
  - 3179
  - 3180
  - 3157
  - 3166
  - 3167
  dulwich.pack.write_pack_index_v2:
  - 3345
  - 3354
  - 3355
  - 3356
  - 3357
  - 3358
  - 3359
  - 3362
  - 3363
  - 3365
  - 3366
  - 3367
  - 3368
  - 3369
  - 3370
  - 3371
  - 3373
  - 3374
  - 3375
  - 3376
  - 3377
  - 3378
  - 3379
  dulwich.pack.write_pack_index_v3:
  - 3456
  - 3458
  - 3459
  - 3388
  - 3398
  - 3401
  - 3409
  - 3415
  - 3416
  - 3417
  - 3418
  - 3419
  - 3421
  - 3422
  - 3423
  - 3427
  - 3431
  - 3432
  - 3436
  - 3437
  - 3440
  - 3441
  - 3444
  - 3445
  - 3446
  - 3448
  - 3449
  - 3452
  - 3453
  - 3455
  dulwich.pack.write_pack_object:
  - 2599
  - 2610
  - 2611
  - 2612
  - 2613
  - 2614
  dulwich.pack.write_pack_objects:
  - 2984
  - 2995
  - 2997
  dulwich.patch:
  - 66
  - 22
  dulwich.patch.DiffAlgorithmNotAvailable:
  - 77
  dulwich.patch.DiffAlgorithmNotAvailable.__init__:
  - 80
  - 89
  - 88
  - 93
  dulwich.patch.MailinfoResult:
  - 792
  dulwich.patch._find_scissors_line:
  - 880
  - 866
  - 874
  - 879
  dulwich.patch._format_range_unified:
  - 185
  - 179
  - 183
  dulwich.patch._get_sequence_matcher:
  - 257
  - 267
  - 244
  - 261
  dulwich.patch._munge_subject:
  - 832
  - 837
  - 842
  - 845
  - 814
  - 851
  - 852
  - 824
  - 857
  - 860
  - 831
  dulwich.patch.commit_patch_id:
  - 772
  - 775
  - 777
  - 784
  - 785
  - 787
  - 760
  dulwich.patch.gen_diff_header:
  - 488
  - 490
  - 492
  - 493
  - 494
  - 496
  - 497
  - 498
  - 499
  - 500
  - 502
  - 503
  - 504
  - 505
  - 506
  - 478
  dulwich.patch.get_summary:
  - 174
  - 172
  - 173
  - 166
  dulwich.patch.git_am_patch_split:
  - 608
  - 609
  - 610
  - 611
  - 613
  - 614
  - 615
  - 599
  - 606
  dulwich.patch.is_binary:
  - 345
  dulwich.patch.mailinfo:
  - 916
  - 917
  - 918
  - 919
  - 920
  - 921
  - 923
  - 924
  - 931
  - 932
  - 935
  - 936
  - 940
  - 941
  - 947
  - 951
  - 952
  - 956
  - 959
  - 960
  - 964
  - 965
  - 968
  - 969
  - 971
  - 972
  - 973
  - 975
  - 978
  - 982
  - 983
  - 984
  - 994
  - 995
  - 997
  - 998
  - 1000
  - 1002
  - 1004
  - 1007
  - 1010
  - 1013
  - 1014
  - 1019
  - 1021
  - 894
  dulwich.patch.parse_patch_message:
  - 640
  - 643
  - 644
  - 645
  - 646
  - 647
  - 650
  - 651
  - 653
  - 654
  - 656
  - 657
  - 658
  - 665
  - 666
  - 670
  - 621
  - 628
  - 629
  - 631
  - 632
  - 634
  - 638
  dulwich.patch.patch_filename:
  - 369
  - 378
  dulwich.patch.patch_id:
  - 704
  - 737
  - 706
  - 739
  - 677
  - 741
  - 742
  - 745
  - 749
  - 750
  - 753
  - 754
  - 728
  - 730
  - 731
  - 733
  dulwich.patch.shortid:
  - 354
  - 362
  dulwich.patch.unified_diff:
  - 202
  - 207
  - 208
  - 212
  - 215
  - 220
  - 221
  - 222
  - 224
  - 225
  - 226
  - 227
  - 229
  - 230
  - 231
  - 233
  - 234
  - 235
  - 236
  - 238
  dulwich.patch.unified_diff_with_algorithm:
  - 283
  - 304
  - 307
  - 310
  - 311
  - 315
  - 318
  - 323
  - 324
  - 325
  - 327
  - 328
  - 329
  - 330
  - 332
  - 333
  - 334
  - 336
  - 337
  - 338
  - 339
  - 341
  dulwich.patch.write_blob_diff:
  - 545
  - 546
  - 516
  - 549
  - 552
  - 553
  - 554
  - 555
  - 528
  - 529
  dulwich.patch.write_blob_diff.lines:
  - 541
  - 532
  - 540
  dulwich.patch.write_commit_patch:
  - 129
  - 132
  - 133
  - 134
  - 136
  - 137
  - 139
  - 140
  - 144
  - 150
  - 151
  - 152
  - 153
  - 154
  - 155
  - 158
  - 160
  - 162
  - 106
  - 119
  - 120
  - 122
  - 123
  - 125
  dulwich.patch.write_object_diff:
  - 449
  - 450
  - 451
  - 392
  - 459
  - 461
  - 462
  - 463
  - 464
  - 407
  - 408
  - 446
  - 447
  dulwich.patch.write_object_diff.content:
  - 420
  - 421
  - 422
  - 423
  - 426
  - 430
  - 411
  dulwich.patch.write_object_diff.lines:
  - 433
  - 441
  - 444
  dulwich.patch.write_tree_diff:
  - 584
  - 585
  - 586
  - 573
  dulwich.porcelain:
  - 295
  - 489
  - 490
  - 492
  - 493
  - 302
  - 5870
  - 22
  - 410
  - 413
  dulwich.porcelain.CheckoutError:
  - 517
  dulwich.porcelain.CountObjectsResult:
  - 436
  dulwich.porcelain.DivergedBranches:
  - 720
  dulwich.porcelain.DivergedBranches.__init__:
  - 723
  dulwich.porcelain.Error:
  - 501
  dulwich.porcelain.Error.__init__:
  - 504
  - 505
  dulwich.porcelain.NoneStream:
  - 468
  - 454
  dulwich.porcelain.NoneStream.read:
  - 457
  dulwich.porcelain.NoneStream.readall:
  - 461
  dulwich.porcelain.NoneStream.write:
  - 476
  - 486
  dulwich.porcelain.RemoteExists:
  - 509
  dulwich.porcelain.TimezoneFormatError:
  - 513
  dulwich.porcelain.TransportKwargs:
  - 420
  dulwich.porcelain._canonical_part:
  - 2320
  - 2321
  dulwich.porcelain._check_uncommitted_changes:
  - 5250
  - 5282
  - 5284
  - 5285
  - 5286
  - 5289
  - 5260
  - 5264
  - 5265
  - 5269
  - 5272
  - 5273
  - 5274
  - 5275
  - 5277
  - 5279
  dulwich.porcelain._do_merge:
  - 6400
  - 6296
  - 6321
  - 6323
  - 6326
  - 6328
  - 6335
  - 6340
  - 6344
  - 6345
  - 6350
  - 6355
  - 6356
  - 6357
  - 6362
  - 6365
  - 6366
  - 6368
  - 6373
  - 6378
  - 6379
  - 6380
  - 6387
  - 6395
  - 6396
  - 6397
  dulwich.porcelain._do_octopus_merge:
  - 6528
  - 6529
  - 6532
  - 6417
  - 6442
  - 6446
  - 6448
  - 6451
  - 6455
  - 6458
  - 6462
  - 6463
  - 6469
  - 6471
  - 6478
  - 6479
  - 6480
  - 6485
  - 6488
  - 6489
  - 6491
  - 6496
  - 6501
  - 6506
  - 6507
  - 6508
  - 6515
  - 6523
  - 6526
  - 6527
  dulwich.porcelain._filter_transport_kwargs:
  - 1299
  - 1319
  dulwich.porcelain._get_branch_merge_status:
  - 4266
  - 4269
  - 4271
  - 4272
  - 4255
  dulwich.porcelain._get_current_head_tree:
  - 5228
  - 5239
  dulwich.porcelain._get_reflog_message:
  - 640
  - 623
  - 635
  - 638
  - 639
  dulwich.porcelain._get_variables:
  - 907
  - 908
  - 909
  - 820
  - 828
  - 829
  dulwich.porcelain._get_variables.get_author_ident:
  - 833
  - 835
  - 836
  - 837
  - 838
  dulwich.porcelain._get_variables.get_committer_ident:
  - 843
  - 845
  - 846
  - 847
  - 848
  dulwich.porcelain._get_variables.get_default_branch:
  - 889
  - 890
  - 887
  dulwich.porcelain._get_variables.get_editor:
  - 853
  - 854
  - 855
  - 857
  - 858
  - 860
  dulwich.porcelain._get_variables.get_pager:
  - 876
  - 877
  - 878
  - 880
  - 881
  - 883
  dulwich.porcelain._get_variables.get_sequence_editor:
  - 864
  - 865
  - 866
  - 868
  - 869
  - 872
  dulwich.porcelain._get_worktree_update_config:
  - 5316
  - 5317
  - 5319
  - 5321
  - 5326
  - 5308
  dulwich.porcelain._get_worktree_update_config.symlink_fallback:
  - 5341
  - 5342
  - 5343
  dulwich.porcelain._get_worktree_update_config.symlink_wrapper:
  - 5332
  dulwich.porcelain._is_subdir:
  - 1586
  - 1587
  - 1588
  - 1581
  dulwich.porcelain._make_branch_ref:
  - 3989
  - 3990
  - 3991
  dulwich.porcelain._make_notes_ref:
  - 2717
  - 2718
  dulwich.porcelain._make_replace_ref:
  - 4001
  - 4002
  - 4003
  dulwich.porcelain._make_tag_ref:
  - 3995
  - 3996
  - 3997
  dulwich.porcelain._noop_context_manager:
  - 616
  - 617
  dulwich.porcelain._perform_tree_switch:
  - 5356
  - 5364
  - 5369
  - 5372
  - 5375
  dulwich.porcelain._quote_path:
  - 5152
  - 5153
  - 5155
  - 5157
  - 5129
  - 5139
  - 5140
  - 5144
  - 5149
  - 5150
  dulwich.porcelain._walk_working_dir_paths:
  - 3552
  - 3522
  - 3532
  - 3534
  - 3535
  - 3536
  - 3539
  - 3540
  - 3541
  - 3544
  - 3545
  - 3547
  - 3548
  - 3549
  - 3551
  dulwich.porcelain.active_branch:
  - 4329
  - 4339
  - 4340
  - 4341
  - 4343
  dulwich.porcelain.add:
  - 1538
  - 1540
  - 1541
  - 1543
  - 1544
  - 1546
  - 1549
  - 1550
  - 1551
  - 1558
  - 1560
  - 1561
  - 1563
  - 1570
  - 1571
  - 1573
  - 1574
  - 1452
  - 1467
  - 1468
  - 1469
  - 1470
  - 1473
  - 1474
  - 1475
  - 1481
  - 1482
  - 1484
  - 1485
  - 1488
  - 1490
  - 1492
  - 1494
  - 1496
  - 1497
  - 1498
  - 1499
  - 1505
  - 1507
  - 1511
  - 1514
  - 1517
  - 1523
  - 1525
  - 1526
  - 1527
  - 1531
  - 1532
  - 1533
  - 1534
  dulwich.porcelain.annotate:
  - 7500
  - 7507
  - 7511
  - 7512
  - 7514
  - 7515
  - 7516
  dulwich.porcelain.archive:
  - 750
  - 758
  - 760
  - 761
  - 763
  - 764
  - 765
  dulwich.porcelain.bisect_bad:
  - 7845
  - 7854
  - 7855
  - 7856
  - 7857
  - 7859
  - 7861
  - 7862
  - 7863
  - 7866
  - 7867
  - 7868
  dulwich.porcelain.bisect_good:
  - 7877
  - 7886
  - 7887
  - 7888
  - 7889
  - 7891
  - 7893
  - 7894
  - 7895
  - 7898
  - 7899
  - 7900
  dulwich.porcelain.bisect_log:
  - 7997
  - 7989
  - 7998
  - 7999
  dulwich.porcelain.bisect_replay:
  - 8006
  - 8012
  - 8013
  - 8015
  - 8016
  - 8017
  - 8019
  - 8020
  - 8022
  dulwich.porcelain.bisect_reset:
  - 7970
  - 7971
  - 7975
  - 7976
  - 7978
  - 7979
  - 7980
  - 7954
  - 7960
  - 7961
  - 7964
  - 7965
  dulwich.porcelain.bisect_skip:
  - 7936
  - 7938
  - 7939
  - 7940
  - 7943
  - 7944
  - 7945
  - 7914
  - 7923
  - 7924
  - 7926
  - 7930
  - 7932
  - 7934
  dulwich.porcelain.bisect_start:
  - 7811
  - 7812
  - 7815
  - 7819
  - 7820
  - 7822
  - 7825
  - 7826
  - 7827
  - 7829
  - 7830
  - 7831
  - 7800
  - 7834
  - 7835
  - 7836
  dulwich.porcelain.branch_create:
  - 4098
  - 4102
  - 4106
  - 4107
  - 4108
  - 4110
  - 4113
  - 4115
  - 4117
  - 4120
  - 4123
  - 4028
  - 4036
  - 4037
  - 4043
  - 4044
  - 4048
  - 4050
  - 4051
  - 4053
  - 4054
  - 4056
  - 4057
  - 4060
  - 4061
  - 4062
  - 4064
  - 4065
  - 4069
  - 4071
  - 4077
  - 4080
  - 4081
  - 4085
  - 4087
  - 4089
  - 4090
  - 4093
  - 4094
  dulwich.porcelain.branch_delete:
  - 4007
  - 4013
  - 4014
  - 4018
  - 4019
  dulwich.porcelain.branch_list:
  - 4193
  - 4162
  - 4167
  - 4169
  - 4170
  - 4142
  - 4149
  - 4150
  - 4153
  - 4186
  - 4155
  - 4188
  - 4190
  dulwich.porcelain.branch_list.<lambda1>:
  - 4188
  dulwich.porcelain.branch_list.<lambda2>:
  - 4190
  dulwich.porcelain.branch_list.get_commit_date:
  - 4173
  - 4176
  - 4177
  - 4178
  - 4180
  dulwich.porcelain.branch_remotes_list:
  - 4225
  - 4226
  - 4199
  - 4206
  - 4207
  - 4209
  - 4242
  - 4211
  - 4244
  - 4246
  - 4218
  - 4223
  dulwich.porcelain.branch_remotes_list.<lambda1>:
  - 4244
  dulwich.porcelain.branch_remotes_list.<lambda2>:
  - 4246
  dulwich.porcelain.branch_remotes_list.get_commit_date:
  - 4230
  - 4232
  - 4233
  - 4234
  - 4236
  dulwich.porcelain.branches_containing:
  - 4321
  - 4322
  - 4324
  - 4325
  - 4304
  - 4317
  - 4318
  dulwich.porcelain.check_diverged:
  - 729
  - 740
  - 737
  dulwich.porcelain.check_ignore:
  - 5171
  - 5182
  - 5183
  - 5184
  - 5185
  - 5187
  - 5189
  - 5191
  - 5195
  - 5197
  - 5198
  - 5200
  - 5201
  - 5206
  - 5211
  - 5212
  - 5215
  - 5218
  - 5220
  - 5224
  dulwich.porcelain.check_mailmap:
  - 6051
  - 6053
  - 6028
  - 6035
  - 6039
  - 6041
  - 6043
  - 6045
  - 6046
  dulwich.porcelain.checkout:
  - 5505
  - 5506
  - 5509
  - 5512
  - 5513
  - 5516
  - 5521
  - 5524
  - 5525
  - 5526
  - 5532
  - 5533
  - 5539
  - 5543
  - 5546
  - 5547
  - 5550
  - 5553
  - 5555
  - 5556
  - 5429
  - 5559
  - 5563
  - 5565
  - 5566
  - 5574
  - 5575
  - 5448
  - 5576
  - 5578
  - 5452
  - 5455
  - 5584
  - 5583
  - 5458
  - 5459
  - 5460
  - 5587
  - 5462
  - 5590
  - 5592
  - 5465
  - 5595
  - 5471
  - 5472
  - 5475
  - 5478
  - 5481
  - 5484
  - 5488
  - 5495
  - 5496
  - 5499
  - 5500
  - 5503
  dulwich.porcelain.checkout_branch:
  - 5876
  - 5887
  dulwich.porcelain.cherry:
  - 6785
  - 6787
  - 6789
  - 6792
  - 6794
  - 6796
  - 6801
  - 6803
  - 6806
  - 6808
  - 6814
  - 6815
  - 6817
  - 6691
  - 6707
  - 6709
  - 6712
  - 6713
  - 6715
  - 6716
  - 6717
  - 6720
  - 6724
  - 6726
  - 6732
  - 6734
  - 6738
  - 6740
  - 6744
  - 6747
  - 6753
  - 6757
  - 6758
  - 6759
  - 6760
  - 6761
  - 6762
  - 6773
  - 6780
  - 6782
  dulwich.porcelain.cherry_pick:
  - 6927
  - 6934
  - 6935
  - 6940
  - 6943
  - 6944
  - 6949
  - 6953
  - 6829
  - 6957
  - 6958
  - 6959
  - 6967
  - 6969
  - 6970
  - 6973
  - 6974
  - 6847
  - 6850
  - 6852
  - 6981
  - 6855
  - 6985
  - 6859
  - 6864
  - 6865
  - 6869
  - 6871
  - 6873
  - 6874
  - 6880
  - 6884
  - 6887
  - 6889
  - 6890
  - 6892
  - 6895
  - 6896
  - 6906
  - 6910
  dulwich.porcelain.clean:
  - 1596
  - 1604
  - 1605
  - 1607
  - 1608
  - 1611
  - 1612
  - 1617
  - 1618
  - 1620
  - 1623
  - 1625
  - 1626
  - 1629
  - 1630
  - 1631
  - 1633
  - 1636
  - 1637
  - 1639
  - 1640
  dulwich.porcelain.clone:
  - 1408
  - 1409
  - 1411
  - 1413
  - 1418
  - 1419
  - 1426
  - 1428
  - 1429
  - 1432
  - 1435
  - 1436
  - 1437
  - 1438
  - 1338
  - 1363
  - 1366
  - 1373
  - 1374
  - 1376
  - 1378
  - 1381
  - 1382
  - 1384
  - 1385
  - 1387
  - 1389
  - 1390
  - 1392
  - 1394
  - 1398
  - 1401
  - 1402
  - 1403
  dulwich.porcelain.clone.<lambda1>:
  - 1419
  dulwich.porcelain.commit:
  - 1025
  - 1026
  - 1029
  - 1032
  - 1033
  - 1034
  - 1036
  - 1038
  - 1041
  - 1042
  - 1063
  - 1067
  - 1069
  - 1071
  - 1074
  - 961
  - 980
  - 981
  - 982
  - 983
  - 984
  - 985
  - 986
  - 987
  - 988
  - 990
  - 993
  - 996
  - 998
  - 999
  - 1004
  - 1007
  - 1009
  - 1012
  - 1015
  - 1016
  - 1017
  - 1020
  dulwich.porcelain.commit_decode:
  - 1824
  - 1827
  - 1822
  - 1823
  dulwich.porcelain.commit_encode:
  - 1833
  - 1834
  - 1835
  - 1838
  dulwich.porcelain.commit_tree:
  - 1095
  - 1104
  - 1105
  - 1106
  - 1107
  dulwich.porcelain.cone_mode_add:
  - 6017
  - 6018
  - 6021
  - 6022
  - 6023
  - 6024
  - 5998
  - 6012
  - 6013
  dulwich.porcelain.cone_mode_init:
  - 5948
  - 5965
  - 5967
  - 5964
  dulwich.porcelain.cone_mode_set:
  - 5987
  - 5988
  - 5989
  - 5990
  - 5992
  - 5973
  dulwich.porcelain.count_objects:
  - 7264
  - 7300
  - 7301
  - 7304
  - 7273
  - 7308
  - 7309
  - 7279
  - 7313
  - 7283
  - 7284
  - 7286
  - 7319
  - 7289
  - 7290
  - 7323
  dulwich.porcelain.daemon:
  - 3886
  - 3876
  - 3885
  - 3884
  dulwich.porcelain.describe:
  - 6163
  - 6172
  - 6174
  - 6176
  - 6178
  - 6179
  - 6180
  - 6181
  - 6184
  - 6186
  - 6188
  - 6193
  - 6199
  - 6200
  - 6205
  - 6206
  - 6210
  - 6213
  - 6214
  - 6215
  - 6216
  - 6222
  - 6223
  - 6225
  - 6226
  - 6229
  - 6230
  - 6233
  - 6234
  - 6236
  - 6244
  - 6245
  - 6246
  dulwich.porcelain.diff:
  - 2200
  - 2220
  - 2223
  - 2225
  - 2226
  - 2227
  - 2229
  - 2230
  - 2236
  - 2237
  - 2243
  - 2249
  - 2251
  - 2254
  - 2261
  - 2262
  - 2264
  - 2267
  - 2268
  - 2273
  - 2280
  - 2282
  - 2285
  - 2290
  - 2295
  dulwich.porcelain.diff_tree:
  - 2176
  - 2177
  - 2179
  - 2181
  - 2183
  - 2184
  - 2186
  - 2188
  - 2165
  - 2173
  - 2174
  dulwich.porcelain.fetch:
  - 4484
  - 4485
  - 4455
  - 4456
  - 4457
  - 4458
  - 4459
  - 4429
  - 4461
  - 4497
  - 4498
  - 4476
  - 4477
  dulwich.porcelain.fetch.progress:
  - 4474
  dulwich.porcelain.filter_branch:
  - 7617
  - 7586
  - 7587
  - 7590
  - 7591
  - 7594
  - 7612
  - 7541
  - 7605
  - 7606
  - 7641
  - 7610
  - 7611
  - 7580
  - 7582
  - 7583
  dulwich.porcelain.filter_branches_by_pattern:
  - 4137
  - 4127
  dulwich.porcelain.find_unique_abbrev:
  - 6147
  - 6148
  - 6150
  - 6154
  - 6126
  - 6136
  - 6137
  - 6142
  dulwich.porcelain.for_each_ref:
  - 4545
  - 4514
  - 4515
  - 4546
  - 4517
  - 4518
  - 4547
  - 4520
  - 4548
  - 4522
  - 4523
  - 4530
  - 4531
  - 4539
  - 4534
  - 4535
  - 4536
  - 4507
  dulwich.porcelain.format_patch:
  - 7684
  - 7688
  - 7691
  - 7692
  - 7693
  - 7694
  - 7696
  - 7700
  - 7706
  - 7708
  - 7711
  - 7712
  - 7713
  - 7714
  - 7718
  - 7719
  - 7722
  - 7723
  - 7724
  - 7726
  - 7729
  - 7736
  - 7737
  - 7738
  - 7746
  - 7754
  - 7756
  - 7761
  - 7764
  - 7770
  - 7771
  - 7773
  - 7774
  - 7777
  - 7781
  - 7663
  - 7679
  dulwich.porcelain.fsck:
  - 6059
  - 6065
  - 6069
  - 6072
  - 6074
  dulwich.porcelain.gc:
  - 7173
  - 7156
  - 7172
  dulwich.porcelain.get_branch_merge:
  - 4367
  - 4379
  - 4380
  - 4381
  - 4382
  - 4383
  dulwich.porcelain.get_branch_remote:
  - 4356
  - 4357
  - 4358
  - 4360
  - 4347
  dulwich.porcelain.get_object_by_path:
  - 6272
  - 6254
  - 6262
  - 6265
  - 6266
  - 6268
  - 6269
  - 6270
  dulwich.porcelain.get_remote_repo:
  - 3076
  - 3077
  - 3078
  - 3082
  - 3054
  - 3064
  - 3065
  - 3066
  - 3067
  - 3068
  dulwich.porcelain.get_tree_changes:
  - 3851
  - 3863
  - 3856
  - 3857
  - 3859
  - 3860
  - 3830
  - 3862
  - 3865
  - 3837
  - 3838
  - 3839
  dulwich.porcelain.get_untracked_paths:
  - 3585
  - 3586
  - 3588
  - 3589
  - 3659
  - 3660
  - 3664
  - 3665
  - 3666
  - 3667
  - 3668
  - 3669
  - 3671
  - 3674
  - 3678
  - 3680
  - 3682
  - 3684
  - 3685
  - 3686
  - 3687
  - 3689
  - 3562
  - 3692
  - 3693
  - 3694
  - 3695
  - 3697
  - 3700
  - 3702
  - 3578
  - 3581
  dulwich.porcelain.get_untracked_paths.directory_has_non_ignored_files:
  - 3596
  - 3598
  - 3599
  - 3600
  - 3602
  - 3603
  - 3605
  - 3606
  dulwich.porcelain.get_untracked_paths.prune_dirnames:
  - 3614
  - 3615
  - 3616
  - 3619
  - 3620
  - 3621
  - 3622
  - 3628
  - 3630
  - 3634
  - 3636
  - 3638
  - 3639
  - 3640
  - 3644
  - 3645
  - 3651
  - 3652
  - 3653
  dulwich.porcelain.get_user_timezones:
  - 576
  - 581
  - 583
  - 584
  - 587
  - 588
  dulwich.porcelain.grep:
  - 3717
  - 3735
  - 3736
  - 3738
  - 3742
  - 3744
  - 3747
  - 3751
  - 3752
  - 3753
  - 3758
  - 3762
  - 3763
  - 3767
  - 3769
  - 3773
  - 3780
  - 3784
  - 3785
  - 3786
  - 3790
  - 3792
  - 3794
  - 3795
  - 3796
  - 3800
  - 3804
  - 3805
  - 3806
  - 3811
  - 3815
  - 3817
  - 3818
  - 3819
  - 3820
  - 3821
  - 3822
  - 3824
  dulwich.porcelain.independent_commits:
  - 9122
  - 9134
  - 9137
  - 9140
  - 9141
  - 9142
  - 9144
  - 9147
  dulwich.porcelain.init:
  - 1281
  - 1289
  - 1290
  - 1292
  - 1293
  - 1295
  dulwich.porcelain.interpret_trailers:
  - 1185
  - 1188
  - 1189
  - 1126
  - 1192
  - 1193
  - 1194
  - 1167
  - 1204
  - 1173
  - 1174
  - 1205
  - 1208
  - 1209
  - 1179
  - 1182
  - 1183
  dulwich.porcelain.is_ancestor:
  - 9099
  - 9102
  - 9104
  - 9105
  - 9107
  - 9108
  - 9114
  - 9086
  dulwich.porcelain.is_interactive_rebase:
  - 7333
  - 7341
  - 7342
  - 7343
  - 7347
  dulwich.porcelain.lfs_clean:
  - 8354
  - 8329
  - 8340
  - 8341
  - 8345
  - 8346
  - 8349
  - 8350
  - 8351
  dulwich.porcelain.lfs_fetch:
  - 8582
  - 8594
  - 8596
  - 8597
  - 8598
  - 8600
  - 8601
  - 8603
  - 8604
  - 8610
  - 8617
  - 8618
  - 8623
  - 8625
  - 8627
  - 8628
  - 8629
  - 8630
  - 8631
  - 8640
  - 8641
  - 8648
  - 8649
  - 8650
  - 8653
  - 8656
  - 8660
  - 8661
  - 8662
  dulwich.porcelain.lfs_init:
  - 8320
  - 8321
  - 8322
  - 8302
  - 8312
  - 8314
  - 8317
  - 8318
  - 8319
  dulwich.porcelain.lfs_ls_files:
  - 8418
  - 8388
  - 8422
  - 8427
  - 8429
  - 8430
  - 8431
  - 8400
  - 8401
  - 8403
  - 8404
  - 8409
  - 8411
  dulwich.porcelain.lfs_migrate:
  - 8455
  - 8457
  - 8458
  - 8461
  - 8468
  - 8470
  - 8471
  - 8472
  - 8473
  - 8474
  - 8475
  - 8478
  - 8479
  - 8482
  - 8483
  - 8484
  - 8486
  - 8490
  - 8491
  - 8492
  - 8494
  - 8497
  - 8500
  - 8501
  - 8502
  - 8506
  - 8507
  - 8510
  - 8513
  - 8514
  - 8517
  - 8519
  - 8521
  - 8522
  - 8523
  - 8529
  - 8532
  - 8533
  - 8442
  dulwich.porcelain.lfs_pointer_check:
  - 8553
  - 8556
  - 8558
  - 8559
  - 8561
  - 8562
  - 8563
  - 8565
  - 8566
  - 8567
  - 8542
  dulwich.porcelain.lfs_pull:
  - 8701
  - 8680
  - 8682
  - 8685
  - 8686
  - 8688
  - 8689
  - 8690
  - 8691
  - 8692
  - 8694
  - 8695
  - 8698
  - 8699
  - 8700
  - 8669
  dulwich.porcelain.lfs_push:
  - 8714
  - 8726
  - 8728
  - 8729
  - 8730
  - 8732
  - 8733
  - 8735
  - 8736
  - 8742
  - 8749
  - 8750
  - 8753
  - 8755
  - 8758
  - 8760
  - 8761
  - 8762
  - 8766
  - 8767
  - 8774
  - 8775
  - 8782
  - 8783
  - 8784
  - 8785
  - 8789
  - 8791
  - 8792
  - 8795
  - 8797
  dulwich.porcelain.lfs_smudge:
  - 8361
  - 8372
  - 8373
  - 8377
  - 8378
  - 8381
  dulwich.porcelain.lfs_status:
  - 8832
  - 8833
  - 8835
  - 8836
  - 8837
  - 8841
  - 8844
  - 8847
  - 8854
  - 8858
  - 8859
  - 8860
  - 8804
  - 8814
  - 8815
  - 8816
  - 8827
  - 8828
  - 8829
  - 8831
  dulwich.porcelain.lfs_track:
  - 8203
  - 8215
  - 8216
  - 8219
  - 8220
  - 8222
  - 8224
  - 8227
  - 8228
  - 8229
  - 8233
  - 8235
  - 8238
  - 8239
  - 8240
  - 8241
  - 8244
  - 8247
  - 8249
  dulwich.porcelain.lfs_untrack:
  - 8256
  - 8289
  - 8293
  - 8296
  - 8298
  - 8267
  - 8268
  - 8270
  - 8271
  - 8273
  - 8277
  - 8280
  - 8281
  - 8284
  - 8285
  - 8287
  dulwich.porcelain.log:
  - 2112
  - 2082
  - 2115
  - 2116
  - 2092
  - 2094
  - 2099
  - 2100
  - 2102
  - 2105
  - 2110
  - 2111
  dulwich.porcelain.log.decode_wrapper:
  - 2108
  dulwich.porcelain.ls_files:
  - 6120
  - 6118
  - 6119
  dulwich.porcelain.ls_remote:
  - 4967
  - 4968
  - 4969
  - 4970
  - 4950
  - 4983
  - 4984
  dulwich.porcelain.ls_tree:
  - 5049
  - 5082
  - 5083
  - 5084
  dulwich.porcelain.ls_tree.list_tree:
  - 5061
  - 5062
  - 5066
  - 5067
  - 5068
  - 5069
  - 5070
  - 5072
  - 5074
  - 5075
  - 5076
  - 5078
  - 5079
  - 5080
  dulwich.porcelain.mailinfo:
  - 9284
  - 9286
  - 9288
  - 9289
  - 9290
  - 9291
  - 9294
  - 9263
  - 9296
  - 9298
  - 9235
  - 9268
  - 9269
  - 9299
  - 9272
  - 9274
  dulwich.porcelain.mailsplit:
  - 9184
  - 9188
  - 9159
  - 9191
  - 9193
  - 9201
  - 9213
  - 9206
  - 9207
  - 9210
  - 9181
  - 9182
  - 9215
  dulwich.porcelain.maintenance_register:
  - 7234
  - 7244
  - 7245
  dulwich.porcelain.maintenance_run:
  - 7229
  - 7230
  - 7215
  dulwich.porcelain.maintenance_unregister:
  - 7249
  - 7259
  - 7260
  dulwich.porcelain.merge:
  - 6594
  - 6596
  - 6568
  - 6570
  - 6602
  - 6573
  - 6575
  - 6609
  - 6549
  - 6581
  - 6583
  - 6588
  dulwich.porcelain.merge_base:
  - 9057
  - 9060
  - 9063
  - 9064
  - 9065
  - 9067
  - 9070
  - 9071
  - 9073
  - 9043
  - 9076
  dulwich.porcelain.merge_tree:
  - 6666
  - 6668
  - 6669
  - 6670
  - 6673
  - 6674
  - 6675
  - 6676
  - 6645
  - 6679
  dulwich.porcelain.merged_branches:
  - 4284
  - 4276
  - 4285
  - 4286
  dulwich.porcelain.mv:
  - 1797
  - 1798
  - 1801
  - 1802
  - 1803
  - 1806
  - 1807
  - 1808
  - 1813
  - 1723
  - 1734
  - 1735
  - 1738
  - 1739
  - 1740
  - 1741
  - 1743
  - 1745
  - 1746
  - 1747
  - 1748
  - 1750
  - 1753
  - 1757
  - 1759
  - 1763
  - 1766
  - 1768
  - 1769
  - 1772
  - 1773
  - 1776
  - 1780
  - 1784
  - 1788
  dulwich.porcelain.no_merged_branches:
  - 4298
  - 4290
  - 4299
  - 4300
  dulwich.porcelain.notes_add:
  - 2752
  - 2753
  - 2754
  - 2756
  - 2757
  - 2759
  - 2732
  - 2746
  - 2748
  - 2751
  dulwich.porcelain.notes_list:
  - 2849
  - 2850
  - 2851
  - 2853
  - 2854
  - 2856
  - 2840
  dulwich.porcelain.notes_remove:
  - 2791
  - 2793
  - 2796
  - 2797
  - 2799
  - 2800
  - 2802
  - 2778
  dulwich.porcelain.notes_show:
  - 2825
  - 2827
  - 2830
  - 2831
  - 2833
  - 2834
  - 2836
  - 2815
  dulwich.porcelain.open_repo:
  - 608
  - 609
  - 610
  - 611
  - 596
  - 602
  dulwich.porcelain.open_repo_closing:
  - 646
  - 652
  - 658
  - 663
  - 664
  - 665
  dulwich.porcelain.pack_objects:
  - 5028
  - 5029
  - 5037
  - 5038
  - 5039
  - 5015
  dulwich.porcelain.pack_refs:
  - 816
  - 814
  - 815
  dulwich.porcelain.parse_timezone_format:
  - 549
  - 550
  - 521
  - 557
  - 560
  - 562
  - 563
  - 564
  - 565
  - 566
  - 538
  - 539
  - 541
  dulwich.porcelain.path_to_tree_path:
  - 673
  - 683
  - 684
  - 687
  - 688
  - 689
  - 690
  - 695
  - 696
  - 699
  - 700
  - 701
  - 704
  - 708
  - 709
  - 710
  - 713
  - 714
  - 716
  dulwich.porcelain.print_commit:
  - 1856
  - 1858
  - 1861
  - 1862
  - 1863
  - 1865
  - 1866
  - 1867
  - 1868
  - 1869
  - 1870
  - 1871
  - 1872
  - 1846
  - 1853
  - 1854
  - 1855
  dulwich.porcelain.print_name_status:
  - 2050
  - 2057
  - 2026
  - 2027
  - 2028
  - 2059
  - 2030
  - 2063
  - 2032
  - 2062
  - 2067
  - 2068
  - 2038
  - 2071
  - 2044
  dulwich.porcelain.print_tag:
  - 1888
  - 1889
  - 1890
  - 1891
  - 1892
  - 1878
  - 1885
  - 1886
  - 1887
  dulwich.porcelain.prune:
  - 7202
  - 7203
  - 7204
  - 7205
  - 7206
  - 7190
  dulwich.porcelain.pull:
  - 3328
  - 3329
  - 3341
  - 3347
  - 3348
  - 3351
  - 3355
  - 3357
  - 3364
  - 3365
  - 3372
  - 3374
  - 3375
  - 3378
  - 3380
  - 3382
  - 3256
  - 3387
  - 3389
  - 3391
  - 3392
  - 3393
  - 3401
  - 3402
  - 3278
  - 3279
  - 3407
  - 3408
  - 3283
  - 3285
  - 3286
  - 3287
  - 3291
  - 3292
  - 3293
  - 3295
  - 3314
  - 3315
  - 3317
  - 3320
  - 3321
  dulwich.porcelain.pull.determine_wants:
  - 3300
  - 3301
  - 3302
  dulwich.porcelain.pull.progress:
  - 3326
  dulwich.porcelain.push:
  - 3204
  - 3205
  - 3208
  - 3215
  - 3216
  - 3219
  - 3220
  - 3221
  - 3094
  - 3222
  - 3227
  - 3228
  - 3231
  - 3232
  - 3106
  - 3107
  - 3110
  - 3239
  - 3112
  - 3113
  - 3240
  - 3115
  - 3120
  - 3123
  - 3125
  - 3126
  - 3127
  - 3130
  - 3131
  - 3132
  - 3136
  - 3137
  - 3138
  - 3140
  - 3143
  - 3144
  - 3146
  - 3187
  - 3188
  dulwich.porcelain.push.<lambda1>:
  - 3208
  dulwich.porcelain.push.generate_pack_data_wrapper:
  - 3200
  - 3201
  dulwich.porcelain.push.update_refs:
  - 3168
  - 3169
  - 3181
  - 3182
  - 3154
  - 3155
  - 3156
  - 3161
  - 3162
  - 3163
  - 3164
  dulwich.porcelain.rebase:
  - 7425
  - 7426
  - 7427
  - 7428
  - 7430
  - 7434
  - 7435
  - 7438
  - 7447
  - 7448
  - 7449
  - 7450
  - 7451
  - 7452
  - 7455
  - 7457
  - 7460
  - 7464
  - 7467
  - 7469
  - 7470
  - 7471
  - 7472
  - 7474
  - 7478
  - 7481
  - 7482
  - 7362
  - 7394
  - 7395
  - 7397
  - 7399
  - 7404
  - 7407
  - 7408
  - 7413
  - 7415
  - 7417
  - 7420
  - 7423
  dulwich.porcelain.receive_pack:
  - 3968
  - 3974
  - 3975
  - 3981
  - 3982
  - 3984
  - 3959
  - 3966
  dulwich.porcelain.receive_pack.send_fn:
  - 3978
  - 3979
  dulwich.porcelain.reflog:
  - 8043
  - 8044
  - 8046
  - 8047
  - 8048
  - 8050
  - 8052
  - 8054
  - 8055
  - 8028
  dulwich.porcelain.reflog_delete:
  - 8192
  - 8195
  - 8196
  - 8175
  - 8187
  - 8188
  - 8190
  - 8191
  dulwich.porcelain.reflog_expire:
  - 8066
  - 8084
  - 8087
  - 8088
  - 8091
  - 8093
  - 8099
  - 8102
  - 8103
  - 8104
  - 8111
  - 8114
  - 8119
  - 8120
  - 8121
  - 8132
  - 8134
  - 8138
  - 8139
  - 8142
  - 8143
  - 8145
  - 8148
  - 8151
  - 8157
  - 8158
  dulwich.porcelain.reflog_expire.is_reachable:
  - 8126
  dulwich.porcelain.remote_add:
  - 5092
  - 5099
  - 5100
  - 5101
  - 5102
  - 5103
  - 5104
  - 5106
  - 5108
  - 5109
  dulwich.porcelain.remote_remove:
  - 5120
  - 5121
  - 5122
  - 5125
  - 5113
  - 5119
  dulwich.porcelain.remove:
  - 1666
  - 1667
  - 1669
  - 1672
  - 1678
  - 1680
  - 1685
  - 1687
  - 1688
  - 1693
  - 1694
  - 1695
  - 1701
  - 1707
  - 1709
  - 1711
  - 1648
  - 1655
  - 1656
  - 1657
  - 1659
  - 1661
  - 1662
  dulwich.porcelain.repack:
  - 4997
  - 4998
  - 4999
  - 5001
  - 5002
  - 4989
  dulwich.porcelain.replace_create:
  - 2913
  - 2915
  - 2916
  - 2920
  - 2921
  - 2926
  - 2906
  dulwich.porcelain.replace_delete:
  - 2880
  - 2886
  - 2888
  - 2889
  - 2893
  - 2894
  dulwich.porcelain.replace_list:
  - 2860
  - 2869
  - 2871
  - 2872
  - 2873
  - 2875
  dulwich.porcelain.rerere:
  - 9337
  - 9346
  - 9321
  - 9323
  - 9326
  - 9327
  - 9328
  - 9332
  - 9334
  - 9335
  - 9305
  - 9338
  - 9339
  - 9340
  dulwich.porcelain.rerere_clear:
  - 9426
  - 9419
  - 9428
  - 9427
  dulwich.porcelain.rerere_diff:
  - 9379
  - 9380
  - 9382
  - 9383
  - 9384
  - 9390
  - 9391
  - 9392
  - 9393
  - 9368
  dulwich.porcelain.rerere_forget:
  - 9409
  - 9415
  - 9398
  - 9406
  - 9407
  dulwich.porcelain.rerere_gc:
  - 9432
  - 9441
  - 9440
  - 9442
  dulwich.porcelain.rerere_status:
  - 9360
  - 9361
  - 9362
  - 9350
  dulwich.porcelain.reset:
  - 2944
  - 2946
  - 2950
  - 2953
  - 2962
  - 2963
  - 2964
  - 2965
  - 2966
  - 2968
  - 2969
  - 2972
  - 2976
  - 2980
  - 2985
  - 2988
  - 2991
  - 2999
  - 3014
  - 3016
  - 3019
  - 3020
  - 3021
  - 3028
  - 3031
  - 3032
  - 3035
  - 2935
  - 2942
  dulwich.porcelain.reset_file:
  - 5859
  - 5860
  - 5862
  - 5863
  - 5865
  - 5867
  - 5851
  dulwich.porcelain.restore:
  - 5637
  - 5641
  - 5642
  - 5643
  - 5644
  - 5650
  - 5655
  - 5657
  - 5661
  - 5672
  - 5675
  - 5676
  - 5677
  - 5683
  - 5687
  - 5694
  - 5696
  - 5698
  - 5700
  - 5704
  - 5709
  - 5711
  - 5726
  - 5727
  - 5730
  - 5605
  - 5623
  - 5626
  - 5630
  - 5631
  dulwich.porcelain.rev_list:
  - 2305
  - 2312
  - 2313
  - 2314
  - 2316
  dulwich.porcelain.revert:
  - 7046
  - 7050
  - 7054
  - 7060
  - 7066
  - 7072
  - 7074
  - 7075
  - 7082
  - 7084
  - 7085
  - 7088
  - 7092
  - 7095
  - 7096
  - 7101
  - 7103
  - 7108
  - 7109
  - 7110
  - 7117
  - 7125
  - 7128
  - 7129
  - 7130
  - 7131
  - 7004
  - 7132
  - 7133
  - 7138
  - 7027
  - 7030
  - 7033
  - 7034
  - 7035
  - 7036
  - 7037
  dulwich.porcelain.set_branch_tracking:
  - 4392
  - 4400
  - 4401
  - 4402
  - 4403
  - 4404
  dulwich.porcelain.shortlog:
  - 3492
  - 3493
  - 3496
  - 3499
  - 3500
  - 3502
  - 3506
  - 3507
  - 3510
  - 3479
  - 3512
  dulwich.porcelain.shortlog.<lambda1>:
  - 3512
  dulwich.porcelain.show:
  - 2144
  - 2145
  - 2155
  - 2156
  - 2129
  - 2138
  - 2140
  - 2142
  - 2143
  dulwich.porcelain.show.decode:
  - 2153
  - 2148
  dulwich.porcelain.show_blob:
  - 1909
  - 1901
  dulwich.porcelain.show_branch:
  - 4671
  - 4692
  - 4693
  - 4698
  - 4700
  - 4702
  - 4705
  - 4706
  - 4710
  - 4711
  - 4715
  - 4716
  - 4720
  - 4722
  - 4725
  - 4727
  - 4730
  - 4733
  - 4735
  - 4736
  - 4738
  - 4744
  - 4748
  - 4752
  - 4753
  - 4754
  - 4755
  - 4756
  - 4757
  - 4761
  - 4762
  - 4766
  - 4767
  - 4768
  - 4774
  - 4775
  - 4782
  - 4785
  - 4786
  - 4791
  - 4793
  - 4796
  - 4798
  - 4802
  - 4803
  - 4805
  - 4844
  - 4845
  - 4849
  - 4851
  - 4852
  - 4858
  - 4861
  - 4864
  - 4867
  - 4869
  - 4870
  - 4873
  - 4878
  - 4884
  - 4885
  - 4896
  - 4897
  - 4900
  - 4904
  - 4905
  - 4907
  - 4910
  - 4913
  - 4916
  - 4917
  - 4919
  - 4920
  - 4922
  - 4925
  - 4927
  - 4928
  - 4931
  dulwich.porcelain.show_branch.collect_commits:
  - 4833
  - 4837
  - 4838
  - 4815
  - 4816
  - 4818
  - 4822
  - 4826
  - 4828
  - 4829
  dulwich.porcelain.show_branch.mark_reachable:
  - 4888
  - 4890
  - 4891
  - 4893
  - 4894
  dulwich.porcelain.show_commit:
  - 1953
  - 1954
  - 1956
  - 1961
  - 1962
  - 1963
  - 1964
  - 1940
  - 1942
  - 1943
  - 1944
  - 1946
  - 1918
  dulwich.porcelain.show_commit._StreamWrapper.write:
  - 1936
  - 1938
  - 1934
  dulwich.porcelain.show_object:
  - 2022
  - 2019
  - 2012
  - 2020
  dulwich.porcelain.show_ref:
  - 4608
  - 4615
  - 4616
  - 4619
  - 4622
  - 4623
  - 4624
  - 4629
  - 4635
  - 4639
  - 4640
  - 4643
  - 4645
  - 4648
  - 4650
  - 4651
  - 4565
  - 4579
  - 4580
  - 4582
  - 4583
  - 4586
  - 4588
  - 4589
  - 4590
  - 4591
  - 4592
  - 4595
  - 4598
  - 4602
  - 4604
  - 4605
  - 4606
  dulwich.porcelain.show_tag:
  - 1991
  - 1999
  - 2000
  - 2002
  - 2003
  dulwich.porcelain.show_tree:
  - 1973
  - 1982
  - 1981
  dulwich.porcelain.sparse_checkout:
  - 5922
  - 5924
  - 5925
  - 5896
  - 5928
  - 5929
  - 5930
  - 5934
  - 5937
  - 5938
  - 5942
  dulwich.porcelain.stash_drop:
  - 6113
  - 6114
  - 6109
  - 6110
  dulwich.porcelain.stash_list:
  - 6080
  - 6081
  - 6084
  - 6085
  - 6087
  dulwich.porcelain.stash_pop:
  - 6104
  - 6105
  - 6100
  - 6101
  dulwich.porcelain.stash_push:
  - 6096
  - 6091
  - 6092
  - 6095
  dulwich.porcelain.status:
  - 3457
  - 3464
  - 3466
  - 3435
  - 3437
  - 3469
  - 3439
  - 3471
  - 3441
  - 3444
  - 3416
  - 3450
  - 3451
  - 3453
  - 3454
  dulwich.porcelain.stripspace:
  - 1221
  - 1257
  - 1258
  - 1264
  - 1267
  dulwich.porcelain.submodule_add:
  - 2340
  - 2341
  - 2342
  - 2343
  - 2344
  - 2346
  - 2350
  - 2352
  - 2354
  - 2356
  - 2357
  - 2358
  - 2332
  dulwich.porcelain.submodule_init:
  - 2368
  - 2369
  - 2370
  - 2371
  - 2372
  - 2373
  - 2362
  - 2367
  dulwich.porcelain.submodule_list:
  - 2377
  - 2384
  - 2385
  - 2386
  - 2387
  - 2388
  dulwich.porcelain.submodule_update:
  - 2432
  - 2437
  - 2438
  - 2442
  - 2449
  - 2450
  - 2453
  - 2454
  - 2455
  - 2463
  - 2464
  - 2467
  - 2469
  - 2472
  - 2473
  - 2476
  - 2477
  - 2480
  - 2481
  - 2482
  - 2483
  - 2486
  - 2487
  - 2488
  - 2491
  - 2493
  - 2500
  - 2505
  - 2507
  - 2513
  - 2515
  - 2516
  - 2522
  - 2525
  - 2526
  - 2399
  - 2527
  - 2528
  - 2411
  - 2412
  - 2413
  - 2415
  - 2416
  - 2420
  - 2421
  - 2422
  - 2424
  - 2426
  - 2427
  - 2430
  dulwich.porcelain.switch:
  - 5760
  - 5764
  - 5765
  - 5766
  - 5772
  - 5773
  - 5776
  - 5780
  - 5783
  - 5784
  - 5787
  - 5790
  - 5792
  - 5793
  - 5796
  - 5800
  - 5802
  - 5803
  - 5808
  - 5810
  - 5814
  - 5815
  - 5816
  - 5818
  - 5823
  - 5824
  - 5827
  - 5830
  - 5832
  - 5740
  - 5757
  dulwich.porcelain.symbolic_ref:
  - 801
  - 802
  - 803
  - 805
  - 806
  - 810
  - 794
  dulwich.porcelain.tag_create:
  - 2566
  - 2567
  - 2569
  - 2570
  - 2572
  - 2574
  - 2575
  - 2576
  - 2577
  - 2578
  - 2580
  - 2582
  - 2583
  - 2584
  - 2588
  - 2590
  - 2591
  - 2592
  - 2594
  - 2595
  - 2596
  - 2597
  - 2601
  - 2603
  - 2606
  - 2616
  - 2618
  - 2619
  - 2622
  - 2624
  - 2629
  - 2550
  dulwich.porcelain.tag_delete:
  - 2699
  - 2705
  - 2706
  - 2708
  - 2712
  - 2713
  dulwich.porcelain.tag_list:
  - 2693
  - 2694
  - 2687
  dulwich.porcelain.unpack_objects:
  - 6628
  - 6629
  - 6630
  - 6632
  - 6633
  - 6634
  - 6617
  dulwich.porcelain.update_head:
  - 5410
  - 5415
  - 5417
  - 5418
  - 5419
  - 5395
  - 5405
  - 5406
  - 5407
  dulwich.porcelain.update_server_info:
  - 769
  - 774
  - 775
  dulwich.porcelain.upload_pack:
  - 3940
  - 3941
  - 3947
  - 3948
  - 3950
  - 3925
  - 3932
  - 3934
  dulwich.porcelain.upload_pack.send_fn:
  - 3944
  - 3945
  dulwich.porcelain.var:
  - 928
  - 940
  - 941
  dulwich.porcelain.var_list:
  - 924
  - 916
  dulwich.porcelain.verify_commit:
  - 2651
  - 2652
  - 2637
  - 2653
  dulwich.porcelain.verify_tag:
  - 2661
  - 2675
  - 2676
  - 2677
  - 2678
  - 2681
  - 2683
  dulwich.porcelain.web_daemon:
  - 3908
  - 3909
  - 3910
  - 3917
  - 3894
  dulwich.porcelain.worktree_add:
  - 8905
  - 8908
  - 8909
  - 8910
  - 8911
  - 8890
  dulwich.porcelain.worktree_list:
  - 8868
  - 8878
  - 8879
  dulwich.porcelain.worktree_lock:
  - 8962
  - 8971
  - 8974
  - 8975
  dulwich.porcelain.worktree_move:
  - 9001
  - 9010
  - 9013
  - 9014
  dulwich.porcelain.worktree_prune:
  - 8953
  - 8954
  - 8941
  dulwich.porcelain.worktree_remove:
  - 8922
  - 8931
  - 8934
  - 8935
  dulwich.porcelain.worktree_repair:
  - 9033
  - 9034
  - 9021
  dulwich.porcelain.worktree_unlock:
  - 8992
  - 8993
  - 8989
  - 8981
  dulwich.porcelain.write_commit_graph:
  - 779
  - 786
  - 788
  - 789
  - 790
  dulwich.porcelain.write_tree:
  - 6283
  - 6284
  - 6277
  dulwich.protocol:
  - 138
  - 203
  - 113
  - 23
  - 186
  dulwich.protocol.BufferedPktLineWriter:
  - 710
  dulwich.protocol.BufferedPktLineWriter.__init__:
  - 720
  - 728
  dulwich.protocol.BufferedPktLineWriter.flush:
  - 747
  - 748
  - 749
  - 750
  - 752
  dulwich.protocol.BufferedPktLineWriter.write:
  - 736
  - 738
  - 739
  - 743
  - 744
  - 732
  - 733
  - 734
  dulwich.protocol.PktLineParser:
  - 756
  dulwich.protocol.PktLineParser.__init__:
  - 765
  - 759
  dulwich.protocol.PktLineParser.get_tail:
  - 787
  - 788
  dulwich.protocol.PktLineParser.parse:
  - 768
  - 769
  - 770
  - 771
  - 773
  - 774
  - 775
  - 776
  - 778
  - 779
  - 783
  - 784
  dulwich.protocol.Protocol:
  - 349
  dulwich.protocol.Protocol.__enter__:
  - 387
  dulwich.protocol.Protocol.__exit__:
  - 396
  - 397
  dulwich.protocol.Protocol.__init__:
  - 367
  dulwich.protocol.Protocol.close:
  - 384
  - 382
  - 383
  dulwich.protocol.Protocol.eof:
  - 448
  - 437
  - 445
  dulwich.protocol.Protocol.read_cmd:
  - 528
  - 525
  - 526
  - 519
  dulwich.protocol.Protocol.read_pkt_line:
  - 417
  - 418
  - 419
  - 420
  - 422
  - 423
  - 424
  - 430
  - 400
  - 407
  - 414
  - 415
  dulwich.protocol.Protocol.read_pkt_seq:
  - 476
  - 473
  - 475
  - 468
  dulwich.protocol.Protocol.send_cmd:
  - 508
  - 516
  dulwich.protocol.Protocol.unread_pkt_line:
  - 465
  - 452
  - 463
  dulwich.protocol.Protocol.write_pkt_line:
  - 486
  - 487
  - 488
  - 489
  - 479
  dulwich.protocol.Protocol.write_sideband:
  - 504
  - 494
  dulwich.protocol.ReceivableProtocol:
  - 535
  dulwich.protocol.ReceivableProtocol.__init__:
  - 554
  - 563
  - 565
  dulwich.protocol.ReceivableProtocol.read:
  - 569
  - 593
  - 594
  - 596
  - 597
  - 599
  - 600
  - 601
  - 602
  - 603
  - 606
  - 614
  - 615
  - 617
  - 618
  - 625
  - 626
  - 630
  - 634
  - 635
  dulwich.protocol.ReceivableProtocol.recv:
  - 649
  - 650
  - 651
  - 652
  - 655
  - 657
  - 658
  - 661
  - 662
  - 663
  - 666
  - 638
  dulwich.protocol.ack_type:
  - 704
  - 701
  - 702
  dulwich.protocol.agent_string:
  - 224
  - 219
  dulwich.protocol.capability_agent:
  - 233
  - 228
  dulwich.protocol.capability_symref:
  - 237
  dulwich.protocol.extract_capabilities:
  - 676
  - 678
  - 670
  - 679
  dulwich.protocol.extract_capability_names:
  - 250
  - 258
  dulwich.protocol.extract_want_line_capabilities:
  - 697
  - 683
  - 694
  - 695
  dulwich.protocol.format_ack_line:
  - 856
  - 847
  dulwich.protocol.format_capability_line:
  - 792
  - 800
  dulwich.protocol.format_cmd_pkt:
  - 299
  - 308
  dulwich.protocol.format_ref_line:
  - 816
  - 819
  - 806
  dulwich.protocol.format_shallow_line:
  - 823
  dulwich.protocol.format_unshallow_line:
  - 835
  dulwich.protocol.parse_capability:
  - 271
  - 262
  - 270
  dulwich.protocol.parse_cmd_pkt:
  - 312
  - 323
  - 320
  dulwich.protocol.pkt_line:
  - 336
  - 334
  - 327
  dulwich.protocol.pkt_seq:
  - 345
  - 340
  dulwich.protocol.serialize_refs:
  - 965
  - 935
  - 953
  - 955
  - 957
  - 958
  - 959
  dulwich.protocol.split_peeled_refs:
  - 897
  - 880
  - 892
  - 894
  - 895
  dulwich.protocol.strip_peeled_refs:
  - 864
  - 873
  dulwich.protocol.symref_capabilities:
  - 285
  - 277
  dulwich.protocol.write_info_refs:
  - 928
  - 929
  - 905
  - 917
  - 920
  - 926
  - 927
  dulwich.rebase:
  - 22
  dulwich.rebase.DiskRebaseStateManager:
  - 433
  dulwich.rebase.DiskRebaseStateManager.__init__:
  - 436
  dulwich.rebase.DiskRebaseStateManager._read_file:
  - 512
  - 514
  - 515
  dulwich.rebase.DiskRebaseStateManager._write_file:
  - 480
  - 481
  - 482
  dulwich.rebase.DiskRebaseStateManager.clean:
  - 520
  - 522
  dulwich.rebase.DiskRebaseStateManager.exists:
  - 528
  - 529
  dulwich.rebase.DiskRebaseStateManager.load:
  - 493
  - 501
  - 502
  - 504
  - 506
  - 507
  dulwich.rebase.DiskRebaseStateManager.load_todo:
  - 546
  - 547
  - 548
  - 549
  - 541
  dulwich.rebase.DiskRebaseStateManager.save:
  - 451
  - 453
  - 456
  - 457
  - 460
  - 461
  - 464
  - 465
  - 468
  - 471
  - 474
  - 475
  - 476
  - 477
  dulwich.rebase.DiskRebaseStateManager.save_todo:
  - 537
  - 538
  - 532
  dulwich.rebase.MemoryRebaseStateManager:
  - 564
  dulwich.rebase.MemoryRebaseStateManager.__init__:
  - 567
  dulwich.rebase.MemoryRebaseStateManager.clean:
  - 615
  dulwich.rebase.MemoryRebaseStateManager.exists:
  - 620
  dulwich.rebase.MemoryRebaseStateManager.load:
  - 602
  - 603
  dulwich.rebase.MemoryRebaseStateManager.load_todo:
  - 632
  dulwich.rebase.MemoryRebaseStateManager.save:
  - 584
  - 585
  dulwich.rebase.MemoryRebaseStateManager.save_todo:
  - 624
  dulwich.rebase.RebaseAbort:
  - 78
  dulwich.rebase.RebaseConflict:
  - 63
  dulwich.rebase.RebaseConflict.__init__:
  - 72
  - 73
  - 66
  dulwich.rebase.RebaseError:
  - 59
  dulwich.rebase.RebaseState:
  - 554
  dulwich.rebase.RebaseStateManager:
  - 390
  dulwich.rebase.RebaseStateManager.clean:
  - 416
  - 417
  dulwich.rebase.RebaseStateManager.exists:
  - 420
  - 421
  dulwich.rebase.RebaseStateManager.load:
  - 412
  - 413
  dulwich.rebase.RebaseStateManager.load_todo:
  - 428
  - 429
  dulwich.rebase.RebaseStateManager.save:
  - 400
  - 401
  dulwich.rebase.RebaseStateManager.save_todo:
  - 424
  - 425
  dulwich.rebase.RebaseTodo:
  - 245
  dulwich.rebase.RebaseTodo.__init__:
  - 248
  dulwich.rebase.RebaseTodo.add_entry:
  - 257
  - 258
  dulwich.rebase.RebaseTodo.advance:
  - 267
  dulwich.rebase.RebaseTodo.from_commits:
  - 384
  - 386
  - 365
  - 374
  - 376
  - 377
  - 379
  dulwich.rebase.RebaseTodo.from_string:
  - 356
  - 357
  - 358
  - 359
  - 361
  - 347
  dulwich.rebase.RebaseTodo.get_current:
  - 261
  - 262
  dulwich.rebase.RebaseTodo.is_complete:
  - 272
  - 271
  dulwich.rebase.RebaseTodo.to_string:
  - 275
  - 286
  - 287
  - 289
  - 290
  - 291
  - 292
  - 293
  - 294
  - 295
  - 298
  - 299
  - 302
  - 305
  - 308
  - 311
  - 312
  - 315
  - 318
  - 319
  - 320
  - 321
  - 322
  - 325
  - 328
  - 331
  - 332
  - 335
  - 336
  - 337
  - 338
  - 341
  - 343
  dulwich.rebase.RebaseTodoCommand:
  - 82
  dulwich.rebase.RebaseTodoCommand.from_string:
  - 98
  - 125
  - 109
  - 130
  dulwich.rebase.RebaseTodoEntry:
  - 137
  dulwich.rebase.RebaseTodoEntry.from_string:
  - 194
  - 228
  - 197
  - 230
  - 200
  - 201
  - 233
  - 236
  - 206
  - 215
  - 186
  - 221
  - 222
  - 223
  dulwich.rebase.RebaseTodoEntry.to_string:
  - 167
  - 173
  - 175
  - 145
  - 177
  - 178
  - 179
  - 180
  - 182
  - 153
  dulwich.rebase.Rebaser:
  - 641
  dulwich.rebase.Rebaser.__init__:
  - 651
  - 644
  - 661
  dulwich.rebase.Rebaser._cherry_pick:
  - 739
  - 741
  - 745
  - 715
  - 725
  - 757
  - 758
  - 731
  - 732
  - 735
  dulwich.rebase.Rebaser._clean_rebase_state:
  - 932
  - 933
  dulwich.rebase.Rebaser._finish_rebase:
  - 896
  - 897
  - 904
  - 881
  - 882
  - 890
  dulwich.rebase.Rebaser._get_commits_to_rebase:
  - 704
  - 705
  - 676
  - 678
  - 679
  - 710
  - 684
  - 687
  - 690
  - 693
  - 694
  - 666
  - 703
  dulwich.rebase.Rebaser._load_rebase_state:
  - 929
  - 922
  dulwich.rebase.Rebaser._save_rebase_state:
  - 912
  - 913
  dulwich.rebase.Rebaser.abort:
  - 867
  - 869
  - 872
  - 862
  - 863
  dulwich.rebase.Rebaser.continue_:
  - 832
  - 837
  - 839
  - 842
  - 843
  - 844
  - 847
  - 816
  - 848
  - 850
  - 821
  - 822
  - 854
  - 826
  - 829
  dulwich.rebase.Rebaser.is_in_progress:
  - 858
  - 859
  dulwich.rebase.Rebaser.start:
  - 768
  - 802
  - 806
  - 779
  - 811
  - 782
  - 784
  - 785
  - 788
  - 791
  - 794
  - 799
  dulwich.rebase._squash_commits:
  - 1255
  - 1287
  - 1288
  - 1259
  - 1228
  - 1294
  - 1263
  - 1295
  - 1267
  - 1269
  - 1270
  - 1240
  - 1275
  - 1244
  - 1247
  dulwich.rebase.edit_todo:
  - 1056
  - 1057
  - 1061
  - 1062
  - 1065
  - 1066
  - 1038
  - 1070
  - 1050
  - 1052
  dulwich.rebase.process_interactive_rebase:
  - 1153
  - 1154
  - 1159
  - 1160
  - 1163
  - 1165
  - 1168
  - 1171
  - 1174
  - 1176
  - 1179
  - 1182
  - 1185
  - 1187
  - 1188
  - 1190
  - 1192
  - 1194
  - 1199
  - 1201
  - 1202
  - 1080
  - 1210
  - 1213
  - 1214
  - 1217
  - 1098
  - 1099
  - 1102
  - 1103
  - 1104
  - 1108
  - 1109
  - 1110
  - 1114
  - 1116
  - 1117
  - 1121
  - 1123
  - 1124
  - 1129
  - 1131
  - 1134
  - 1146
  - 1151
  dulwich.rebase.rebase:
  - 960
  - 963
  - 964
  - 942
  - 957
  dulwich.rebase.start_interactive:
  - 1024
  - 1026
  - 998
  - 1032
  - 1001
  - 1003
  - 1007
  - 1010
  - 979
  - 1011
  - 1014
  - 1015
  - 1016
  - 1019
  - 1020
  dulwich.reflog:
  - 41
  - 22
  dulwich.reflog.drop_reflog_entry:
  - 164
  - 168
  - 169
  - 170
  - 171
  - 200
  - 173
  - 201
  - 175
  - 202
  - 177
  - 178
  - 211
  - 182
  - 183
  - 156
  - 190
  dulwich.reflog.expire_reflog:
  - 258
  - 259
  - 262
  - 268
  - 271
  - 274
  - 275
  - 276
  - 277
  - 278
  - 287
  - 220
  - 235
  - 239
  - 240
  - 241
  - 242
  - 248
  - 253
  - 254
  dulwich.reflog.format_reflog_line:
  - 104
  - 113
  - 115
  - 94
  dulwich.reflog.iter_reflogs:
  - 293
  - 304
  - 307
  - 308
  - 309
  - 311
  - 313
  - 314
  dulwich.reflog.parse_reflog_line:
  - 129
  - 130
  - 131
  - 132
  - 136
  - 137
  - 122
  dulwich.reflog.parse_reflog_spec:
  - 67
  - 68
  - 74
  - 48
  - 80
  - 83
  - 59
  - 60
  - 62
  dulwich.reflog.read_reflog:
  - 152
  - 145
  - 151
  dulwich.refs:
  - 71
  - 78
  - 80
  - 82
  - 23
  - 89
  dulwich.refs.DictRefsContainer:
  - 586
  dulwich.refs.DictRefsContainer.__init__:
  - 609
  - 610
  - 613
  dulwich.refs.DictRefsContainer._notify:
  - 628
  - 629
  dulwich.refs.DictRefsContainer._update:
  - 800
  - 801
  - 797
  dulwich.refs.DictRefsContainer._update_peeled:
  - 804
  - 805
  dulwich.refs.DictRefsContainer.add_if_new:
  - 736
  - 735
  - 732
  - 719
  dulwich.refs.DictRefsContainer.allkeys:
  - 616
  - 617
  dulwich.refs.DictRefsContainer.get_packed_refs:
  - 624
  dulwich.refs.DictRefsContainer.get_peeled:
  - 793
  - 794
  dulwich.refs.DictRefsContainer.read_loose_ref:
  - 620
  - 621
  dulwich.refs.DictRefsContainer.remove_if_equals:
  - 773
  - 776
  - 780
  - 781
  - 756
  dulwich.refs.DictRefsContainer.set_if_equals:
  - 674
  - 692
  - 695
  - 696
  - 698
  - 699
  dulwich.refs.DictRefsContainer.set_symbolic_ref:
  - 640
  - 650
  - 653
  - 654
  dulwich.refs.DiskRefsContainer:
  - 809
  dulwich.refs.DiskRefsContainer.__init__:
  - 820
  - 821
  - 823
  - 824
  - 827
  dulwich.refs.DiskRefsContainer.__repr__:
  - 832
  dulwich.refs.DiskRefsContainer._iter_dir:
  - 841
  - 842
  - 844
  - 846
  - 847
  - 848
  - 850
  - 853
  - 854
  - 855
  - 856
  dulwich.refs.DiskRefsContainer._iter_loose_refs:
  - 864
  - 866
  - 869
  - 871
  - 873
  - 874
  - 859
  - 861
  - 862
  - 863
  dulwich.refs.DiskRefsContainer._iter_loose_refs.<lambda1>:
  - 869
  dulwich.refs.DiskRefsContainer._remove_packed_ref:
  - 1030
  - 1032
  - 1034
  - 1037
  - 1039
  - 1040
  - 1044
  - 1045
  - 1047
  - 1048
  - 1050
  dulwich.refs.DiskRefsContainer.add_if_new:
  - 1216
  - 1218
  - 1187
  - 1221
  - 1202
  - 1203
  - 1208
  - 1209
  - 1210
  - 1211
  - 1212
  - 1213
  dulwich.refs.DiskRefsContainer.add_packed_refs:
  - 964
  - 965
  - 967
  - 970
  - 972
  - 941
  - 947
  - 950
  - 952
  - 954
  - 956
  - 958
  dulwich.refs.DiskRefsContainer.allkeys:
  - 896
  - 890
  - 891
  - 892
  - 893
  - 895
  dulwich.refs.DiskRefsContainer.get_packed_refs:
  - 928
  - 929
  - 930
  - 932
  - 935
  - 936
  - 909
  - 917
  - 922
  - 924
  dulwich.refs.DiskRefsContainer.get_peeled:
  - 977
  - 986
  - 985
  - 993
  dulwich.refs.DiskRefsContainer.pack_refs:
  - 1320
  - 1326
  - 1327
  - 1330
  - 1333
  - 1339
  - 1340
  dulwich.refs.DiskRefsContainer.read_loose_ref:
  - 1000
  - 1013
  - 1015
  - 1016
  - 1017
  - 1019
  - 1022
  dulwich.refs.DiskRefsContainer.refpath:
  - 900
  - 902
  - 903
  - 905
  - 906
  dulwich.refs.DiskRefsContainer.remove_if_equals:
  - 1280
  - 1281
  - 1292
  - 1300
  - 1301
  - 1305
  - 1307
  - 1309
  - 1241
  - 1256
  - 1257
  - 1258
  - 1259
  - 1261
  - 1262
  - 1263
  - 1264
  - 1265
  - 1267
  - 1272
  - 1277
  - 1278
  dulwich.refs.DiskRefsContainer.set_if_equals:
  - 1153
  - 1154
  - 1155
  - 1157
  - 1159
  - 1163
  - 1165
  - 1167
  - 1104
  - 1120
  - 1122
  - 1126
  - 1129
  - 1130
  - 1132
  - 1134
  - 1136
  - 1137
  - 1138
  - 1141
  - 1142
  - 1143
  - 1144
  - 1145
  - 1148
  dulwich.refs.DiskRefsContainer.set_symbolic_ref:
  - 1089
  - 1092
  - 1062
  - 1072
  - 1073
  - 1074
  - 1075
  - 1077
  - 1078
  - 1079
  dulwich.refs.DiskRefsContainer.subkeys:
  - 877
  - 878
  - 880
  - 881
  - 882
  - 884
  - 885
  - 886
  dulwich.refs.NamespacedRefsContainer:
  - 1816
  dulwich.refs.NamespacedRefsContainer.__init__:
  - 1840
  - 1834
  - 1828
  - 1838
  dulwich.refs.NamespacedRefsContainer._apply_namespace:
  - 1844
  - 1846
  dulwich.refs.NamespacedRefsContainer._strip_namespace:
  - 1856
  - 1858
  - 1851
  - 1859
  dulwich.refs.NamespacedRefsContainer.add_if_new:
  - 1944
  - 1945
  - 1946
  dulwich.refs.NamespacedRefsContainer.add_packed_refs:
  - 1889
  - 1885
  - 1887
  dulwich.refs.NamespacedRefsContainer.allkeys:
  - 1863
  - 1864
  - 1865
  - 1866
  - 1867
  - 1868
  dulwich.refs.NamespacedRefsContainer.get_packed_refs:
  - 1876
  - 1878
  - 1879
  - 1880
  - 1881
  dulwich.refs.NamespacedRefsContainer.get_peeled:
  - 1892
  - 1893
  dulwich.refs.NamespacedRefsContainer.pack_refs:
  - 1979
  - 1974
  dulwich.refs.NamespacedRefsContainer.read_loose_ref:
  - 1872
  - 1873
  dulwich.refs.NamespacedRefsContainer.remove_if_equals:
  - 1963
  - 1964
  - 1965
  dulwich.refs.NamespacedRefsContainer.set_if_equals:
  - 1924
  - 1925
  - 1926
  dulwich.refs.NamespacedRefsContainer.set_symbolic_ref:
  - 1904
  - 1905
  - 1906
  - 1907
  dulwich.refs.RefsContainer:
  - 194
  dulwich.refs.RefsContainer.__contains__:
  - 434
  - 435
  dulwich.refs.RefsContainer.__delitem__:
  - 545
  - 557
  dulwich.refs.RefsContainer.__getitem__:
  - 440
  - 444
  - 445
  dulwich.refs.RefsContainer.__init__:
  - 203
  dulwich.refs.RefsContainer.__iter__:
  - 323
  - 324
  dulwich.refs.RefsContainer.__setitem__:
  - 513
  - 515
  - 500
  dulwich.refs.RefsContainer._check_refname:
  - 385
  - 387
  - 372
  dulwich.refs.RefsContainer._log:
  - 225
  - 216
  - 218
  - 221
  - 223
  dulwich.refs.RefsContainer.add_if_new:
  - 487
  dulwich.refs.RefsContainer.add_packed_refs:
  - 259
  dulwich.refs.RefsContainer.allkeys:
  - 319
  dulwich.refs.RefsContainer.as_dict:
  - 355
  - 357
  - 359
  - 362
  - 363
  - 365
  dulwich.refs.RefsContainer.follow:
  - 422
  - 423
  - 424
  - 425
  - 426
  - 429
  - 431
  - 414
  dulwich.refs.RefsContainer.get_packed_refs:
  - 249
  dulwich.refs.RefsContainer.get_peeled:
  - 268
  dulwich.refs.RefsContainer.get_symrefs:
  - 560
  - 565
  - 567
  - 569
  - 573
  dulwich.refs.RefsContainer.import_refs:
  - 288
  - 299
  - 300
  - 302
  - 303
  - 304
  - 305
  - 307
  - 308
  - 310
  - 312
  - 315
  - 316
  dulwich.refs.RefsContainer.keys:
  - 337
  - 335
  - 334
  - 327
  dulwich.refs.RefsContainer.pack_refs:
  - 577
  dulwich.refs.RefsContainer.read_loose_ref:
  - 404
  dulwich.refs.RefsContainer.read_ref:
  - 399
  - 400
  - 398
  - 391
  dulwich.refs.RefsContainer.remove_if_equals:
  - 526
  dulwich.refs.RefsContainer.set_if_equals:
  - 459
  dulwich.refs.RefsContainer.set_symbolic_ref:
  - 236
  dulwich.refs.RefsContainer.subkeys:
  - 340
  - 347
  - 348
  - 349
  - 350
  - 351
  dulwich.refs.SymrefLoop:
  - 93
  dulwich.refs.SymrefLoop.__init__:
  - 96
  dulwich.refs._import_remote_refs:
  - 1665
  - 1666
  - 1672
  - 1673
  - 1674
  - 1676
  - 1677
  - 1659
  - 1661
  - 1662
  - 1663
  dulwich.refs._set_default_branch:
  - 1600
  - 1602
  - 1603
  - 1604
  - 1605
  - 1606
  - 1608
  - 1609
  - 1612
  - 1613
  - 1614
  - 1615
  - 1617
  - 1619
  dulwich.refs._set_head:
  - 1632
  - 1633
  - 1635
  - 1637
  - 1641
  - 1642
  - 1643
  - 1630
  dulwich.refs._set_origin_head:
  - 1586
  - 1587
  - 1588
  - 1589
  - 1590
  dulwich.refs._split_ref_line:
  - 1344
  - 1345
  - 1346
  - 1349
  - 1351
  - 1353
  dulwich.refs.check_ref_format:
  - 129
  - 131
  - 133
  - 134
  - 136
  - 138
  - 140
  - 142
  - 114
  - 127
  dulwich.refs.extract_branch_name:
  - 1529
  - 1510
  - 1527
  dulwich.refs.extract_tag_name:
  - 1548
  - 1533
  - 1550
  dulwich.refs.filter_ref_prefix:
  - 1989
  - 1983
  dulwich.refs.is_local_branch:
  - 1445
  - 1446
  dulwich.refs.is_per_worktree_ref:
  - 1994
  - 2004
  dulwich.refs.local_branch_name:
  - 1464
  - 1465
  - 1450
  - 1466
  dulwich.refs.local_replace_name:
  - 1504
  - 1505
  - 1490
  - 1506
  dulwich.refs.local_tag_name:
  - 1486
  - 1484
  - 1485
  - 1470
  dulwich.refs.locked_ref:
  - 1682
  dulwich.refs.locked_ref.__enter__:
  - 1701
  - 1709
  - 1711
  - 1716
  - 1717
  - 1718
  dulwich.refs.locked_ref.__exit__:
  - 1728
  - 1735
  - 1736
  - 1737
  - 1739
  dulwich.refs.locked_ref.__init__:
  - 1688
  dulwich.refs.locked_ref.delete:
  - 1798
  - 1799
  - 1803
  - 1804
  - 1806
  - 1807
  - 1810
  dulwich.refs.locked_ref.ensure_equals:
  - 1762
  - 1755
  dulwich.refs.locked_ref.get:
  - 1742
  - 1743
  - 1747
  - 1748
  - 1749
  dulwich.refs.locked_ref.set:
  - 1766
  - 1771
  - 1774
  - 1777
  - 1778
  - 1779
  dulwich.refs.locked_ref.set_symbolic_ref:
  - 1792
  - 1793
  - 1794
  - 1783
  - 1788
  - 1791
  dulwich.refs.parse_remote_ref:
  - 163
  - 166
  - 167
  - 148
  - 159
  dulwich.refs.parse_symref_value:
  - 108
  - 109
  - 102
  dulwich.refs.read_info_refs:
  - 1440
  - 1429
  - 1438
  - 1439
  dulwich.refs.read_packed_refs:
  - 1357
  - 1363
  - 1364
  - 1367
  - 1369
  dulwich.refs.read_packed_refs_with_peeled:
  - 1384
  - 1385
  - 1387
  - 1388
  - 1389
  - 1391
  - 1393
  - 1395
  - 1397
  - 1398
  - 1399
  - 1401
  - 1402
  - 1403
  - 1375
  dulwich.refs.set_ref_from_raw:
  - 175
  - 184
  - 186
  - 187
  - 190
  dulwich.refs.shorten_ref_name:
  - 1572
  - 1573
  - 1574
  - 1575
  - 1576
  - 1577
  - 1554
  dulwich.refs.write_packed_refs:
  - 1411
  - 1418
  - 1421
  - 1422
  - 1423
  - 1424
  - 1425
  dulwich.reftable:
  - 1
  dulwich.reftable.LogBlock:
  - 367
  dulwich.reftable.LogBlock.encode:
  - 370
  - 372
  dulwich.reftable.RefBlock:
  - 376
  dulwich.reftable.RefBlock.__init__:
  - 379
  dulwich.reftable.RefBlock._create_embedded_footer:
  - 391
  - 392
  - 393
  - 395
  - 397
  - 398
  - 401
  - 402
  - 405
  - 407
  - 409
  - 411
  - 412
  - 415
  - 416
  - 419
  - 420
  - 421
  - 424
  - 426
  dulwich.reftable.RefBlock._find_ref_data_end:
  - 482
  - 463
  - 476
  - 477
  - 478
  dulwich.reftable.RefBlock.add_ref:
  - 385
  - 386
  dulwich.reftable.RefBlock.decode:
  - 512
  - 513
  - 486
  - 487
  - 488
  - 520
  - 492
  - 495
  - 498
  - 500
  - 503
  - 504
  - 510
  dulwich.reftable.RefBlock.encode:
  - 448
  - 449
  - 452
  - 455
  - 456
  - 457
  - 459
  - 434
  - 436
  - 439
  - 443
  - 445
  - 446
  dulwich.reftable.RefRecord:
  - 279
  dulwich.reftable.RefRecord.__init__:
  - 284
  dulwich.reftable.RefRecord.decode:
  - 352
  - 353
  - 361
  - 330
  - 363
  - 332
  - 333
  - 337
  - 338
  - 345
  - 346
  dulwich.reftable.RefRecord.encode:
  - 322
  - 298
  - 300
  - 301
  - 313
  - 314
  - 319
  dulwich.reftable.RefUpdate:
  - 263
  dulwich.reftable.RefUpdate.__init__:
  - 266
  dulwich.reftable.RefValue:
  - 233
  dulwich.reftable.RefValue.get_sha:
  - 257
  - 254
  - 255
  dulwich.reftable.RefValue.is_deletion:
  - 245
  dulwich.reftable.RefValue.is_peeled:
  - 250
  dulwich.reftable.RefValue.is_symbolic:
  - 240
  dulwich.reftable.ReftableReader:
  - 723
  dulwich.reftable.ReftableReader.__init__:
  - 732
  - 734
  - 726
  dulwich.reftable.ReftableReader._process_ref_block:
  - 787
  - 788
  - 789
  dulwich.reftable.ReftableReader._read_blocks:
  - 768
  - 771
  - 774
  - 776
  - 777
  - 781
  - 759
  - 762
  - 763
  - 767
  dulwich.reftable.ReftableReader._read_header:
  - 737
  - 739
  - 740
  - 745
  - 749
  - 755
  - 756
  dulwich.reftable.ReftableReader.all_refs:
  - 798
  - 799
  dulwich.reftable.ReftableReader.get_ref:
  - 794
  - 795
  dulwich.reftable.ReftableRefsContainer:
  - 824
  dulwich.reftable.ReftableRefsContainer.__getitem__:
  - 1026
  - 1027
  - 1022
  dulwich.reftable.ReftableRefsContainer.__init__:
  - 834
  - 840
  - 842
  - 843
  - 846
  - 847
  - 848
  - 856
  dulwich.reftable.ReftableRefsContainer._apply_batch_updates:
  - 1376
  - 1377
  - 1378
  - 1387
  - 1389
  - 1390
  - 1374
  dulwich.reftable.ReftableRefsContainer._compact_tables_list:
  - 1440
  - 1441
  - 1444
  - 1445
  - 1435
  - 1436
  - 1439
  dulwich.reftable.ReftableRefsContainer._ensure_refs_heads_marker:
  - 865
  - 866
  - 867
  - 869
  - 872
  - 873
  - 876
  - 877
  - 878
  - 859
  dulwich.reftable.ReftableRefsContainer._flush_pending_updates:
  - 1280
  - 1286
  - 1292
  - 1294
  - 1297
  - 1298
  - 1299
  - 1302
  - 1303
  - 1304
  - 1306
  - 1259
  - 1260
  - 1264
  - 1265
  - 1268
  - 1271
  - 1274
  - 1277
  dulwich.reftable.ReftableRefsContainer._generate_table_path:
  - 1101
  - 1102
  - 1103
  - 1109
  - 1111
  dulwich.reftable.ReftableRefsContainer._get_next_update_index:
  - 914
  - 917
  - 919
  - 924
  - 925
  - 926
  - 927
  dulwich.reftable.ReftableRefsContainer._get_table_files:
  - 932
  - 933
  - 936
  - 937
  - 941
  - 942
  - 943
  - 944
  - 945
  dulwich.reftable.ReftableRefsContainer._load_ref_update_indices:
  - 896
  - 902
  - 905
  - 908
  - 885
  - 886
  - 887
  - 889
  - 890
  - 893
  - 894
  - 895
  dulwich.reftable.ReftableRefsContainer._process_pending_updates:
  - 1316
  - 1317
  - 1318
  - 1320
  - 1326
  - 1311
  dulwich.reftable.ReftableRefsContainer._read_all_tables:
  - 960
  - 964
  - 966
  - 967
  - 968
  - 970
  - 949
  - 952
  - 953
  - 954
  - 955
  - 956
  dulwich.reftable.ReftableRefsContainer._read_table_file:
  - 881
  - 882
  dulwich.reftable.ReftableRefsContainer._resolve_symref_chain:
  - 1347
  - 1348
  - 1351
  - 1355
  - 1356
  - 1361
  - 1331
  - 1343
  dulwich.reftable.ReftableRefsContainer._update_tables_list:
  - 1448
  - 1449
  - 1453
  - 1454
  - 1455
  - 1458
  - 1461
  - 1462
  - 1463
  dulwich.reftable.ReftableRefsContainer._write_batch_file:
  - 1408
  - 1410
  - 1411
  - 1412
  - 1414
  - 1420
  - 1422
  - 1424
  - 1399
  - 1401
  - 1402
  - 1403
  dulwich.reftable.ReftableRefsContainer._write_batch_updates:
  - 1123
  - 1124
  - 1127
  - 1129
  - 1130
  - 1131
  - 1132
  - 1133
  - 1135
  - 1136
  - 1138
  dulwich.reftable.ReftableRefsContainer._write_ref_update:
  - 1229
  - 1225
  - 1221
  - 1223
  dulwich.reftable.ReftableRefsContainer._write_single_ref_update:
  - 1248
  - 1249
  - 1250
  - 1251
  - 1252
  - 1254
  - 1256
  - 1234
  - 1235
  - 1236
  - 1238
  - 1239
  - 1247
  dulwich.reftable.ReftableRefsContainer.add_if_new:
  - 1176
  - 1178
  - 1182
  dulwich.reftable.ReftableRefsContainer.add_packed_refs:
  - 1120
  - 1114
  - 1115
  - 1119
  dulwich.reftable.ReftableRefsContainer.allkeys:
  - 977
  - 978
  - 979
  - 982
  - 983
  - 986
  dulwich.reftable.ReftableRefsContainer.batch_update:
  - 1427
  - 1428
  dulwich.reftable.ReftableRefsContainer.follow:
  - 998
  - 1000
  - 1001
  - 1002
  - 1003
  - 1007
  - 1008
  - 1009
  - 1010
  - 1011
  - 1012
  - 991
  dulwich.reftable.ReftableRefsContainer.get_packed_refs:
  - 1060
  - 1061
  - 1063
  - 1064
  - 1065
  - 1066
  - 1067
  dulwich.reftable.ReftableRefsContainer.get_peeled:
  - 1088
  - 1089
  - 1091
  - 1071
  - 1079
  - 1080
  - 1082
  - 1086
  dulwich.reftable.ReftableRefsContainer.read_loose_ref:
  - 1032
  - 1041
  - 1042
  - 1044
  - 1048
  - 1050
  - 1053
  dulwich.reftable.ReftableRefsContainer.remove_if_equals:
  - 1194
  - 1197
  - 1201
  - 1202
  - 1205
  dulwich.reftable.ReftableRefsContainer.remove_packed_ref:
  - 1432
  - 1431
  dulwich.reftable.ReftableRefsContainer.set_if_equals:
  - 1154
  - 1158
  - 1159
  - 1163
  - 1150
  dulwich.reftable.ReftableRefsContainer.set_symbolic_ref:
  - 1217
  - 1218
  dulwich.reftable.ReftableWriter:
  - 527
  dulwich.reftable.ReftableWriter.__init__:
  - 535
  dulwich.reftable.ReftableWriter._get_ref_update_indices:
  - 642
  - 645
  - 648
  - 651
  - 658
  - 633
  dulwich.reftable.ReftableWriter._maybe_auto_create_head:
  - 585
  - 581
  - 582
  dulwich.reftable.ReftableWriter._write_final_padding:
  - 704
  - 705
  - 709
  - 712
  - 716
  - 718
  - 719
  - 700
  dulwich.reftable.ReftableWriter._write_header:
  - 611
  - 620
  - 624
  - 625
  - 629
  - 630
  dulwich.reftable.ReftableWriter._write_ref_blocks:
  - 672
  - 675
  - 678
  - 681
  - 687
  - 688
  - 691
  - 692
  - 693
  - 697
  - 663
  - 696
  - 665
  - 669
  dulwich.reftable.ReftableWriter.add_ref:
  - 554
  - 556
  - 557
  - 559
  dulwich.reftable.ReftableWriter.add_symbolic_ref:
  - 562
  - 564
  - 566
  - 567
  - 569
  dulwich.reftable.ReftableWriter.delete_ref:
  - 577
  - 578
  - 575
  dulwich.reftable.ReftableWriter.write:
  - 608
  - 588
  - 592
  - 598
  - 601
  - 604
  dulwich.reftable._ReftableBatchContext:
  - 803
  dulwich.reftable._ReftableBatchContext.__exit__:
  - 819
  - 820
  dulwich.reftable._decode_ref_value:
  - 224
  - 204
  - 205
  - 207
  - 208
  - 209
  - 212
  - 213
  - 214
  - 215
  - 218
  - 219
  - 220
  - 221
  - 223
  dulwich.reftable._decode_reftable_suffix_and_type:
  - 128
  - 136
  - 105
  - 106
  - 107
  - 108
  - 114
  - 118
  - 119
  - 120
  - 126
  - 127
  dulwich.reftable._encode_ref_value:
  - 192
  - 193
  - 196
  - 198
  - 181
  - 182
  - 184
  - 186
  - 187
  - 190
  dulwich.reftable._encode_reftable_suffix_and_type:
  - 98
  - 99
  - 92
  - 101
  dulwich.reftable.decode_varint_from_stream:
  - 66
  - 75
  - 70
  - 71
  dulwich.reftable.encode_varint:
  - 88
  - 82
  - 85
  - 87
  dulwich.replace_me:
  - 46
  dulwich.replace_me.decorator:
  - 64
  - 66
  - 68
  - 73
  - 61
  - 62
  dulwich.replace_me.decorator._wrapped_func:
  - 80
  - 75
  dulwich.repo:
  - 24
  - 156
  - 76
  dulwich.repo.BaseRepo:
  - 489
  - 1215
  dulwich.repo.BaseRepo.__contains__:
  - 1120
  - 1125
  - 1126
  - 1127
  - 1128
  - 1130
  dulwich.repo.BaseRepo.__delitem__:
  - 1156
  - 1157
  - 1151
  dulwich.repo.BaseRepo.__getitem__:
  - 1096
  - 1104
  - 1106
  - 1110
  - 1115
  dulwich.repo.BaseRepo.__init__:
  - 504
  dulwich.repo.BaseRepo.__setitem__:
  - 1133
  - 1139
  - 1140
  - 1141
  - 1143
  - 1144
  dulwich.repo.BaseRepo._add_graftpoints:
  - 1184
  - 1174
  - 1180
  - 1181
  - 1182
  dulwich.repo.BaseRepo._del_named_file:
  - 600
  dulwich.repo.BaseRepo._determine_file_mode:
  - 520
  dulwich.repo.BaseRepo._determine_symlinks:
  - 527
  dulwich.repo.BaseRepo._get_object:
  - 864
  - 854
  - 855
  - 856
  - 857
  - 858
  - 860
  - 862
  dulwich.repo.BaseRepo._get_user_identity:
  - 1169
  - 1164
  - 1165
  dulwich.repo.BaseRepo._init_files:
  - 541
  - 544
  - 545
  - 546
  - 547
  - 549
  - 551
  - 552
  - 553
  - 555
  - 557
  - 558
  - 560
  - 561
  - 563
  - 564
  - 567
  - 568
  - 569
  - 571
  - 573
  - 574
  - 575
  dulwich.repo.BaseRepo._put_named_file:
  - 591
  dulwich.repo.BaseRepo._read_heads:
  - 1200
  - 1196
  - 1197
  dulwich.repo.BaseRepo._remove_graftpoints:
  - 1192
  - 1187
  dulwich.repo.BaseRepo.do_commit:
  - 1232
  - 1263
  dulwich.repo.BaseRepo.fetch:
  - 620
  - 630
  - 632
  - 634
  - 638
  - 639
  dulwich.repo.BaseRepo.fetch_pack_data:
  - 672
  - 650
  - 665
  - 668
  - 669
  - 670
  - 671
  dulwich.repo.BaseRepo.find_missing_objects:
  - 777
  - 781
  - 685
  - 705
  - 707
  - 708
  - 711
  - 713
  - 714
  - 717
  - 718
  - 721
  - 723
  - 725
  - 727
  - 728
  - 731
  - 732
  - 733
  - 735
  - 737
  - 741
  - 746
  - 755
  - 759
  - 764
  dulwich.repo.BaseRepo.find_missing_objects.get_parents:
  - 775
  - 767
  dulwich.repo.BaseRepo.generate_pack_data:
  - 796
  - 805
  - 806
  - 807
  dulwich.repo.BaseRepo.get_blob_normalizer:
  - 943
  dulwich.repo.BaseRepo.get_config:
  - 909
  dulwich.repo.BaseRepo.get_config_stack:
  - 961
  - 971
  - 973
  - 974
  - 976
  - 977
  dulwich.repo.BaseRepo.get_description:
  - 920
  dulwich.repo.BaseRepo.get_gitattributes:
  - 950
  dulwich.repo.BaseRepo.get_graph_walker:
  - 833
  - 834
  - 837
  - 818
  - 827
  - 830
  dulwich.repo.BaseRepo.get_named_file:
  - 578
  dulwich.repo.BaseRepo.get_object:
  - 871
  dulwich.repo.BaseRepo.get_parents:
  - 896
  - 906
  dulwich.repo.BaseRepo.get_peeled:
  - 1010
  - 1018
  - 1021
  - 1019
  dulwich.repo.BaseRepo.get_rebase_state_manager:
  - 936
  dulwich.repo.BaseRepo.get_refs:
  - 842
  - 846
  dulwich.repo.BaseRepo.get_shallow:
  - 980
  - 984
  - 985
  - 986
  - 988
  dulwich.repo.BaseRepo.get_walker:
  - 1091
  - 1075
  - 1076
  - 1079
  - 1048
  dulwich.repo.BaseRepo.get_walker.<lambda1>:
  - 1091
  dulwich.repo.BaseRepo.get_worktree:
  - 1203
  dulwich.repo.BaseRepo.get_worktree_config:
  - 916
  dulwich.repo.BaseRepo.head:
  - 849
  dulwich.repo.BaseRepo.notes:
  - 1032
  - 1025
  dulwich.repo.BaseRepo.open_index:
  - 604
  dulwich.repo.BaseRepo.parents_provider:
  - 882
  - 890
  - 887
  dulwich.repo.BaseRepo.set_description:
  - 928
  dulwich.repo.BaseRepo.update_shallow:
  - 993
  - 999
  - 1000
  - 1001
  - 1002
  - 1003
  - 1004
  - 1005
  - 1007
  dulwich.repo.DefaultIdentityNotFound:
  - 186
  dulwich.repo.InvalidUserIdentity:
  - 178
  dulwich.repo.InvalidUserIdentity.__init__:
  - 181
  dulwich.repo.MemoryRepo:
  - 2444
  dulwich.repo.MemoryRepo.__init__:
  - 2457
  - 2458
  - 2453
  - 2461
  dulwich.repo.MemoryRepo._append_reflog:
  - 2475
  dulwich.repo.MemoryRepo._determine_file_mode:
  - 2496
  dulwich.repo.MemoryRepo._determine_symlinks:
  - 2503
  dulwich.repo.MemoryRepo._put_named_file:
  - 2510
  dulwich.repo.MemoryRepo.close:
  - 2600
  - 2602
  - 2603
  dulwich.repo.MemoryRepo.do_commit:
  - 2690
  - 2691
  - 2692
  - 2695
  - 2700
  - 2703
  - 2708
  - 2709
  - 2715
  - 2720
  - 2721
  - 2726
  - 2729
  - 2622
  - 2650
  - 2653
  - 2654
  - 2658
  - 2659
  - 2661
  - 2662
  - 2663
  - 2665
  - 2666
  - 2667
  - 2668
  - 2671
  - 2672
  - 2674
  - 2675
  - 2677
  - 2678
  - 2681
  - 2683
  - 2686
  dulwich.repo.MemoryRepo.get_blob_normalizer:
  - 2571
  - 2575
  - 2576
  - 2579
  - 2580
  - 2581
  - 2584
  - 2587
  dulwich.repo.MemoryRepo.get_config:
  - 2555
  dulwich.repo.MemoryRepo.get_description:
  - 2488
  dulwich.repo.MemoryRepo.get_gitattributes:
  - 2592
  - 2597
  dulwich.repo.MemoryRepo.get_named_file:
  - 2529
  - 2540
  - 2541
  - 2542
  - 2544
  dulwich.repo.MemoryRepo.get_rebase_state_manager:
  - 2568
  - 2562
  dulwich.repo.MemoryRepo.init_bare:
  - 2752
  - 2753
  - 2754
  - 2755
  - 2756
  - 2757
  - 2743
  dulwich.repo.MemoryRepo.open_index:
  - 2547
  dulwich.repo.MemoryRepo.set_description:
  - 2480
  dulwich.repo.ParentsProvider:
  - 440
  dulwich.repo.ParentsProvider.__init__:
  - 448
  - 457
  - 460
  dulwich.repo.ParentsProvider.get_parents:
  - 480
  - 482
  - 465
  - 470
  - 474
  - 475
  - 476
  dulwich.repo.Repo:
  - 2432
  - 2402
  - 2407
  - 1320
  - 1771
  - 2412
  - 2421
  - 1878
  - 1756
  - 2397
  dulwich.repo.Repo.__enter__:
  - 2258
  dulwich.repo.Repo.__exit__:
  - 2267
  - 2268
  dulwich.repo.Repo.__init__:
  - 1411
  - 1416
  - 1421
  - 1422
  - 1423
  - 1427
  - 1430
  - 1433
  - 1434
  - 1438
  - 1439
  - 1446
  - 1449
  - 1451
  - 1452
  - 1455
  - 1456
  - 1458
  - 1460
  - 1461
  - 1462
  - 1464
  - 1466
  - 1467
  - 1468
  - 1469
  - 1348
  - 1356
  - 1357
  - 1358
  - 1359
  - 1360
  - 1361
  - 1362
  - 1365
  - 1366
  - 1375
  - 1376
  - 1377
  - 1378
  - 1379
  - 1384
  - 1385
  - 1387
  - 1388
  - 1389
  - 1396
  - 1397
  - 1403
  - 1405
  - 1407
  dulwich.repo.Repo.__repr__:
  - 2035
  dulwich.repo.Repo._del_named_file:
  - 1668
  dulwich.repo.Repo._determine_file_mode:
  - 1603
  - 1604
  - 1605
  - 1607
  - 1609
  - 1612
  - 1614
  - 1599
  dulwich.repo.Repo._determine_symlinks:
  - 1622
  dulwich.repo.Repo._get_config_condition_matchers:
  - 1888
  - 1969
  - 1970
  dulwich.repo.Repo._get_config_condition_matchers.<lambda1>:
  - 1969
  dulwich.repo.Repo._get_config_condition_matchers.<lambda2>:
  - 1970
  dulwich.repo.Repo._get_config_condition_matchers.match_gitdir:
  - 1922
  - 1923
  - 1925
  - 1929
  - 1898
  - 1935
  - 1936
  - 1938
  - 1908
  - 1914
  - 1919
  dulwich.repo.Repo._get_config_condition_matchers.match_onbranch:
  - 1954
  - 1959
  - 1961
  - 1964
  - 1944
  dulwich.repo.Repo._get_shared_repository_permissions:
  - 1632
  - 1640
  - 1638
  - 1639
  dulwich.repo.Repo._init_maybe_bare:
  - 2059
  - 2060
  - 2061
  - 2062
  - 2063
  - 2064
  - 2069
  - 2070
  - 2073
  - 2074
  - 2075
  - 2076
  - 2077
  - 2079
  - 2080
  - 2081
  - 2085
  - 2086
  - 2087
  - 2090
  - 2092
  - 2095
  - 2096
  dulwich.repo.Repo._init_new_working_directory:
  - 2176
  - 2177
  - 2180
  - 2184
  - 2185
  - 2186
  - 2190
  - 2191
  - 2192
  - 2195
  - 2196
  - 2197
  - 2198
  - 2199
  - 2200
  - 2201
  - 2202
  - 2155
  - 2164
  - 2165
  - 2166
  - 2167
  - 2168
  - 2169
  - 2170
  - 2172
  - 2173
  - 2174
  - 2175
  dulwich.repo.Repo._put_named_file:
  - 1664
  - 1645
  - 1651
  - 1654
  - 1657
  - 1658
  - 1659
  - 1661
  - 1663
  dulwich.repo.Repo._read_gitattributes:
  - 2277
  - 2279
  - 2280
  - 2281
  - 2282
  - 2283
  - 2286
  - 2287
  - 2293
  - 2294
  - 2297
  - 2299
  - 2271
  dulwich.repo.Repo._reflog_path:
  - 1536
  - 1539
  - 1540
  dulwich.repo.Repo._sparse_checkout_file_path:
  - 2400
  - 2399
  dulwich.repo.Repo._write_reflog:
  - 1496
  - 1499
  - 1502
  - 1506
  - 1507
  - 1508
  - 1509
  - 1510
  - 1511
  - 1512
  - 1513
  - 1514
  - 1515
  - 1516
  - 1517
  - 1518
  - 1519
  - 1520
  - 1522
  - 1523
  - 1524
  - 1532
  - 1533
  dulwich.repo.Repo.clone:
  - 1794
  - 1810
  - 1812
  - 1813
  - 1816
  - 1817
  - 1818
  - 1821
  - 1823
  - 1826
  - 1827
  - 1828
  - 1833
  - 1836
  - 1837
  - 1838
  - 1839
  - 1842
  - 1843
  - 1844
  - 1848
  - 1850
  - 1854
  - 1855
  - 1860
  - 1861
  - 1865
  - 1866
  - 1868
  - 1871
  - 1874
  dulwich.repo.Repo.close:
  - 2250
  - 2251
  - 2253
  - 2254
  dulwich.repo.Repo.commondir:
  - 1589
  dulwich.repo.Repo.configure_for_cone_mode:
  - 2404
  - 2405
  dulwich.repo.Repo.controldir:
  - 1585
  dulwich.repo.Repo.discover:
  - 1570
  - 1573
  - 1575
  - 1576
  - 1579
  - 1580
  - 1581
  - 1562
  dulwich.repo.Repo.get_blob_normalizer:
  - 2310
  - 2314
  - 2315
  - 2318
  - 2319
  - 2320
  - 2323
  - 2326
  dulwich.repo.Repo.get_config:
  - 1994
  - 2000
  - 2003
  - 2004
  - 2006
  dulwich.repo.Repo.get_description:
  - 2027
  - 2029
  - 2030
  - 2023
  dulwich.repo.Repo.get_gitattributes:
  - 2331
  - 2351
  - 2355
  - 2357
  - 2358
  - 2364
  - 2367
  - 2368
  - 2371
  - 2372
  - 2373
  - 2374
  - 2375
  - 2380
  - 2381
  - 2382
  - 2383
  - 2384
  - 2385
  - 2388
  - 2389
  - 2390
  - 2391
  - 2392
  - 2393
  - 2395
  dulwich.repo.Repo.get_named_file:
  - 1697
  - 1677
  - 1691
  - 1692
  - 1693
  - 1694
  - 1695
  dulwich.repo.Repo.get_rebase_state_manager:
  - 2011
  - 2020
  - 2019
  dulwich.repo.Repo.get_sparse_checkout_patterns:
  - 2419
  - 2414
  dulwich.repo.Repo.get_worktree:
  - 1482
  - 1475
  dulwich.repo.Repo.get_worktree_config:
  - 1986
  - 1987
  - 1989
  - 1976
  - 1983
  dulwich.repo.Repo.has_index:
  - 1751
  dulwich.repo.Repo.index_path:
  - 1702
  - 1703
  dulwich.repo.Repo.infer_cone_mode:
  - 2409
  - 2410
  dulwich.repo.Repo.init:
  - 2116
  - 2128
  - 2129
  - 2130
  - 2131
  - 2132
  - 2133
  - 2134
  - 2135
  - 2136
  dulwich.repo.Repo.init_bare:
  - 2217
  - 2231
  - 2232
  - 2233
  - 2234
  - 2235
  - 2236
  dulwich.repo.Repo.open_index:
  - 1730
  - 1734
  - 1735
  - 1706
  - 1738
  - 1741
  - 1743
  - 1744
  - 1714
  - 1718
  - 1719
  - 1723
  - 1726
  - 1727
  dulwich.repo.Repo.read_reflog:
  - 1553
  - 1555
  - 1556
  - 1543
  dulwich.repo.Repo.reset_index:
  - 1880
  - 1885
  dulwich.repo.Repo.set_cone_mode_patterns:
  - 2440
  - 2434
  dulwich.repo.Repo.set_description:
  - 2044
  - 2039
  dulwich.repo.Repo.set_sparse_checkout_patterns:
  - 2430
  - 2423
  dulwich.repo.Repo.stage:
  - 1769
  - 1764
  dulwich.repo.Repo.unstage:
  - 1779
  - 1773
  dulwich.repo.UnsupportedExtension:
  - 1308
  dulwich.repo.UnsupportedExtension.__init__:
  - 1311
  dulwich.repo.UnsupportedVersion:
  - 1296
  dulwich.repo.UnsupportedVersion.__init__:
  - 1299
  dulwich.repo._get_default_identity:
  - 224
  - 193
  - 194
  - 195
  - 206
  - 210
  - 211
  - 214
  - 216
  - 217
  - 220
  - 221
  - 222
  dulwich.repo._set_filesystem_hidden:
  - 352
  - 357
  - 362
  - 366
  - 367
  - 368
  dulwich.repo.check_user_identity:
  - 280
  - 288
  - 291
  - 293
  dulwich.repo.get_user_identity:
  - 256
  - 257
  - 258
  - 259
  - 229
  - 261
  - 264
  - 266
  - 269
  - 270
  - 271
  - 272
  - 273
  - 274
  - 252
  - 253
  - 254
  - 255
  dulwich.repo.parse_graftpoints:
  - 323
  - 324
  - 300
  - 314
  - 315
  - 317
  - 318
  - 319
  dulwich.repo.parse_shared_repository:
  - 387
  - 388
  - 419
  - 421
  - 391
  - 392
  - 425
  - 427
  - 429
  - 400
  - 402
  - 406
  - 377
  - 410
  - 414
  dulwich.repo.read_gitfile:
  - 1281
  - 1290
  - 1292
  - 1289
  dulwich.repo.serialize_graftpoints:
  - 331
  - 343
  - 344
  - 345
  - 347
  - 348
  dulwich.rerere:
  - 1
  - 21
  dulwich.rerere.RerereCache:
  - 165
  dulwich.rerere.RerereCache.__init__:
  - 168
  - 173
  - 174
  dulwich.rerere.RerereCache._ensure_cache_dir:
  - 192
  - 193
  dulwich.rerere.RerereCache._get_conflict_dir:
  - 204
  - 196
  dulwich.rerere.RerereCache._get_postimage_path:
  - 218
  - 226
  dulwich.rerere.RerereCache._get_preimage_path:
  - 215
  - 207
  dulwich.rerere.RerereCache.apply_resolution:
  - 305
  - 314
  - 315
  dulwich.rerere.RerereCache.clear:
  - 352
  - 353
  - 355
  - 356
  - 357
  - 346
  - 347
  - 351
  dulwich.rerere.RerereCache.diff:
  - 417
  - 418
  - 423
  - 424
  - 402
  - 410
  - 411
  dulwich.rerere.RerereCache.forget:
  - 324
  - 329
  - 332
  - 333
  - 335
  - 341
  dulwich.rerere.RerereCache.from_repo:
  - 188
  - 180
  - 189
  dulwich.rerere.RerereCache.gc:
  - 360
  - 365
  - 368
  - 370
  - 371
  - 372
  - 375
  - 378
  - 379
  - 380
  - 381
  dulwich.rerere.RerereCache.get_resolution:
  - 288
  - 296
  - 299
  - 300
  dulwich.rerere.RerereCache.has_resolution:
  - 285
  - 276
  - 284
  dulwich.rerere.RerereCache.record_conflict:
  - 229
  - 238
  - 241
  - 244
  - 245
  - 248
  - 249
  - 252
  - 253
  - 254
  dulwich.rerere.RerereCache.record_resolution:
  - 259
  - 266
  - 269
  - 270
  - 272
  - 273
  dulwich.rerere.RerereCache.status:
  - 384
  - 389
  - 393
  - 394
  - 395
  - 396
  - 397
  - 399
  dulwich.rerere._compute_conflict_id:
  - 27
  - 38
  dulwich.rerere._extract_conflict_regions:
  - 97
  - 104
  - 73
  - 105
  - 108
  - 111
  - 112
  - 113
  - 82
  - 85
  - 86
  - 93
  - 94
  dulwich.rerere._has_conflict_markers:
  - 121
  dulwich.rerere._normalize_conflict_markers:
  - 64
  - 65
  - 67
  - 69
  - 42
  - 53
  - 56
  - 58
  - 59
  - 61
  - 62
  dulwich.rerere._remove_conflict_markers:
  - 161
  - 133
  - 144
  - 148
  - 149
  - 152
  - 155
  - 158
  - 159
  dulwich.rerere.is_rerere_autoupdate:
  - 452
  - 461
  - 462
  - 464
  - 465
  - 466
  dulwich.rerere.is_rerere_enabled:
  - 432
  - 441
  - 442
  - 444
  - 445
  - 446
  dulwich.rerere.rerere_auto:
  - 517
  - 518
  - 521
  - 524
  - 525
  - 526
  - 528
  - 529
  - 530
  - 476
  - 491
  - 492
  - 495
  - 499
  - 500
  - 502
  - 505
  - 507
  - 510
  - 511
  dulwich.server:
  - 1766
  - 1767
  - 83
  - 150
  - 23
  dulwich.server.AckGraphWalkerImpl:
  - 700
  dulwich.server.AckGraphWalkerImpl.__init__:
  - 703
  dulwich.server.AckGraphWalkerImpl.ack:
  - 711
  dulwich.server.AckGraphWalkerImpl.handle_done:
  - 719
  dulwich.server.Backend:
  - 154
  dulwich.server.Backend.open_repository:
  - 157
  dulwich.server.BackendRepo:
  - 169
  dulwich.server.BackendRepo.find_missing_objects:
  - 206
  dulwich.server.BackendRepo.get_peeled:
  - 186
  dulwich.server.BackendRepo.get_refs:
  - 179
  dulwich.server.DictBackend:
  - 220
  dulwich.server.DictBackend.__init__:
  - 225
  dulwich.server.DictBackend.open_repository:
  - 258
  - 259
  - 233
  - 244
  - 246
  - 250
  - 252
  - 253
  dulwich.server.FileSystemBackend:
  - 268
  dulwich.server.FileSystemBackend.__init__:
  - 276
  - 277
  - 271
  dulwich.server.FileSystemBackend.open_repository:
  - 288
  - 290
  - 291
  - 292
  - 293
  - 294
  - 295
  - 296
  - 298
  - 280
  dulwich.server.Handler:
  - 302
  dulwich.server.Handler.__init__:
  - 307
  dulwich.server.Handler.handle:
  - 319
  dulwich.server.MultiAckDetailedGraphWalkerImpl:
  - 1183
  dulwich.server.MultiAckDetailedGraphWalkerImpl.__init__:
  - 1186
  dulwich.server.MultiAckDetailedGraphWalkerImpl.ack:
  - 1201
  - 1202
  - 1195
  dulwich.server.MultiAckDetailedGraphWalkerImpl.handle_done:
  - 1250
  - 1256
  - 1266
  - 1267
  - 1269
  - 1241
  dulwich.server.MultiAckDetailedGraphWalkerImpl.next:
  - 1216
  - 1225
  - 1227
  - 1229
  - 1232
  - 1233
  - 1205
  - 1211
  - 1212
  - 1213
  - 1214
  - 1215
  dulwich.server.MultiAckGraphWalkerImpl:
  - 1098
  dulwich.server.MultiAckGraphWalkerImpl.__init__:
  - 1101
  dulwich.server.MultiAckGraphWalkerImpl.ack:
  - 1111
  - 1116
  - 1117
  - 1118
  - 1119
  dulwich.server.MultiAckGraphWalkerImpl.handle_done:
  - 1159
  - 1165
  - 1175
  - 1176
  - 1178
  - 1150
  dulwich.server.MultiAckGraphWalkerImpl.next:
  - 1124
  - 1130
  - 1131
  - 1132
  - 1136
  - 1137
  - 1139
  - 1140
  - 1141
  - 1142
  - 1144
  dulwich.server.PackHandler:
  - 324
  dulwich.server.PackHandler.__init__:
  - 336
  - 329
  dulwich.server.PackHandler.capabilities:
  - 344
  dulwich.server.PackHandler.has_capability:
  - 393
  - 401
  dulwich.server.PackHandler.innocuous_capabilities:
  - 349
  - 359
  dulwich.server.PackHandler.notify_done:
  - 408
  dulwich.server.PackHandler.required_capabilities:
  - 364
  dulwich.server.PackHandler.set_client_capabilities:
  - 384
  - 385
  - 389
  - 390
  - 368
  - 375
  - 376
  - 377
  - 378
  - 380
  dulwich.server.ReceivePackHandler:
  - 1274
  dulwich.server.ReceivePackHandler.__init__:
  - 1284
  - 1293
  - 1294
  dulwich.server.ReceivePackHandler._apply_pack:
  - 1344
  - 1345
  - 1346
  - 1316
  - 1348
  - 1354
  - 1356
  - 1359
  - 1360
  - 1365
  - 1336
  - 1337
  - 1370
  - 1340
  - 1375
  dulwich.server.ReceivePackHandler._on_post_receive:
  - 1410
  - 1415
  - 1416
  - 1419
  - 1420
  - 1421
  - 1423
  dulwich.server.ReceivePackHandler._report_status:
  - 1378
  - 1383
  - 1384
  - 1385
  - 1399
  - 1400
  - 1401
  - 1402
  - 1403
  - 1405
  - 1406
  - 1407
  dulwich.server.ReceivePackHandler._report_status.<lambda1>:
  - 1385
  dulwich.server.ReceivePackHandler._report_status.flush:
  - 1390
  - 1391
  dulwich.server.ReceivePackHandler.capabilities:
  - 1299
  dulwich.server.ReceivePackHandler.handle:
  - 1426
  - 1427
  - 1428
  - 1429
  - 1431
  - 1433
  - 1434
  - 1435
  - 1438
  - 1441
  - 1443
  - 1445
  - 1446
  - 1450
  - 1453
  - 1456
  - 1457
  - 1461
  - 1462
  - 1463
  - 1466
  - 1468
  - 1472
  - 1473
  dulwich.server.SingleAckGraphWalkerImpl:
  - 1028
  dulwich.server.SingleAckGraphWalkerImpl.__init__:
  - 1031
  dulwich.server.SingleAckGraphWalkerImpl.ack:
  - 1040
  - 1045
  - 1046
  - 1047
  dulwich.server.SingleAckGraphWalkerImpl.handle_done:
  - 1068
  - 1077
  - 1078
  - 1080
  - 1086
  dulwich.server.SingleAckGraphWalkerImpl.next:
  - 1056
  - 1058
  - 1060
  - 1061
  - 1062
  - 1050
  - 1055
  dulwich.server.TCPGitRequestHandler:
  - 1551
  dulwich.server.TCPGitRequestHandler.__init__:
  - 1560
  - 1569
  dulwich.server.TCPGitRequestHandler.handle:
  - 1574
  - 1575
  - 1576
  - 1577
  - 1579
  - 1580
  - 1582
  - 1583
  dulwich.server.TCPGitServer:
  - 1587
  dulwich.server.TCPGitServer.__init__:
  - 1617
  - 1625
  - 1626
  - 1627
  - 1629
  - 1630
  dulwich.server.TCPGitServer._make_handler:
  - 1608
  - 1598
  dulwich.server.TCPGitServer.handle_error:
  - 1660
  - 1654
  dulwich.server.TCPGitServer.verify_request:
  - 1637
  - 1646
  dulwich.server.UploadArchiveHandler:
  - 1477
  dulwich.server.UploadArchiveHandler.__init__:
  - 1494
  - 1486
  - 1495
  dulwich.server.UploadArchiveHandler.handle:
  - 1504
  - 1505
  - 1506
  - 1538
  - 1508
  - 1539
  - 1513
  - 1515
  - 1518
  - 1520
  - 1522
  - 1530
  - 1524
  - 1526
  - 1529
  - 1498
  - 1531
  - 1534
  dulwich.server.UploadArchiveHandler.handle.write:
  - 1501
  dulwich.server.UploadPackHandler:
  - 413
  dulwich.server.UploadPackHandler.__init__:
  - 432
  - 433
  - 423
  dulwich.server.UploadPackHandler._start_pack_send_phase:
  - 482
  - 473
  - 474
  - 477
  - 478
  dulwich.server.UploadPackHandler._start_pack_send_phase.write_data:
  - 489
  dulwich.server.UploadPackHandler.capabilities:
  - 443
  dulwich.server.UploadPackHandler.get_tagged:
  - 512
  - 513
  - 514
  - 523
  - 524
  - 525
  - 526
  - 498
  - 508
  - 510
  - 511
  dulwich.server.UploadPackHandler.handle:
  - 576
  - 577
  - 581
  - 582
  - 584
  - 554
  - 590
  - 530
  - 567
  - 571
  - 540
  - 574
  dulwich.server.UploadPackHandler.handle.wants_wrapper:
  - 551
  dulwich.server.UploadPackHandler.progress:
  - 466
  dulwich.server.UploadPackHandler.required_capabilities:
  - 458
  dulwich.server._ProtocolGraphWalker:
  - 724
  dulwich.server._ProtocolGraphWalker.__init__:
  - 744
  - 760
  - 762
  - 761
  dulwich.server._ProtocolGraphWalker._handle_shallow_request:
  - 928
  - 929
  - 932
  - 933
  - 934
  - 936
  - 940
  - 944
  - 921
  - 927
  dulwich.server._ProtocolGraphWalker.ack:
  - 882
  - 879
  - 871
  dulwich.server._ProtocolGraphWalker.all_wants_satisfied:
  - 1008
  - 1001
  dulwich.server._ProtocolGraphWalker.determine_wants:
  - 771
  - 790
  - 791
  - 792
  - 793
  - 795
  - 801
  - 802
  - 803
  - 806
  - 807
  - 810
  - 811
  - 812
  - 813
  - 814
  - 818
  - 820
  - 824
  - 825
  - 827
  - 828
  - 829
  - 831
  - 835
  - 836
  - 838
  - 839
  - 841
  - 842
  - 844
  - 845
  - 847
  dulwich.server._ProtocolGraphWalker.handle_done:
  - 981
  - 990
  dulwich.server._ProtocolGraphWalker.nak:
  - 868
  dulwich.server._ProtocolGraphWalker.next:
  - 898
  - 900
  - 890
  - 894
  - 895
  dulwich.server._ProtocolGraphWalker.notify_done:
  - 963
  - 965
  dulwich.server._ProtocolGraphWalker.read_proto_line:
  - 909
  - 918
  dulwich.server._ProtocolGraphWalker.reset:
  - 885
  dulwich.server._ProtocolGraphWalker.send_ack:
  - 968
  - 974
  dulwich.server._ProtocolGraphWalker.send_nak:
  - 977
  - 978
  dulwich.server._ProtocolGraphWalker.set_ack_type:
  - 1011
  - 1021
  dulwich.server._ProtocolGraphWalker.set_wants:
  - 993
  dulwich.server._ProtocolGraphWalker.unread_proto_line:
  - 864
  - 857
  - 865
  - 863
  dulwich.server._ProtocolGraphWalker.update_shallow:
  - 960
  - 949
  - 955
  - 956
  - 957
  - 958
  dulwich.server._all_wants_satisfied:
  - 677
  - 686
  - 687
  - 689
  - 692
  - 693
  dulwich.server._split_proto_line:
  - 614
  - 617
  - 619
  - 621
  - 623
  - 624
  - 596
  - 631
  - 634
  - 636
  dulwich.server._want_satisfied:
  - 643
  - 653
  - 656
  - 657
  - 659
  - 662
  - 663
  - 665
  - 667
  - 669
  - 670
  dulwich.server.generate_info_refs:
  - 1739
  - 1740
  - 1741
  dulwich.server.generate_objects_info_packs:
  - 1745
  - 1746
  - 1747
  dulwich.server.main:
  - 1696
  - 1667
  - 1670
  - 1671
  - 1678
  - 1686
  - 1688
  - 1689
  - 1694
  - 1695
  dulwich.server.serve_command:
  - 1731
  - 1732
  - 1734
  - 1706
  - 1719
  - 1720
  - 1722
  - 1724
  dulwich.server.serve_command.send_fn:
  - 1728
  - 1729
  dulwich.server.update_server_info:
  - 1760
  - 1761
  - 1762
  - 1751
  - 1756
  - 1757
  dulwich.sparse_patterns:
  - 22
  dulwich.sparse_patterns.BlobNotFoundError:
  - 50
  dulwich.sparse_patterns.SparseCheckoutConflictError:
  - 46
  dulwich.sparse_patterns.apply_included_paths:
  - 154
  - 169
  - 170
  - 190
  - 191
  - 193
  - 194
  - 195
  - 197
  - 199
  - 202
  - 203
  - 205
  - 207
  - 209
  - 210
  - 216
  - 222
  - 226
  - 233
  - 235
  - 236
  - 238
  - 239
  - 240
  dulwich.sparse_patterns.apply_included_paths.local_modifications_exist:
  - 173
  - 175
  - 176
  - 181
  - 182
  - 184
  - 186
  dulwich.sparse_patterns.compute_included_paths_cone:
  - 128
  - 129
  - 132
  - 134
  - 135
  - 138
  - 139
  - 141
  - 142
  - 146
  - 96
  - 113
  - 115
  - 116
  - 118
  - 120
  - 122
  - 123
  - 124
  - 126
  dulwich.sparse_patterns.compute_included_paths_full:
  - 73
  - 85
  - 86
  - 87
  - 88
  - 90
  - 91
  dulwich.sparse_patterns.determine_included_paths:
  - 56
  - 66
  - 67
  - 69
  dulwich.sparse_patterns.match_gitignore_patterns:
  - 355
  - 360
  - 297
  - 330
  - 362
  - 332
  - 333
  - 366
  - 369
  - 371
  - 340
  - 341
  - 343
  - 345
  - 346
  - 350
  dulwich.sparse_patterns.parse_sparse_patterns:
  - 288
  - 267
  - 268
  - 269
  - 272
  - 273
  - 244
  - 276
  - 277
  - 284
  dulwich.stash:
  - 67
  - 22
  - 55
  dulwich.stash.CommitKwargs:
  - 61
  dulwich.stash.Stash:
  - 71
  dulwich.stash.Stash.__getitem__:
  - 378
  - 379
  dulwich.stash.Stash.__init__:
  - 77
  dulwich.stash.Stash.__len__:
  - 382
  - 383
  dulwich.stash.Stash._reflog_path:
  - 88
  dulwich.stash.Stash.drop:
  - 108
  - 109
  - 110
  - 111
  - 112
  - 115
  dulwich.stash.Stash.from_repo:
  - 104
  - 105
  dulwich.stash.Stash.pop:
  - 131
  - 132
  - 263
  - 137
  - 265
  - 271
  - 272
  - 277
  - 152
  - 282
  - 285
  - 159
  - 160
  - 162
  - 164
  - 169
  - 185
  - 188
  - 192
  - 195
  - 197
  - 198
  - 203
  - 211
  - 216
  - 218
  - 247
  - 221
  - 222
  - 226
  - 232
  - 235
  - 238
  - 239
  - 240
  - 243
  - 245
  - 246
  - 119
  - 250
  - 252
  - 253
  - 254
  dulwich.stash.Stash.pop.symlink_fn:
  - 180
  - 181
  - 182
  dulwich.stash.Stash.push:
  - 295
  - 328
  - 359
  - 330
  - 360
  - 346
  - 366
  - 303
  - 304
  - 335
  - 306
  - 367
  - 340
  - 309
  - 310
  - 341
  - 344
  - 314
  dulwich.stash.Stash.stashes:
  - 97
  - 98
  - 91
  dulwich.stripspace:
  - 20
  dulwich.stripspace.stripspace:
  - 128
  - 34
  - 57
  - 61
  - 65
  - 68
  - 70
  - 72
  - 76
  - 79
  - 83
  - 86
  - 90
  - 93
  - 102
  - 103
  - 106
  - 107
  - 112
  - 113
  - 114
  - 117
  - 120
  - 125
  dulwich.stripspace.stripspace.is_blank:
  - 99
  dulwich.submodule:
  - 36
  - 22
  dulwich.submodule.ensure_submodule_placeholder:
  - 97
  - 66
  - 100
  - 101
  - 77
  - 78
  - 81
  - 84
  - 87
  - 88
  - 91
  - 92
  - 93
  dulwich.submodule.iter_cached_submodules:
  - 56
  - 59
  - 45
  - 54
  dulwich.trailers:
  - 21
  dulwich.trailers.Trailer:
  - 43
  dulwich.trailers.Trailer.__eq__:
  - 64
  - 72
  dulwich.trailers.Trailer.__init__:
  - 52
  dulwich.trailers.Trailer.__repr__:
  - 81
  dulwich.trailers.Trailer.__str__:
  - 89
  dulwich.trailers._is_trailer_block:
  - 248
  - 225
  - 196
  - 231
  - 238
  - 239
  - 240
  - 209
  - 242
  - 213
  - 216
  - 222
  - 223
  dulwich.trailers._parse_trailer_lines:
  - 258
  - 270
  - 271
  - 273
  - 275
  - 276
  - 281
  - 282
  - 284
  - 289
  - 290
  - 294
  - 295
  - 296
  - 300
  - 301
  - 302
  - 306
  - 307
  dulwich.trailers.add_trailer_to_message:
  - 386
  - 391
  - 392
  - 395
  - 396
  - 399
  - 403
  - 410
  - 414
  - 418
  - 419
  - 420
  - 422
  - 423
  - 424
  - 425
  - 427
  - 431
  - 432
  - 433
  - 434
  - 435
  - 437
  - 438
  - 440
  - 446
  - 449
  - 451
  - 337
  - 358
  - 360
  - 363
  - 365
  - 366
  - 372
  - 374
  - 377
  - 378
  - 380
  - 383
  dulwich.trailers.format_trailers:
  - 321
  - 313
  - 324
  - 325
  dulwich.trailers.parse_trailers:
  - 135
  - 136
  - 141
  - 145
  - 146
  - 149
  - 154
  - 158
  - 161
  - 163
  - 164
  - 168
  - 172
  - 178
  - 185
  - 186
  - 188
  - 189
  - 192
  - 101
  - 118
  - 123
  - 125
  - 127
  dulwich.walk:
  - 38
  - 22
  dulwich.walk.WalkEntry:
  - 61
  dulwich.walk.WalkEntry.__init__:
  - 64
  dulwich.walk.WalkEntry.__repr__:
  - 163
  - 164
  dulwich.walk.WalkEntry.changes:
  - 128
  - 132
  - 133
  - 140
  - 142
  - 146
  - 147
  - 151
  - 152
  - 79
  - 90
  - 91
  - 93
  - 96
  - 98
  - 99
  - 101
  - 102
  - 110
  - 112
  - 113
  - 116
  - 118
  - 125
  dulwich.walk.WalkEntry.changes.<lambda1>:
  - 121
  dulwich.walk.Walker:
  - 276
  dulwich.walk.Walker.__init__:
  - 326
  - 329
  - 298
  - 334
  - 338
  - 339
  - 340
  - 348
  - 349
  dulwich.walk.Walker.__iter__:
  - 473
  - 474
  dulwich.walk.Walker._change_matches:
  - 368
  - 373
  - 374
  - 377
  - 378
  - 380
  dulwich.walk.Walker._next:
  - 449
  - 450
  - 443
  - 444
  - 445
  - 446
  - 447
  dulwich.walk.Walker._path_matches:
  - 352
  - 354
  - 356
  - 357
  - 359
  - 360
  - 361
  dulwich.walk.Walker._reorder:
  - 458
  - 466
  - 467
  - 468
  - 469
  dulwich.walk.Walker._should_return:
  - 385
  - 393
  - 395
  - 397
  - 400
  - 403
  - 404
  - 406
  - 407
  - 411
  - 412
  - 415
  - 416
  - 419
  - 423
  - 425
  - 426
  - 427
  - 428
  - 429
  - 433
  - 434
  - 435
  - 436
  dulwich.walk._CommitTimeQueue:
  - 168
  dulwich.walk._CommitTimeQueue.__init__:
  - 176
  - 177
  - 178
  - 184
  - 185
  dulwich.walk._CommitTimeQueue._exclude_parents:
  - 209
  - 210
  - 211
  - 217
  - 218
  - 219
  dulwich.walk._CommitTimeQueue._push:
  - 192
  - 193
  - 196
  - 199
  - 200
  - 201
  - 202
  dulwich.walk._CommitTimeQueue.next:
  - 225
  - 258
  - 227
  - 228
  - 230
  - 263
  - 232
  - 233
  - 266
  - 268
  - 237
  - 238
  - 239
  - 241
  - 251
  - 222
  dulwich.walk._topo_reorder:
  - 512
  - 481
  - 513
  - 492
  - 494
  - 495
  - 496
  - 497
  - 501
  - 504
  - 507
  - 509
  - 510
  - 511
  dulwich.web:
  - 929
  - 930
  - 73
  - 77
  - 23
  - 153
  - 122
  dulwich.web.ChunkReader:
  - 463
  dulwich.web.ChunkReader.__init__:
  - 466
  - 471
  dulwich.web.ChunkReader.read:
  - 488
  - 475
  - 485
  - 483
  dulwich.web.GunzipFilter:
  - 741
  dulwich.web.GunzipFilter.__call__:
  - 752
  - 755
  - 756
  - 760
  - 762
  dulwich.web.GunzipFilter.__init__:
  - 744
  dulwich.web.HTTPGitApplication:
  - 675
  - 679
  - 681
  - 682
  - 652
  - 664
  - 665
  - 666
  - 667
  - 668
  - 671
  dulwich.web.HTTPGitApplication.__call__:
  - 737
  - 714
  - 717
  - 723
  - 724
  - 726
  - 727
  - 731
  - 732
  - 733
  - 735
  dulwich.web.HTTPGitApplication.__init__:
  - 706
  - 707
  - 692
  - 702
  dulwich.web.HTTPGitRequest:
  - 574
  dulwich.web.HTTPGitRequest.__init__:
  - 587
  dulwich.web.HTTPGitRequest.add_header:
  - 603
  - 604
  dulwich.web.HTTPGitRequest.cache_forever:
  - 648
  - 647
  dulwich.web.HTTPGitRequest.error:
  - 640
  - 636
  - 638
  - 639
  dulwich.web.HTTPGitRequest.forbidden:
  - 632
  - 633
  - 629
  - 631
  dulwich.web.HTTPGitRequest.nocache:
  - 643
  dulwich.web.HTTPGitRequest.not_found:
  - 624
  - 625
  - 626
  - 622
  dulwich.web.HTTPGitRequest.respond:
  - 612
  - 613
  - 614
  - 615
  - 616
  - 617
  - 619
  dulwich.web.HandlerConstructor:
  - 128
  dulwich.web.HandlerConstructor.__call__:
  - 138
  - 150
  dulwich.web.LimitedInputFilter:
  - 766
  dulwich.web.LimitedInputFilter.__call__:
  - 777
  - 782
  - 783
  - 784
  - 785
  - 787
  dulwich.web.LimitedInputFilter.__init__:
  - 769
  dulwich.web.ServerHandlerLogger:
  - 808
  dulwich.web.ServerHandlerLogger.log_error:
  - 827
  - 828
  dulwich.web.ServerHandlerLogger.log_exception:
  - 816
  - 817
  dulwich.web.ServerHandlerLogger.log_message:
  - 824
  - 823
  dulwich.web.StartResponse:
  - 86
  dulwich.web.StartResponse.__call__:
  - 94
  - 95
  dulwich.web.WSGIRequestHandlerLogger:
  - 832
  dulwich.web.WSGIRequestHandlerLogger.handle:
  - 864
  - 867
  - 855
  - 856
  - 857
  - 860
  - 863
  dulwich.web.WSGIRequestHandlerLogger.log_error:
  - 851
  - 852
  dulwich.web.WSGIRequestHandlerLogger.log_exception:
  - 840
  - 841
  dulwich.web.WSGIRequestHandlerLogger.log_message:
  - 848
  - 847
  dulwich.web.WSGIServerLogger:
  - 871
  dulwich.web.WSGIServerLogger.handle_error:
  - 874
  - 875
  dulwich.web._LengthLimitedFile:
  - 495
  dulwich.web._LengthLimitedFile.read:
  - 515
  - 520
  - 507
  - 517
  dulwich.web._chunk_iter:
  - 454
  - 455
  - 456
  - 457
  - 459
  dulwich.web._url_to_path:
  - 278
  dulwich.web.cache_forever_headers:
  - 171
  - 179
  - 180
  - 182
  - 183
  dulwich.web.date_time_string:
  - 221
  - 219
  - 220
  - 189
  dulwich.web.get_idx_file:
  - 355
  - 365
  - 366
  - 367
  - 368
  - 370
  dulwich.web.get_info_packs:
  - 448
  - 449
  - 436
  - 446
  - 447
  dulwich.web.get_info_refs:
  - 388
  - 389
  - 391
  - 393
  - 395
  - 396
  - 397
  - 399
  - 400
  - 401
  - 403
  - 404
  - 410
  - 413
  - 415
  - 421
  - 422
  - 423
  - 427
  - 428
  - 429
  - 430
  - 378
  dulwich.web.get_info_refs.write_fn:
  - 408
  - 407
  dulwich.web.get_loose_object:
  - 320
  - 322
  - 324
  - 325
  - 326
  - 303
  - 313
  - 314
  - 315
  - 316
  - 317
  dulwich.web.get_pack_file:
  - 332
  - 342
  - 343
  - 344
  - 345
  - 347
  dulwich.web.get_repo:
  - 246
  - 247
  dulwich.web.get_text_file:
  - 294
  - 295
  - 296
  - 297
  - 284
  dulwich.web.handle_service_request:
  - 544
  - 545
  - 548
  - 550
  - 552
  - 553
  - 559
  - 528
  - 560
  - 563
  - 570
  - 566
  - 567
  - 538
  - 539
  - 540
  - 541
  - 543
  dulwich.web.handle_service_request.write_fn:
  - 556
  - 557
  dulwich.web.main:
  - 900
  - 902
  - 905
  - 907
  - 912
  - 881
  - 913
  - 914
  - 884
  - 885
  - 921
  - 892
  - 926
  dulwich.web.make_wsgi_chain:
  - 800
  - 803
  - 796
  dulwich.web.send_file:
  - 261
  - 262
  - 265
  - 267
  - 268
  - 270
  - 272
  - 274
  - 253
  dulwich.web.url_prefix:
  - 234
  - 242
  dulwich.whitespace:
  - 21
  dulwich.whitespace.WhitespaceChecker:
  - 113
  dulwich.whitespace.WhitespaceChecker.__init__:
  - 116
  dulwich.whitespace.WhitespaceChecker.check_content:
  - 196
  - 199
  - 200
  - 204
  - 205
  - 208
  - 212
  - 214
  - 215
  - 187
  - 220
  - 222
  dulwich.whitespace.WhitespaceChecker.check_line:
  - 138
  - 139
  - 141
  - 144
  - 147
  - 150
  - 151
  - 152
  - 157
  - 159
  - 160
  - 162
  - 163
  - 165
  - 171
  - 172
  - 173
  - 174
  - 176
  - 180
  - 181
  - 182
  - 126
  dulwich.whitespace.fix_whitespace_errors:
  - 256
  - 257
  - 258
  - 260
  - 263
  - 264
  - 271
  - 278
  - 279
  - 282
  - 283
  - 287
  - 289
  - 290
  - 292
  - 232
  - 242
  - 245
  - 249
  - 250
  - 251
  dulwich.whitespace.parse_whitespace_config:
  - 58
  - 66
  - 67
  - 69
  - 70
  - 73
  - 74
  - 75
  - 77
  - 78
  - 80
  - 84
  - 85
  - 86
  - 90
  - 92
  - 93
  - 94
  - 96
  - 97
  - 101
  - 102
  - 105
  - 106
  - 107
  dulwich.worktree:
  - 22
  dulwich.worktree.WorkTree:
  - 278
  dulwich.worktree.WorkTree.__init__:
  - 292
  - 293
  - 294
  - 297
  - 285
  dulwich.worktree.WorkTree._sparse_checkout_file_path:
  - 747
  - 748
  dulwich.worktree.WorkTree.commit:
  - 515
  - 516
  - 637
  - 518
  - 519
  - 645
  - 522
  - 523
  - 652
  - 653
  - 526
  - 639
  - 528
  - 654
  - 656
  - 531
  - 658
  - 663
  - 538
  - 668
  - 541
  - 673
  - 676
  - 678
  - 551
  - 553
  - 554
  - 685
  - 558
  - 569
  - 570
  - 571
  - 576
  - 450
  - 582
  - 585
  - 591
  - 634
  - 595
  - 598
  - 600
  - 603
  - 604
  - 484
  - 485
  - 614
  - 635
  - 617
  - 618
  - 491
  - 492
  - 493
  - 494
  - 496
  - 625
  - 633
  - 627
  - 500
  - 501
  - 502
  - 503
  - 504
  - 505
  - 628
  - 507
  - 629
  - 509
  - 510
  - 511
  dulwich.worktree.WorkTree.configure_for_cone_mode:
  - 751
  - 752
  - 753
  - 754
  - 755
  dulwich.worktree.WorkTree.get_sparse_checkout_patterns:
  - 768
  - 776
  - 773
  - 775
  dulwich.worktree.WorkTree.infer_cone_mode:
  - 761
  - 758
  - 759
  dulwich.worktree.WorkTree.reset_index:
  - 704
  - 705
  - 737
  - 707
  - 710
  - 712
  - 713
  - 714
  - 716
  - 720
  - 690
  - 735
  - 734
  - 703
  dulwich.worktree.WorkTree.reset_index.symlink_fn:
  - 731
  - 732
  dulwich.worktree.WorkTree.set_cone_mode_patterns:
  - 804
  - 805
  - 806
  - 808
  - 809
  - 810
  - 797
  dulwich.worktree.WorkTree.set_sparse_checkout_patterns:
  - 781
  - 788
  - 789
  - 791
  - 792
  - 793
  - 794
  dulwich.worktree.WorkTree.stage:
  - 306
  - 311
  - 313
  - 315
  - 324
  - 325
  - 326
  - 327
  - 328
  - 329
  - 334
  - 335
  - 337
  - 345
  - 346
  - 347
  - 354
  - 360
  - 361
  - 362
  - 363
  - 364
  dulwich.worktree.WorkTree.unstage:
  - 416
  - 386
  - 414
  - 389
  - 390
  - 393
  - 394
  - 367
  - 431
  - 375
  - 408
  - 377
  - 380
  - 381
  - 413
  - 383
  dulwich.worktree.WorkTreeContainer:
  - 149
  dulwich.worktree.WorkTreeContainer.__init__:
  - 156
  dulwich.worktree.WorkTreeContainer.__iter__:
  - 273
  - 274
  dulwich.worktree.WorkTreeContainer.add:
  - 193
  - 180
  dulwich.worktree.WorkTreeContainer.list:
  - 169
  - 164
  dulwich.worktree.WorkTreeContainer.lock:
  - 248
  - 242
  dulwich.worktree.WorkTreeContainer.move:
  - 237
  - 231
  dulwich.worktree.WorkTreeContainer.prune:
  - 224
  - 215
  dulwich.worktree.WorkTreeContainer.remove:
  - 210
  - 204
  dulwich.worktree.WorkTreeContainer.repair:
  - 261
  - 270
  dulwich.worktree.WorkTreeContainer.unlock:
  - 256
  - 251
  dulwich.worktree.WorkTreeInfo:
  - 69
  dulwich.worktree.WorkTreeInfo.__eq__:
  - 120
  - 119
  dulwich.worktree.WorkTreeInfo.__init__:
  - 93
  dulwich.worktree.WorkTreeInfo.__repr__:
  - 115
  dulwich.worktree.WorkTreeInfo.open:
  - 144
  - 145
  - 134
  dulwich.worktree._find_worktree_id:
  - 1217
  - 1219
  - 1220
  - 1221
  - 1222
  - 1225
  - 1226
  - 1227
  - 1228
  - 1229
  - 1230
  - 1232
  - 1201
  - 1213
  - 1214
  - 1215
  dulwich.worktree.add_worktree:
  - 1026
  - 1029
  - 946
  - 965
  - 966
  - 967
  - 970
  - 974
  - 975
  - 976
  - 977
  - 980
  - 981
  - 982
  - 988
  - 991
  - 996
  - 998
  - 1006
  - 1010
  - 1013
  - 1014
  - 1017
  - 1019
  - 1020
  dulwich.worktree.list_worktrees:
  - 902
  - 906
  - 908
  - 909
  - 910
  - 911
  - 927
  - 928
  - 932
  - 834
  - 845
  - 847
  - 856
  - 857
  - 858
  - 859
  - 868
  - 871
  - 872
  - 873
  - 874
  - 875
  - 878
  - 887
  - 889
  - 890
  - 892
  - 893
  - 894
  - 895
  dulwich.worktree.lock_worktree:
  - 1169
  - 1176
  - 1177
  - 1179
  - 1180
  - 1181
  - 1182
  dulwich.worktree.move_worktree:
  - 1281
  - 1282
  - 1255
  - 1256
  - 1257
  - 1258
  - 1259
  - 1260
  - 1263
  - 1267
  - 1271
  - 1272
  - 1275
  - 1245
  - 1278
  dulwich.worktree.prune_worktrees:
  - 1152
  - 1153
  - 1155
  - 1158
  - 1159
  - 1160
  - 1161
  - 1107
  - 1118
  - 1120
  - 1123
  - 1125
  - 1126
  - 1127
  - 1131
  - 1137
  - 1139
  - 1140
  - 1141
  - 1142
  - 1143
  - 1144
  - 1146
  dulwich.worktree.read_worktree_lock_reason:
  - 814
  - 822
  - 823
  - 827
  - 828
  dulwich.worktree.remove_worktree:
  - 1037
  - 1047
  - 1048
  - 1049
  - 1052
  - 1058
  - 1060
  - 1061
  - 1062
  - 1063
  - 1066
  - 1067
  - 1068
  - 1069
  - 1070
  - 1071
  - 1073
  - 1080
  - 1084
  - 1087
  - 1088
  - 1092
  - 1097
  - 1098
  - 1101
  dulwich.worktree.repair_worktree:
  - 1288
  - 1305
  - 1307
  - 1309
  - 1310
  - 1311
  - 1312
  - 1313
  - 1316
  - 1317
  - 1322
  - 1323
  - 1324
  - 1325
  - 1334
  - 1335
  - 1336
  - 1340
  - 1341
  - 1343
  - 1344
  - 1345
  - 1348
  - 1351
  - 1352
  - 1353
  - 1357
  - 1359
  - 1360
  - 1361
  - 1367
  - 1370
  - 1373
  - 1374
  - 1375
  - 1376
  - 1377
  - 1378
  - 1379
  - 1384
  - 1388
  - 1389
  - 1391
  - 1394
  dulwich.worktree.temporary_worktree:
  - 1417
  - 1420
  - 1422
  - 1426
  - 1427
  - 1430
  - 1431
  - 1403
  dulwich.worktree.unlock_worktree:
  - 1186
  - 1192
  - 1193
  - 1195
  - 1196
  - 1197
Fuzzer filename: /src/dulwich/fuzzing/fuzz-targets/fuzz_configfile.py
Inheritance:
  dulwich.archive.ChunkedBytesIO: []
  dulwich.attrs.GitAttributes: []
  dulwich.attrs.Pattern: []
  dulwich.bisect.BisectState: []
  dulwich.bitmap.BitmapEntry: []
  dulwich.bitmap.EWAHBitmap: []
  dulwich.bitmap.PackBitmap: []
  dulwich.bundle.Bundle: []
  dulwich.bundle.PackDataLike:
  - Protocol
  dulwich.bundle.create_bundle_from_repo._BundlePackData: []
  dulwich.cli.AutoFlushBinaryIOWrapper: []
  dulwich.cli.AutoFlushTextIOWrapper: []
  dulwich.cli.Command: []
  dulwich.cli.CommitMessageError:
  - Exception
  dulwich.cli.Pager:
  - TextIO
  dulwich.cli.PagerBuffer:
  - BinaryIO
  dulwich.cli.SuperCommand:
  - Command
  dulwich.cli._StreamContextAdapter: []
  dulwich.cli.cmd_add:
  - Command
  dulwich.cli.cmd_annotate:
  - Command
  dulwich.cli.cmd_archive:
  - Command
  dulwich.cli.cmd_bisect:
  - SuperCommand
  dulwich.cli.cmd_blame:
  - Command
  dulwich.cli.cmd_branch:
  - Command
  dulwich.cli.cmd_bundle:
  - Command
  dulwich.cli.cmd_check_ignore:
  - Command
  dulwich.cli.cmd_check_mailmap:
  - Command
  dulwich.cli.cmd_checkout:
  - Command
  dulwich.cli.cmd_cherry:
  - Command
  dulwich.cli.cmd_cherry_pick:
  - Command
  dulwich.cli.cmd_clone:
  - Command
  dulwich.cli.cmd_column:
  - Command
  dulwich.cli.cmd_commit:
  - Command
  dulwich.cli.cmd_commit_tree:
  - Command
  dulwich.cli.cmd_config:
  - Command
  dulwich.cli.cmd_count_objects:
  - Command
  dulwich.cli.cmd_daemon:
  - Command
  dulwich.cli.cmd_describe:
  - Command
  dulwich.cli.cmd_diagnose:
  - Command
  dulwich.cli.cmd_diff:
  - Command
  dulwich.cli.cmd_diff_tree:
  - Command
  dulwich.cli.cmd_dump_index:
  - Command
  dulwich.cli.cmd_dump_pack:
  - Command
  dulwich.cli.cmd_fetch:
  - Command
  dulwich.cli.cmd_fetch_pack:
  - Command
  dulwich.cli.cmd_filter_branch:
  - Command
  dulwich.cli.cmd_for_each_ref:
  - Command
  dulwich.cli.cmd_format_patch:
  - Command
  dulwich.cli.cmd_fsck:
  - Command
  dulwich.cli.cmd_gc:
  - Command
  dulwich.cli.cmd_grep:
  - Command
  dulwich.cli.cmd_help:
  - Command
  dulwich.cli.cmd_init:
  - Command
  dulwich.cli.cmd_interpret_trailers:
  - Command
  dulwich.cli.cmd_lfs:
  - Command
  dulwich.cli.cmd_log:
  - Command
  dulwich.cli.cmd_ls_files:
  - Command
  dulwich.cli.cmd_ls_remote:
  - Command
  dulwich.cli.cmd_ls_tree:
  - Command
  dulwich.cli.cmd_mailinfo:
  - Command
  dulwich.cli.cmd_mailsplit:
  - Command
  dulwich.cli.cmd_maintenance:
  - Command
  dulwich.cli.cmd_merge:
  - Command
  dulwich.cli.cmd_merge_base:
  - Command
  dulwich.cli.cmd_merge_tree:
  - Command
  dulwich.cli.cmd_mv:
  - Command
  dulwich.cli.cmd_notes:
  - SuperCommand
  dulwich.cli.cmd_notes_add:
  - Command
  dulwich.cli.cmd_notes_list:
  - Command
  dulwich.cli.cmd_notes_remove:
  - Command
  dulwich.cli.cmd_notes_show:
  - Command
  dulwich.cli.cmd_pack_objects:
  - Command
  dulwich.cli.cmd_pack_refs:
  - Command
  dulwich.cli.cmd_prune:
  - Command
  dulwich.cli.cmd_pull:
  - Command
  dulwich.cli.cmd_push:
  - Command
  dulwich.cli.cmd_rebase:
  - Command
  dulwich.cli.cmd_receive_pack:
  - Command
  dulwich.cli.cmd_reflog:
  - Command
  dulwich.cli.cmd_remote:
  - SuperCommand
  dulwich.cli.cmd_remote_add:
  - Command
  dulwich.cli.cmd_repack:
  - Command
  dulwich.cli.cmd_replace:
  - SuperCommand
  dulwich.cli.cmd_replace_delete:
  - Command
  dulwich.cli.cmd_replace_list:
  - Command
  dulwich.cli.cmd_rerere:
  - Command
  dulwich.cli.cmd_reset:
  - Command
  dulwich.cli.cmd_restore:
  - Command
  dulwich.cli.cmd_rev_list:
  - Command
  dulwich.cli.cmd_revert:
  - Command
  dulwich.cli.cmd_rm:
  - Command
  dulwich.cli.cmd_shortlog:
  - Command
  dulwich.cli.cmd_show:
  - Command
  dulwich.cli.cmd_show_branch:
  - Command
  dulwich.cli.cmd_show_ref:
  - Command
  dulwich.cli.cmd_stash:
  - SuperCommand
  dulwich.cli.cmd_stash_list:
  - Command
  dulwich.cli.cmd_stash_pop:
  - Command
  dulwich.cli.cmd_stash_push:
  - Command
  dulwich.cli.cmd_status:
  - Command
  dulwich.cli.cmd_stripspace:
  - Command
  dulwich.cli.cmd_submodule:
  - SuperCommand
  dulwich.cli.cmd_submodule_add:
  - Command
  dulwich.cli.cmd_submodule_init:
  - Command
  dulwich.cli.cmd_submodule_list:
  - Command
  dulwich.cli.cmd_submodule_update:
  - Command
  dulwich.cli.cmd_switch:
  - Command
  dulwich.cli.cmd_symbolic_ref:
  - Command
  dulwich.cli.cmd_tag:
  - Command
  dulwich.cli.cmd_unpack_objects:
  - Command
  dulwich.cli.cmd_update_server_info:
  - Command
  dulwich.cli.cmd_upload_pack:
  - Command
  dulwich.cli.cmd_var:
  - Command
  dulwich.cli.cmd_verify_commit:
  - Command
  dulwich.cli.cmd_verify_tag:
  - Command
  dulwich.cli.cmd_web_daemon:
  - Command
  dulwich.cli.cmd_worktree:
  - SuperCommand
  dulwich.cli.cmd_worktree_add:
  - Command
  dulwich.cli.cmd_worktree_list:
  - Command
  dulwich.cli.cmd_worktree_lock:
  - Command
  dulwich.cli.cmd_worktree_move:
  - Command
  dulwich.cli.cmd_worktree_prune:
  - Command
  dulwich.cli.cmd_worktree_remove:
  - Command
  dulwich.cli.cmd_worktree_repair:
  - Command
  dulwich.cli.cmd_worktree_unlock:
  - Command
  dulwich.cli.cmd_write_tree:
  - Command
  dulwich.client.AbstractHttpGitClient:
  - GitClient
  dulwich.client.BundleClient:
  - GitClient
  dulwich.client.DetermineWantsFunc:
  - TypingProtocol
  dulwich.client.FetchPackResult:
  - _DeprecatedDictProxy
  dulwich.client.GeneratePackDataFunc:
  - TypingProtocol
  dulwich.client.GitClient: []
  dulwich.client.HTTPProxyUnauthorized:
  - Exception
  dulwich.client.HTTPResponse:
  - TypingProtocol
  dulwich.client.HTTPUnauthorized:
  - Exception
  dulwich.client.InvalidWants:
  - Exception
  dulwich.client.LocalGitClient:
  - GitClient
  dulwich.client.LsRemoteResult:
  - _DeprecatedDictProxy
  dulwich.client.PLinkSSHVendor:
  - SSHVendor
  dulwich.client.ReportStatusParser: []
  dulwich.client.SSHGitClient:
  - TraditionalGitClient
  dulwich.client.SSHVendor: []
  dulwich.client.SendPackResult:
  - _DeprecatedDictProxy
  dulwich.client.StrangeHostname:
  - Exception
  dulwich.client.SubprocessGitClient:
  - TraditionalGitClient
  dulwich.client.SubprocessSSHVendor:
  - SSHVendor
  dulwich.client.SubprocessWrapper: []
  dulwich.client.TCPGitClient:
  - TraditionalGitClient
  dulwich.client.TraditionalGitClient:
  - GitClient
  dulwich.client.Urllib3HttpGitClient:
  - AbstractHttpGitClient
  dulwich.client._DeprecatedDictProxy: []
  dulwich.client._v1ReceivePackHeader: []
  dulwich.cloud.gcs.GcsObjectStore:
  - BucketBasedObjectStore
  dulwich.commit_graph.CommitGraph: []
  dulwich.commit_graph.CommitGraphChunk: []
  dulwich.commit_graph.CommitGraphEntry: []
  dulwich.config.CaseInsensitiveOrderedMultiDict: []
  dulwich.config.CaseInsensitiveOrderedMultiDict.items.OrderedItemsView: []
  dulwich.config.CaseInsensitiveOrderedMultiDict.keys.UniqueKeysView: []
  dulwich.config.Config: []
  dulwich.config.ConfigDict:
  - Config
  dulwich.config.ConfigFile:
  - ConfigDict
  dulwich.config.StackedConfig:
  - Config
  dulwich.contrib.greenthreads.GreenThreadsMissingObjectFinder:
  - MissingObjectFinder
  dulwich.contrib.paramiko_vendor.ParamikoSSHVendor: []
  dulwich.contrib.paramiko_vendor._ParamikoWrapper: []
  dulwich.contrib.requests_vendor.RequestsHttpGitClient:
  - AbstractHttpGitClient
  dulwich.contrib.swift.PackInfoMissingObjectFinder:
  - GreenThreadsMissingObjectFinder
  dulwich.contrib.swift.SwiftConnector: []
  dulwich.contrib.swift.SwiftException:
  - Exception
  dulwich.contrib.swift.SwiftInfoRefsContainer:
  - RefsContainer
  dulwich.contrib.swift.SwiftObjectStore:
  - PackBasedObjectStore
  dulwich.contrib.swift.SwiftPack:
  - Pack
  dulwich.contrib.swift.SwiftPackData:
  - PackData
  dulwich.contrib.swift.SwiftPackReader: []
  dulwich.contrib.swift.SwiftRepo:
  - BaseRepo
  dulwich.contrib.swift.SwiftSystemBackend:
  - Backend
  dulwich.diff.ColorizedDiffStream:
  - BinaryIO
  dulwich.diff_tree.RenameDetector: []
  dulwich.diff_tree.TreeChange:
  - NamedTuple
  dulwich.dumb.DumbHTTPObjectStore:
  - BaseObjectStore
  dulwich.dumb.DumbRemoteHTTPRepo: []
  dulwich.errors.ApplyDeltaError:
  - Exception
  dulwich.errors.ChecksumMismatch:
  - Exception
  dulwich.errors.CommitError:
  - Exception
  dulwich.errors.FileFormatException:
  - Exception
  dulwich.errors.GitProtocolError:
  - Exception
  dulwich.errors.HangupException:
  - GitProtocolError
  dulwich.errors.HookError:
  - Exception
  dulwich.errors.MissingCommitError:
  - Exception
  dulwich.errors.NoIndexPresent:
  - Exception
  dulwich.errors.NotBlobError:
  - WrongObjectException
  dulwich.errors.NotCommitError:
  - WrongObjectException
  dulwich.errors.NotGitRepository:
  - Exception
  dulwich.errors.NotTagError:
  - WrongObjectException
  dulwich.errors.NotTreeError:
  - WrongObjectException
  dulwich.errors.ObjectFormatException:
  - FileFormatException
  dulwich.errors.ObjectMissing:
  - Exception
  dulwich.errors.PackedRefsException:
  - FileFormatException
  dulwich.errors.RefFormatError:
  - Exception
  dulwich.errors.SendPackError:
  - GitProtocolError
  dulwich.errors.UnexpectedCommandError:
  - GitProtocolError
  dulwich.errors.WorkingTreeModifiedError:
  - Exception
  dulwich.errors.WrongObjectException:
  - Exception
  dulwich.fastexport.GitFastExporter: []
  dulwich.fastexport.GitImportProcessor: []
  dulwich.file.FileLocked:
  - Exception
  dulwich.file._GitFile: []
  dulwich.filter_branch.CommitData:
  - TypedDict
  dulwich.filter_branch.CommitFilter: []
  dulwich.filters.CompositeFilterDriver: []
  dulwich.filters.FilterBlobNormalizer: []
  dulwich.filters.FilterContext: []
  dulwich.filters.FilterDriver:
  - TypingProtocol
  dulwich.filters.FilterError:
  - Exception
  dulwich.filters.FilterRegistry: []
  dulwich.filters.ProcessFilterDriver: []
  dulwich.gc.GCStats: []
  dulwich.graph.WorkList: []
  dulwich.hooks.CommitMsgShellHook:
  - ShellHook
  dulwich.hooks.Hook: []
  dulwich.hooks.PostCommitShellHook:
  - ShellHook
  dulwich.hooks.PostReceiveShellHook:
  - ShellHook
  dulwich.hooks.PreCommitShellHook:
  - ShellHook
  dulwich.hooks.ShellHook:
  - Hook
  dulwich.ignore.IgnoreFilter: []
  dulwich.ignore.IgnoreFilterManager: []
  dulwich.ignore.IgnoreFilterStack: []
  dulwich.ignore.Pattern: []
  dulwich.index.ConflictedIndexEntry: []
  dulwich.index.Index: []
  dulwich.index.IndexEntry: []
  dulwich.index.IndexExtension: []
  dulwich.index.ResolveUndoExtension:
  - IndexExtension
  dulwich.index.SerializedIndexEntry: []
  dulwich.index.SparseDirExtension:
  - IndexExtension
  dulwich.index.Stage:
  - Enum
  dulwich.index.TreeExtension:
  - IndexExtension
  dulwich.index.UnmergedEntries:
  - Exception
  dulwich.index.UnsupportedIndexFormat:
  - Exception
  dulwich.index.UntrackedExtension:
  - IndexExtension
  dulwich.index.WindowsSymlinkPermissionError:
  - PermissionError
  dulwich.index.locked_index: []
  dulwich.lfs.FileLFSClient:
  - LFSClient
  dulwich.lfs.HTTPLFSClient:
  - LFSClient
  dulwich.lfs.LFSAction: []
  dulwich.lfs.LFSBatchObject: []
  dulwich.lfs.LFSBatchResponse: []
  dulwich.lfs.LFSClient: []
  dulwich.lfs.LFSError:
  - Exception
  dulwich.lfs.LFSErrorInfo: []
  dulwich.lfs.LFSFilterDriver: []
  dulwich.lfs.LFSPointer: []
  dulwich.lfs.LFSStore: []
  dulwich.lfs_server.LFSRequestHandler:
  - BaseHTTPRequestHandler
  dulwich.lfs_server.LFSServer:
  - HTTPServer
  dulwich.line_ending.BlobNormalizer:
  - FilterBlobNormalizer
  dulwich.line_ending.LineEndingFilter:
  - FilterDriver
  dulwich.line_ending.TreeBlobNormalizer:
  - BlobNormalizer
  dulwich.log_utils._NullHandler: []
  dulwich.lru_cache.LRUCache: []
  dulwich.lru_cache.LRUSizeCache: []
  dulwich.lru_cache._LRUNode: []
  dulwich.mailmap.Mailmap: []
  dulwich.maintenance.CommitGraphTask:
  - MaintenanceTask
  dulwich.maintenance.GcTask:
  - MaintenanceTask
  dulwich.maintenance.IncrementalRepackTask:
  - MaintenanceTask
  dulwich.maintenance.LooseObjectsTask:
  - MaintenanceTask
  dulwich.maintenance.MaintenanceResult: []
  dulwich.maintenance.MaintenanceSchedule:
  - Enum
  - str
  dulwich.maintenance.MaintenanceTask:
  - ABC
  dulwich.maintenance.PackRefsTask:
  - MaintenanceTask
  dulwich.maintenance.PrefetchTask:
  - MaintenanceTask
  dulwich.merge.MergeConflict:
  - Exception
  dulwich.merge.Merger: []
  dulwich.merge_drivers.MergeDriver:
  - Protocol
  dulwich.merge_drivers.MergeDriverRegistry: []
  dulwich.merge_drivers.ProcessMergeDriver: []
  dulwich.midx.MultiPackIndex: []
  dulwich.notes.Notes: []
  dulwich.notes.NotesTree: []
  dulwich.object_store.BaseObjectStore: []
  dulwich.object_store.BitmapReachability: []
  dulwich.object_store.BucketBasedObjectStore:
  - PackBasedObjectStore
  dulwich.object_store.DiskObjectStore:
  - PackBasedObjectStore
  dulwich.object_store.GraphTraversalReachability: []
  dulwich.object_store.GraphWalker:
  - Protocol
  dulwich.object_store.MemoryObjectStore:
  - PackCapableObjectStore
  dulwich.object_store.MissingObjectFinder: []
  dulwich.object_store.ObjectIterator:
  - Protocol
  dulwich.object_store.ObjectReachabilityProvider:
  - Protocol
  dulwich.object_store.ObjectStoreGraphWalker: []
  dulwich.object_store.OverlayObjectStore:
  - BaseObjectStore
  dulwich.object_store.PackBasedObjectStore:
  - PackedObjectContainer
  - PackCapableObjectStore
  dulwich.object_store.PackCapableObjectStore:
  - PackedObjectContainer
  - BaseObjectStore
  dulwich.object_store.PackContainer:
  - Protocol
  dulwich.objects.Blob:
  - ShaFile
  dulwich.objects.Commit:
  - ShaFile
  dulwich.objects.EmptyFileException:
  - FileFormatException
  dulwich.objects.FixedSha: []
  dulwich.objects.ShaFile: []
  dulwich.objects.SubmoduleEncountered:
  - Exception
  dulwich.objects.Tag:
  - ShaFile
  dulwich.objects.Tree:
  - ShaFile
  dulwich.objects.TreeEntry:
  - NamedTuple
  dulwich.objectspec.AmbiguousShortId:
  - Exception
  dulwich.pack.DeltaChainIterator: []
  dulwich.pack.FilePackIndex:
  - PackIndex
  dulwich.pack.MemoryPackIndex:
  - PackIndex
  dulwich.pack.ObjectContainer:
  - Protocol
  dulwich.pack.Pack: []
  dulwich.pack.PackChunkGenerator: []
  dulwich.pack.PackData: []
  dulwich.pack.PackFileDisappeared:
  - Exception
  dulwich.pack.PackIndex: []
  dulwich.pack.PackIndex1:
  - FilePackIndex
  dulwich.pack.PackIndex2:
  - FilePackIndex
  dulwich.pack.PackIndex3:
  - FilePackIndex
  dulwich.pack.PackIndexer: []
  dulwich.pack.PackInflater: []
  dulwich.pack.PackStreamCopier:
  - PackStreamReader
  dulwich.pack.PackStreamReader: []
  dulwich.pack.PackedObjectContainer:
  - ObjectContainer
  dulwich.pack.SHA1Reader:
  - BinaryIO
  dulwich.pack.SHA1Writer:
  - BinaryIO
  dulwich.pack.UnpackedObject: []
  dulwich.pack.UnpackedObjectIterator: []
  dulwich.pack.UnpackedObjectStream: []
  dulwich.pack.UnresolvedDeltas:
  - Exception
  dulwich.patch.DiffAlgorithmNotAvailable:
  - Exception
  dulwich.patch.MailinfoResult: []
  dulwich.porcelain.CheckoutError:
  - Error
  dulwich.porcelain.CountObjectsResult: []
  dulwich.porcelain.DivergedBranches:
  - Error
  dulwich.porcelain.Error:
  - Exception
  dulwich.porcelain.NoneStream:
  - RawIOBase
  dulwich.porcelain.RemoteExists:
  - Error
  dulwich.porcelain.TimezoneFormatError:
  - Error
  dulwich.porcelain.TransportKwargs:
  - TypedDict
  dulwich.porcelain.show_commit._StreamWrapper: []
  dulwich.protocol.BufferedPktLineWriter: []
  dulwich.protocol.PktLineParser: []
  dulwich.protocol.Protocol: []
  dulwich.protocol.ReceivableProtocol:
  - Protocol
  dulwich.rebase.DiskRebaseStateManager: []
  dulwich.rebase.MemoryRebaseStateManager: []
  dulwich.rebase.RebaseAbort:
  - RebaseError
  dulwich.rebase.RebaseConflict:
  - RebaseError
  dulwich.rebase.RebaseError:
  - Exception
  dulwich.rebase.RebaseState:
  - TypedDict
  dulwich.rebase.RebaseStateManager:
  - Protocol
  dulwich.rebase.RebaseTodo: []
  dulwich.rebase.RebaseTodoCommand:
  - Enum
  dulwich.rebase.RebaseTodoEntry: []
  dulwich.rebase.Rebaser: []
  dulwich.refs.DictRefsContainer:
  - RefsContainer
  dulwich.refs.DiskRefsContainer:
  - RefsContainer
  dulwich.refs.NamespacedRefsContainer:
  - RefsContainer
  dulwich.refs.RefsContainer: []
  dulwich.refs.SymrefLoop:
  - Exception
  dulwich.refs.locked_ref: []
  dulwich.reftable.LogBlock: []
  dulwich.reftable.RefBlock: []
  dulwich.reftable.RefRecord: []
  dulwich.reftable.RefUpdate: []
  dulwich.reftable.RefValue: []
  dulwich.reftable.ReftableReader: []
  dulwich.reftable.ReftableRefsContainer:
  - RefsContainer
  dulwich.reftable.ReftableWriter: []
  dulwich.reftable._ReftableBatchContext: []
  dulwich.repo.BaseRepo: []
  dulwich.repo.DefaultIdentityNotFound:
  - Exception
  dulwich.repo.InvalidUserIdentity:
  - Exception
  dulwich.repo.MemoryRepo:
  - BaseRepo
  dulwich.repo.ParentsProvider: []
  dulwich.repo.Repo:
  - BaseRepo
  dulwich.repo.UnsupportedExtension:
  - Exception
  dulwich.repo.UnsupportedVersion:
  - Exception
  dulwich.rerere.RerereCache: []
  dulwich.server.AckGraphWalkerImpl: []
  dulwich.server.Backend: []
  dulwich.server.BackendRepo:
  - TypingProtocol
  dulwich.server.DictBackend:
  - Backend
  dulwich.server.FileSystemBackend:
  - Backend
  dulwich.server.Handler: []
  dulwich.server.MultiAckDetailedGraphWalkerImpl:
  - AckGraphWalkerImpl
  dulwich.server.MultiAckGraphWalkerImpl:
  - AckGraphWalkerImpl
  dulwich.server.PackHandler:
  - Handler
  dulwich.server.ReceivePackHandler:
  - PackHandler
  dulwich.server.SingleAckGraphWalkerImpl:
  - AckGraphWalkerImpl
  dulwich.server.TCPGitRequestHandler: []
  dulwich.server.TCPGitServer: []
  dulwich.server.UploadArchiveHandler:
  - Handler
  dulwich.server.UploadPackHandler:
  - PackHandler
  dulwich.server._ProtocolGraphWalker: []
  dulwich.sparse_patterns.BlobNotFoundError:
  - Exception
  dulwich.sparse_patterns.SparseCheckoutConflictError:
  - Exception
  dulwich.stash.CommitKwargs:
  - TypedDict
  dulwich.stash.Stash: []
  dulwich.trailers.Trailer: []
  dulwich.walk.WalkEntry: []
  dulwich.walk.Walker: []
  dulwich.walk._CommitTimeQueue: []
  dulwich.web.ChunkReader: []
  dulwich.web.GunzipFilter: []
  dulwich.web.HTTPGitApplication: []
  dulwich.web.HTTPGitRequest: []
  dulwich.web.HandlerConstructor:
  - TypingProtocol
  dulwich.web.LimitedInputFilter: []
  dulwich.web.ServerHandlerLogger:
  - ServerHandler
  dulwich.web.StartResponse:
  - TypingProtocol
  dulwich.web.WSGIRequestHandlerLogger:
  - WSGIRequestHandler
  dulwich.web.WSGIServerLogger:
  - WSGIServer
  dulwich.web._LengthLimitedFile: []
  dulwich.whitespace.WhitespaceChecker: []
  dulwich.worktree.WorkTree: []
  dulwich.worktree.WorkTreeContainer: []
  dulwich.worktree.WorkTreeInfo: []
ep:
  func_name: TestOneInput
  module: '...dulwich.fuzzing.fuzz-targets.fuzz_configfile'
