All classes:
- multipart.exceptions.FormParserError
- multipart.exceptions.ParseError
- multipart.exceptions.MultipartParseError
- multipart.exceptions.QuerystringParseError
- multipart.exceptions.DecodeError
- multipart.exceptions.FileError
- multipart.decoders.Base64Decoder
- multipart.decoders.QuotedPrintableDecoder
- multipart.multipart.QuerystringCallbacks
- multipart.multipart.OctetStreamCallbacks
- multipart.multipart.MultipartCallbacks
- multipart.multipart.FormParserConfig
- multipart.multipart.FileConfig
- multipart.multipart._FormProtocol
- multipart.multipart.FieldProtocol
- multipart.multipart.FileProtocol
- multipart.multipart.QuerystringState
- multipart.multipart.MultipartState
- multipart.multipart.Field
- multipart.multipart.File
- multipart.multipart.BaseParser
- multipart.multipart.OctetStreamParser
- multipart.multipart.QuerystringParser
- multipart.multipart.MultipartParser
- multipart.multipart.FormParser
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: '...python-multipart.fuzz.fuzz_decoders'
    functionSourceFile: '...python-multipart.fuzz.fuzz_decoders'
    functionUses: 0
    functionsReached:
    - atheris.Fuzz
    - atheris.Setup
    - atheris.instrument_imports
    - '...python-multipart.fuzz.fuzz_decoders.main'
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_imports
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fdp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 11
    functionName: '...python-multipart.fuzz.fuzz_decoders.fuzz_base64_decoder'
    functionSourceFile: '...python-multipart.fuzz.fuzz_decoders'
    functionUses: 0
    functionsReached:
    - multipart.decoders.Base64Decoder.__init__
    - <builtin>.hasattr
    - fdp.ConsumeRandomBytes
    - base64.b64decode
    - io.BytesIO
    - <builtin>.len
    - multipart.decoders.Base64Decoder.write
    - multipart.decoders.Base64Decoder.finalize
    - <builtin>.bytearray
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - underlying
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: multipart.decoders.Base64Decoder.__init__
    functionSourceFile: multipart.decoders
    functionUses: 2
    functionsReached:
    - <builtin>.bytearray
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeRandomBytes
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: multipart.decoders.Base64Decoder.write
    functionSourceFile: multipart.decoders
    functionUses: 1
    functionsReached:
    - base64.b64decode
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - DecodeError
    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: 84
    functionName: multipart.decoders.Base64Decoder.finalize
    functionSourceFile: multipart.decoders
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - DecodeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fdp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 17
    functionName: '...python-multipart.fuzz.fuzz_decoders.fuzz_quoted_decoder'
    functionSourceFile: '...python-multipart.fuzz.fuzz_decoders'
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - fdp.ConsumeRandomBytes
    - io.BytesIO
    - multipart.decoders.QuotedPrintableDecoder.__init__
    - binascii.a2b_qp
    - <builtin>.len
    - multipart.decoders.QuotedPrintableDecoder.finalize
    - multipart.decoders.QuotedPrintableDecoder.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - underlying
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 115
    functionName: multipart.decoders.QuotedPrintableDecoder.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: multipart.decoders.QuotedPrintableDecoder.write
    functionSourceFile: multipart.decoders
    functionUses: 1
    functionsReached:
    - binascii.a2b_qp
    - <builtin>.len
    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: 153
    functionName: multipart.decoders.QuotedPrintableDecoder.finalize
    functionSourceFile: multipart.decoders
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    - binascii.a2b_qp
    - <builtin>.len
    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: 23
    functionName: '...python-multipart.fuzz.fuzz_decoders.TestOneInput'
    functionSourceFile: '...python-multipart.fuzz.fuzz_decoders'
    functionUses: 0
    functionsReached:
    - helpers.EnhancedDataProvider
    - helpers.EnhancedDataProvider.PickValueInList
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: helpers.EnhancedDataProvider
    functionSourceFile: helpers
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: helpers.EnhancedDataProvider.PickValueInList
    functionSourceFile: helpers
    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: 34
    functionName: '...python-multipart.fuzz.fuzz_decoders.main'
    functionSourceFile: '...python-multipart.fuzz.fuzz_decoders'
    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: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: multipart
    functionSourceFile: multipart
    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: multipart.multipart
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - <builtin>.object
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 60
    functionName: multipart.multipart._FormProtocol.write
    functionSourceFile: multipart.multipart
    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: 63
    functionName: multipart.multipart._FormProtocol.finalize
    functionSourceFile: multipart.multipart
    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: 66
    functionName: multipart.multipart._FormProtocol.close
    functionSourceFile: multipart.multipart
    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: 70
    functionName: multipart.multipart.FieldProtocol.__init__
    functionSourceFile: multipart.multipart
    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: 73
    functionName: multipart.multipart.FieldProtocol.set_none
    functionSourceFile: multipart.multipart
    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
    - file_name
    - field_name
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 77
    functionName: multipart.multipart.FileProtocol.__init__
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.object
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 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: 5
    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: 149
    functionName: multipart.multipart.ord_char
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - b
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 153
    functionName: multipart.multipart.join_bytes
    functionSourceFile: multipart.multipart
    functionUses: 4
    functionsReached:
    - <builtin>.list
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytes
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: multipart.multipart.parse_options_header
    functionSourceFile: multipart.multipart
    functionUses: 3
    functionsReached:
    - email.message.Message.get_params
    - <builtin>.isinstance
    - params.pop
    - value.split
    - value.lower
    - email.message.Message
    - value.decode
    - key.encode
    - value.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: <builtin>.isinstance
    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: 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: value.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: email.message.Message
    functionSourceFile: email
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.message.Message.get_params
    functionSourceFile: email
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: params.pop
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.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: value.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: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 217
    functionName: multipart.multipart.Field.__init__
    functionSourceFile: multipart.multipart
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 225
    functionName: multipart.multipart.Field.from_value
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.multipart.Field.__init__
    - f.write
    - f.finalize
    - f.set_none
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.set_none
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.finalize
    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
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 246
    functionName: multipart.multipart.Field.write
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.multipart.Field.on_data
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 257
    functionName: multipart.multipart.Field.on_data
    functionSourceFile: multipart.multipart
    functionUses: 1
    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: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 21
    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: 271
    functionName: multipart.multipart.Field.on_end
    functionSourceFile: multipart.multipart
    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: 276
    functionName: multipart.multipart.Field.finalize
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.multipart.Field.on_end
    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: 280
    functionName: multipart.multipart.Field.close
    functionSourceFile: multipart.multipart
    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: 288
    functionName: multipart.multipart.Field.set_none
    functionSourceFile: multipart.multipart
    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: 298
    functionName: multipart.multipart.Field.field_name
    functionSourceFile: multipart.multipart
    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: 303
    functionName: multipart.multipart.Field.value
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 310
    functionName: multipart.multipart.Field.__eq__
    functionSourceFile: multipart.multipart
    functionUses: 0
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 316
    functionName: multipart.multipart.Field.__repr__
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - <builtin>.repr
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f133fb25ac0>
    - <ast.Dict object at 0x7f133fb25e20>
    argNames:
    - self
    - file_name
    - field_name
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 350
    functionName: multipart.multipart.File.__init__
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - io.BytesIO
    - os.path.splitext
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.getLogger
    functionSourceFile: logging
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.splitext
    functionSourceFile: os
    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: 373
    functionName: multipart.multipart.File.field_name
    functionSourceFile: multipart.multipart
    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: 380
    functionName: multipart.multipart.File.file_name
    functionSourceFile: multipart.multipart
    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: 385
    functionName: multipart.multipart.File.actual_file_name
    functionSourceFile: multipart.multipart
    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: 392
    functionName: multipart.multipart.File.file_object
    functionSourceFile: multipart.multipart
    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: 400
    functionName: multipart.multipart.File.size
    functionSourceFile: multipart.multipart
    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: 407
    functionName: multipart.multipart.File.in_memory
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 413
    functionName: multipart.multipart.File.flush_to_disk
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - shutil.copyfileobj
    - tempfile.NamedTemporaryFile
    - io.BytesIO.seek
    - fname.encode
    - <builtin>.isinstance
    - io.BytesIO.close
    - multipart.multipart.File._get_disk_file
    - file_dir.decode
    - new_file.seek
    - sys.getfilesystemencoding
    - os.path.join
    - <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: io.BytesIO.seek
    functionSourceFile: io
    functionUses: 3
    functionsReached: []
    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: 1
    functionLinenumber: 447
    functionName: multipart.multipart.File._get_disk_file
    functionSourceFile: multipart.multipart
    functionUses: 3
    functionsReached:
    - tempfile.NamedTemporaryFile
    - fname.encode
    - <builtin>.isinstance
    - file_dir.decode
    - sys.getfilesystemencoding
    - os.path.join
    - <builtin>.open
    linkageType: pythonLinkage
    raised:
    - FileError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shutil.copyfileobj
    functionSourceFile: shutil
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_file.seek
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.close
    functionSourceFile: io
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.join
    functionSourceFile: os
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.open
    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: sys.getfilesystemencoding
    functionSourceFile: sys
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: file_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: tempfile.NamedTemporaryFile
    functionSourceFile: tempfile
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fname.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 505
    functionName: multipart.multipart.File.write
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - shutil.copyfileobj
    - tempfile.NamedTemporaryFile
    - io.BytesIO.seek
    - fname.encode
    - <builtin>.isinstance
    - io.BytesIO.tell
    - io.BytesIO.close
    - multipart.multipart.File._get_disk_file
    - <builtin>.len
    - file_dir.decode
    - multipart.multipart.File.on_data
    - new_file.seek
    - sys.getfilesystemencoding
    - io.BytesIO.write
    - os.path.join
    - multipart.multipart.File.flush_to_disk
    - <builtin>.open
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 512
    functionName: multipart.multipart.File.on_data
    functionSourceFile: multipart.multipart
    functionUses: 1
    functionsReached:
    - shutil.copyfileobj
    - tempfile.NamedTemporaryFile
    - io.BytesIO.seek
    - fname.encode
    - <builtin>.isinstance
    - io.BytesIO.tell
    - io.BytesIO.close
    - multipart.multipart.File._get_disk_file
    - <builtin>.len
    - file_dir.decode
    - new_file.seek
    - sys.getfilesystemencoding
    - io.BytesIO.write
    - os.path.join
    - multipart.multipart.File.flush_to_disk
    - <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: io.BytesIO.tell
    functionSourceFile: io
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.write
    functionSourceFile: io
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 545
    functionName: multipart.multipart.File.on_end
    functionSourceFile: multipart.multipart
    functionUses: 1
    functionsReached:
    - io.BytesIO.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.flush
    functionSourceFile: io
    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: 2
    functionLinenumber: 550
    functionName: multipart.multipart.File.finalize
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.multipart.File.on_end
    - io.BytesIO.flush
    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: 556
    functionName: multipart.multipart.File.close
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - io.BytesIO.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 563
    functionName: multipart.multipart.File.__repr__
    functionSourceFile: multipart.multipart
    functionUses: 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: 588
    functionName: multipart.multipart.BaseParser.__init__
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f133fb6ba60>
    - <ast.Constant object at 0x7f133fb6baf0>
    - <ast.Constant object at 0x7f133fb6bc10>
    argNames:
    - self
    - name
    - data
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 591
    functionName: multipart.multipart.BaseParser.callback
    functionSourceFile: multipart.multipart
    functionUses: 11
    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
    - new_func
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 619
    functionName: multipart.multipart.BaseParser.set_callback
    functionSourceFile: multipart.multipart
    functionUses: 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: 634
    functionName: multipart.multipart.BaseParser.close
    functionSourceFile: multipart.multipart
    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: 637
    functionName: multipart.multipart.BaseParser.finalize
    functionSourceFile: multipart.multipart
    functionUses: 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: 640
    functionName: multipart.multipart.BaseParser.__repr__
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Dict object at 0x7f133fbf7fa0>
    - <ast.Call object at 0x7f133fbf73d0>
    argNames:
    - self
    - callbacks
    - max_size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 659
    functionName: multipart.multipart.OctetStreamParser.__init__
    functionSourceFile: multipart.multipart
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 669
    functionName: multipart.multipart.OctetStreamParser.write
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - multipart.multipart.BaseParser.callback
    - <builtin>.int
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    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:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 702
    functionName: multipart.multipart.OctetStreamParser.finalize
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - multipart.multipart.BaseParser.callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 708
    functionName: multipart.multipart.OctetStreamParser.__repr__
    functionSourceFile: multipart.multipart
    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.Dict object at 0x7f133fa73a60>
    - <ast.Constant object at 0x7f133fa73910>
    - <ast.Call object at 0x7f133fa73580>
    argNames:
    - self
    - callbacks
    - strict_parsing
    - max_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 736
    functionName: multipart.multipart.QuerystringParser.__init__
    functionSourceFile: multipart.multipart
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 754
    functionName: multipart.multipart.QuerystringParser.write
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - multipart.multipart.BaseParser.callback
    - multipart.multipart.QuerystringParser._internal_write
    - data.find
    - <builtin>.int
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 11
    IfCount: 14
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - data
    - length
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 790
    functionName: multipart.multipart.QuerystringParser._internal_write
    functionSourceFile: multipart.multipart
    functionUses: 3
    functionsReached:
    - multipart.multipart.BaseParser.callback
    - data.find
    - <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: data.find
    functionSourceFile: <builtin>
    functionUses: 4
    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: 928
    functionName: multipart.multipart.QuerystringParser.finalize
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - multipart.multipart.BaseParser.callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 938
    functionName: multipart.multipart.QuerystringParser.__repr__
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Dict object at 0x7f133f91fc70>
    - <ast.Call object at 0x7f133f91fca0>
    argNames:
    - self
    - boundary
    - callbacks
    - max_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 965
    functionName: multipart.multipart.MultipartParser.__init__
    functionSourceFile: multipart.multipart
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    - <builtin>.frozenset
    - <builtin>.len
    - boundary.encode
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boundary.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: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1006
    functionName: multipart.multipart.MultipartParser.write
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - multipart.multipart.BaseParser.callback
    - <builtin>.list
    - multipart.multipart.MultipartParser._internal_write.data_callback
    - <builtin>.bytes
    - multipart.multipart.join_bytes
    - <builtin>.int
    - <builtin>.len
    - multipart.multipart.MultipartParser._internal_write.delete_mark
    - multipart.multipart.MultipartParser._internal_write
    - multipart.multipart.MultipartParser._internal_write.set_mark
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 41
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 58
    ICount: 30
    IfCount: 41
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - data
    - length
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1042
    functionName: multipart.multipart.MultipartParser._internal_write
    functionSourceFile: multipart.multipart
    functionUses: 3
    functionsReached:
    - multipart.multipart.BaseParser.callback
    - <builtin>.list
    - multipart.multipart.MultipartParser._internal_write.data_callback
    - <builtin>.bytes
    - multipart.multipart.join_bytes
    - <builtin>.len
    - multipart.multipart.MultipartParser._internal_write.delete_mark
    - multipart.multipart.MultipartParser._internal_write.set_mark
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1056
    functionName: multipart.multipart.MultipartParser._internal_write.set_mark
    functionSourceFile: multipart.multipart
    functionUses: 4
    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 0x7f133f905400>
    argNames:
    - name
    - reset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1060
    functionName: multipart.multipart.MultipartParser._internal_write.delete_mark
    functionSourceFile: multipart.multipart
    functionUses: 4
    functionsReached: []
    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 0x7f133f905700>
    argNames:
    - name
    - remaining
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1068
    functionName: multipart.multipart.MultipartParser._internal_write.data_callback
    functionSourceFile: multipart.multipart
    functionUses: 4
    functionsReached:
    - multipart.multipart.BaseParser.callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1430
    functionName: multipart.multipart.MultipartParser.finalize
    functionSourceFile: multipart.multipart
    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: 1441
    functionName: multipart.multipart.MultipartParser.__repr__
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.float
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: multipart.multipart.FormParser
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - <builtin>.float
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f133f8c8b80>
    - <ast.Constant object at 0x7f133f8c8b50>
    - <ast.Constant object at 0x7f133f8c8b20>
    - <ast.Name object at 0x7f133f8c8af0>
    - <ast.Name object at 0x7f133f8c8ac0>
    - <ast.Dict object at 0x7f133f8c8a90>
    argNames:
    - self
    - content_type
    - on_field
    - on_file
    - on_end
    - boundary
    - file_name
    - FileClass
    - FieldClass
    - 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: 1491
    functionName: multipart.multipart.FormParser.__init__
    functionSourceFile: multipart.multipart
    functionUses: 2
    functionsReached:
    - multipart.multipart.MultipartParser.__init__
    - <builtin>.isinstance
    - <builtin>.super
    - multipart.multipart.OctetStreamParser.__init__
    - <builtin>.frozenset
    - multipart.multipart.QuerystringParser.__init__
    - <builtin>.len
    - boundary.encode
    - logging.getLogger
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - FormParserError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1528
    functionName: multipart.multipart.FormParser.__init__.on_start
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - io.BytesIO
    - os.path.splitext
    - logging.getLogger
    - multipart.multipart.File.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - data
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1532
    functionName: multipart.multipart.FormParser.__init__.on_data
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - file.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: file.write
    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: 1
    functionLinenumber: 1690
    functionName: multipart.multipart.FormParser.__init__._on_end
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - file.finalize
    - writer.finalize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: file.finalize
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1559
    functionName: multipart.multipart.FormParser.__init__.on_field_start
    functionSourceFile: multipart.multipart
    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:
    - data
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1562
    functionName: multipart.multipart.FormParser.__init__.on_field_name
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - name_buffer.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name_buffer.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - data
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1565
    functionName: multipart.multipart.FormParser.__init__.on_field_data
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.multipart.Field.__init__
    - f.write
    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: 1572
    functionName: multipart.multipart.FormParser.__init__.on_field_end
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.multipart.Field.__init__
    - f.finalize
    - f.set_none
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1615
    functionName: multipart.multipart.FormParser.__init__.on_part_begin
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - data
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1620
    functionName: multipart.multipart.FormParser.__init__.on_part_data
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - writer.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: writer.write
    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: 1
    functionLinenumber: 1626
    functionName: multipart.multipart.FormParser.__init__.on_part_end
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - f.finalize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - data
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1634
    functionName: multipart.multipart.FormParser.__init__.on_header_field
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - header_name.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: header_name.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: []
    argNames:
    - data
    - start
    - end
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1637
    functionName: multipart.multipart.FormParser.__init__.on_header_value
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - header_value.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: header_value.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: 1640
    functionName: multipart.multipart.FormParser.__init__.on_header_end
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1645
    functionName: multipart.multipart.FormParser.__init__.on_headers_finished
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.decoders.QuotedPrintableDecoder.__init__
    - options.get
    - multipart.multipart.Field.__init__
    - headers.get
    - multipart.decoders.Base64Decoder.__init__
    - email.message.Message.get_params
    - multipart.multipart.File.__init__
    - os.path.splitext
    - value.decode
    - key.encode
    - logging.getLogger
    - multipart.multipart.parse_options_header
    - <builtin>.isinstance
    - params.pop
    - value.split
    - <builtin>.bytearray
    - io.BytesIO
    - value.lower
    - email.message.Message
    - value.encode
    linkageType: pythonLinkage
    raised:
    - FormParserError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.finalize
    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
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1718
    functionName: multipart.multipart.FormParser.write
    functionSourceFile: multipart.multipart
    functionUses: 1
    functionsReached:
    - multipart.multipart.BaseParser.callback
    - <builtin>.list
    - multipart.multipart.QuerystringParser._internal_write
    - multipart.multipart.MultipartParser._internal_write.data_callback
    - <builtin>.bytes
    - multipart.multipart.join_bytes
    - data.find
    - multipart.multipart.OctetStreamParser.write
    - <builtin>.int
    - <builtin>.len
    - multipart.multipart.MultipartParser._internal_write.delete_mark
    - multipart.multipart.MultipartParser.write
    - multipart.multipart.QuerystringParser.write
    - multipart.multipart.MultipartParser._internal_write
    - multipart.multipart.MultipartParser._internal_write.set_mark
    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: 1732
    functionName: multipart.multipart.FormParser.finalize
    functionSourceFile: multipart.multipart
    functionUses: 1
    functionsReached:
    - multipart.multipart.BaseParser.callback
    - <builtin>.hasattr
    - multipart.multipart.QuerystringParser.finalize
    - multipart.multipart.OctetStreamParser.finalize
    - multipart.multipart.MultipartParser.finalize
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 9
    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: 1737
    functionName: multipart.multipart.FormParser.close
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - multipart.multipart.BaseParser.close
    - <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: 1742
    functionName: multipart.multipart.FormParser.__repr__
    functionSourceFile: multipart.multipart
    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 0x7f133f806490>
    - <ast.Dict object at 0x7f133f8064c0>
    argNames:
    - headers
    - on_field
    - on_file
    - trust_x_headers
    - config
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1746
    functionName: multipart.multipart.create_form_parser
    functionSourceFile: multipart.multipart
    functionUses: 1
    functionsReached:
    - multipart.multipart.QuerystringParser.__init__
    - <builtin>.len
    - content_type.decode
    - <builtin>.range
    - headers.get
    - multipart.multipart.MultipartParser.__init__
    - email.message.Message.get_params
    - multipart.multipart.FormParser.__init__
    - value.decode
    - boundary.encode
    - logging.getLogger
    - multipart.multipart.parse_options_header
    - key.encode
    - <builtin>.isinstance
    - params.get
    - params.pop
    - value.split
    - <builtin>.frozenset
    - <builtin>.super
    - multipart.multipart.OctetStreamParser.__init__
    - value.lower
    - email.message.Message
    - value.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: params.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: content_type.decode
    functionSourceFile: <builtin>
    functionUses: 2
    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 0x7f133f80b550>
    argNames:
    - headers
    - input_stream
    - on_field
    - on_file
    - chunk_size
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 1790
    functionName: multipart.multipart.parse_form
    functionSourceFile: multipart.multipart
    functionUses: 0
    functionsReached:
    - input_stream.read
    - multipart.multipart.join_bytes
    - data.find
    - multipart.multipart.QuerystringParser.__init__
    - <builtin>.len
    - multipart.multipart.FormParser.finalize
    - content_type.decode
    - <builtin>.range
    - headers.get
    - multipart.multipart.MultipartParser.__init__
    - email.message.Message.get_params
    - multipart.multipart.MultipartParser._internal_write.data_callback
    - multipart.multipart.FormParser.__init__
    - <builtin>.float
    - multipart.multipart.QuerystringParser.write
    - multipart.multipart.MultipartParser._internal_write
    - value.decode
    - boundary.encode
    - multipart.multipart.OctetStreamParser.finalize
    - logging.getLogger
    - multipart.multipart.parse_options_header
    - key.encode
    - multipart.multipart.create_form_parser
    - multipart.multipart.QuerystringParser._internal_write
    - <builtin>.isinstance
    - <builtin>.min
    - params.get
    - params.pop
    - value.split
    - <builtin>.frozenset
    - multipart.multipart.OctetStreamParser.write
    - <builtin>.int
    - multipart.multipart.QuerystringParser.finalize
    - multipart.multipart.MultipartParser.write
    - multipart.multipart.MultipartParser._internal_write.set_mark
    - multipart.multipart.BaseParser.callback
    - <builtin>.list
    - <builtin>.hasattr
    - <builtin>.super
    - <builtin>.bytes
    - multipart.multipart.OctetStreamParser.__init__
    - value.lower
    - multipart.multipart.FormParser.write
    - multipart.multipart.MultipartParser._internal_write.delete_mark
    - email.message.Message
    - multipart.multipart.MultipartParser.finalize
    - value.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: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: input_stream.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: multipart.decoders
    functionSourceFile: multipart.decoders
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytearray
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.b64decode
    functionSourceFile: base64
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: multipart.decoders.Base64Decoder.close
    functionSourceFile: multipart.decoders
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 101
    functionName: multipart.decoders.Base64Decoder.__repr__
    functionSourceFile: multipart.decoders
    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: binascii.a2b_qp
    functionSourceFile: binascii
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: multipart.decoders.QuotedPrintableDecoder.close
    functionSourceFile: multipart.decoders
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 171
    functionName: multipart.decoders.QuotedPrintableDecoder.__repr__
    functionSourceFile: multipart.decoders
    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: multipart.exceptions
    functionSourceFile: multipart.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...python-multipart.fuzz.fuzz_decoders':
  - 40
  - 39
  - 7
  '...python-multipart.fuzz.fuzz_decoders.TestOneInput':
  - 24
  - 26
  - 29
  '...python-multipart.fuzz.fuzz_decoders.fuzz_base64_decoder':
  - 12
  - 13
  - 14
  '...python-multipart.fuzz.fuzz_decoders.fuzz_quoted_decoder':
  - 18
  - 19
  - 20
  '...python-multipart.fuzz.fuzz_decoders.main':
  - 35
  - 36
  multipart.decoders.Base64Decoder:
  - 9
  multipart.decoders.Base64Decoder.__init__:
  - 38
  multipart.decoders.Base64Decoder.close:
  - 81
  - 82
  - 78
  multipart.decoders.Base64Decoder.finalize:
  - 98
  - 99
  - 93
  - 85
  multipart.decoders.Base64Decoder.write:
  - 65
  - 68
  - 69
  - 42
  - 75
  - 51
  - 55
  - 59
  - 61
  multipart.decoders.QuotedPrintableDecoder:
  - 106
  multipart.decoders.QuotedPrintableDecoder.close:
  - 147
  - 150
  - 151
  multipart.decoders.QuotedPrintableDecoder.finalize:
  - 163
  - 164
  - 168
  - 169
  - 154
  multipart.decoders.QuotedPrintableDecoder.write:
  - 132
  - 139
  - 140
  - 144
  - 120
  - 126
  multipart.exceptions.DecodeError:
  - 28
  multipart.exceptions.FileError:
  - 34
  multipart.exceptions.FormParserError:
  - 2
  multipart.exceptions.MultipartParseError:
  - 16
  multipart.exceptions.ParseError:
  - 6
  multipart.exceptions.QuerystringParseError:
  - 22
  multipart.multipart:
  - 18
  - 85
  - 142
  multipart.multipart.BaseParser:
  - 568
  multipart.multipart.BaseParser.__init__:
  - 589
  multipart.multipart.BaseParser.callback:
  - 608
  - 610
  - 613
  - 614
  - 616
  - 617
  - 592
  - 603
  - 604
  multipart.multipart.BaseParser.set_callback:
  - 620
  - 629
  - 630
  multipart.multipart.Field:
  - 201
  multipart.multipart.Field.__eq__:
  - 311
  multipart.multipart.Field.__repr__:
  - 320
  - 322
  - 324
  - 317
  multipart.multipart.Field.close:
  - 281
  - 283
  - 284
  multipart.multipart.Field.field_name:
  - 299
  multipart.multipart.Field.finalize:
  - 277
  - 278
  multipart.multipart.Field.from_value:
  - 226
  - 238
  - 239
  - 240
  - 242
  - 243
  multipart.multipart.Field.on_data:
  - 258
  - 267
  - 269
  multipart.multipart.Field.on_end:
  - 272
  - 273
  - 274
  multipart.multipart.Field.set_none:
  - 289
  multipart.multipart.Field.value:
  - 304
  - 305
  - 306
  multipart.multipart.Field.write:
  - 255
  - 247
  multipart.multipart.FieldProtocol.__init__:
  - 71
  multipart.multipart.FieldProtocol.set_none:
  - 74
  multipart.multipart.File:
  - 328
  multipart.multipart.File.__init__:
  - 352
  - 356
  - 368
  - 367
  multipart.multipart.File.__repr__:
  - 564
  multipart.multipart.File._get_disk_file:
  - 448
  - 449
  - 451
  - 452
  - 453
  - 454
  - 457
  - 458
  - 464
  - 466
  - 467
  - 471
  - 477
  - 479
  - 481
  - 482
  - 487
  - 491
  - 493
  - 499
  - 500
  multipart.multipart.File.actual_file_name:
  - 386
  multipart.multipart.File.close:
  - 561
  - 557
  multipart.multipart.File.field_name:
  - 374
  multipart.multipart.File.file_name:
  - 381
  multipart.multipart.File.file_object:
  - 393
  multipart.multipart.File.finalize:
  - 554
  - 551
  multipart.multipart.File.flush_to_disk:
  - 421
  - 422
  - 426
  - 429
  - 432
  - 435
  - 445
  - 414
  multipart.multipart.File.in_memory:
  - 408
  multipart.multipart.File.on_data:
  - 513
  - 522
  - 523
  - 525
  - 526
  - 529
  - 530
  - 537
  - 538
  - 539
  - 540
  multipart.multipart.File.on_end:
  - 546
  - 548
  multipart.multipart.File.size:
  - 401
  multipart.multipart.File.write:
  - 506
  - 510
  multipart.multipart.FileProtocol.__init__:
  - 78
  multipart.multipart.FormParser:
  - 1482
  - 1446
  multipart.multipart.FormParser.__init__:
  - 1697
  - 1602
  - 1603
  - 1604
  - 1549
  - 1521
  - 1522
  - 1554
  - 1713
  - 1525
  - 1591
  - 1503
  multipart.multipart.FormParser.__init__._on_end:
  - 1539
  - 1542
  - 1545
  - 1546
  - 1587
  - 1588
  - 1692
  - 1693
  - 1694
  multipart.multipart.FormParser.__init__.on_data:
  - 1534
  multipart.multipart.FormParser.__init__.on_field_data:
  - 1568
  - 1570
  - 1567
  multipart.multipart.FormParser.__init__.on_field_end:
  - 1575
  - 1578
  - 1580
  - 1582
  - 1583
  multipart.multipart.FormParser.__init__.on_field_name:
  - 1563
  multipart.multipart.FormParser.__init__.on_header_end:
  - 1641
  multipart.multipart.FormParser.__init__.on_header_field:
  - 1635
  multipart.multipart.FormParser.__init__.on_header_value:
  - 1638
  multipart.multipart.FormParser.__init__.on_headers_finished:
  - 1664
  - 1670
  - 1672
  - 1675
  - 1676
  - 1678
  - 1679
  - 1682
  - 1683
  - 1652
  - 1653
  - 1656
  - 1657
  - 1661
  - 1662
  multipart.multipart.FormParser.__init__.on_part_data:
  - 1622
  multipart.multipart.FormParser.__init__.on_part_end:
  - 1632
  - 1628
  - 1629
  - 1630
  multipart.multipart.FormParser.__init__.on_start:
  - 1530
  multipart.multipart.FormParser.__repr__:
  - 1743
  multipart.multipart.FormParser.close:
  - 1738
  - 1739
  - 1740
  multipart.multipart.FormParser.finalize:
  - 1733
  - 1734
  - 1735
  multipart.multipart.FormParser.write:
  - 1728
  - 1730
  - 1719
  multipart.multipart.MultipartParser:
  - 945
  multipart.multipart.MultipartParser.__init__:
  - 993
  - 994
  - 998
  - 969
  - 1004
  - 975
  multipart.multipart.MultipartParser._internal_write:
  - 1089
  - 1091
  - 1093
  - 1104
  - 1107
  - 1108
  - 1111
  - 1112
  - 1118
  - 1119
  - 1121
  - 1122
  - 1130
  - 1137
  - 1139
  - 1140
  - 1147
  - 1153
  - 1159
  - 1160
  - 1166
  - 1170
  - 1171
  - 1180
  - 1182
  - 1184
  - 1185
  - 1190
  - 1195
  - 1197
  - 1198
  - 1202
  - 1204
  - 1209
  - 1215
  - 1218
  - 1219
  - 1220
  - 1223
  - 1225
  - 1227
  - 1228
  - 1237
  - 1241
  - 1243
  - 1244
  - 1248
  - 1251
  - 1253
  - 1259
  - 1272
  - 1279
  - 1295
  - 1297
  - 1300
  - 1301
  - 1309
  - 1315
  - 1320
  - 1330
  - 1333
  - 1335
  - 1341
  - 1342
  - 1357
  - 1359
  - 1362
  - 1363
  - 1371
  - 1378
  - 1380
  - 1381
  - 1387
  - 1393
  - 1395
  - 1396
  - 1401
  - 1402
  - 1417
  - 1418
  - 1419
  multipart.multipart.MultipartParser._internal_write.data_callback:
  - 1069
  - 1070
  - 1075
  - 1076
  - 1082
  - 1083
  multipart.multipart.MultipartParser._internal_write.delete_mark:
  - 1061
  multipart.multipart.MultipartParser.finalize:
  - 1431
  multipart.multipart.MultipartParser.write:
  - 1024
  - 1025
  - 1036
  - 1007
  - 1021
  - 1022
  multipart.multipart.MultipartState:
  - 101
  multipart.multipart.OctetStreamParser:
  - 645
  multipart.multipart.OctetStreamParser.__init__:
  - 664
  - 660
  multipart.multipart.OctetStreamParser.finalize:
  - 706
  - 703
  multipart.multipart.OctetStreamParser.write:
  - 679
  - 680
  - 684
  - 685
  - 687
  - 688
  - 699
  - 670
  multipart.multipart.QuerystringParser:
  - 713
  multipart.multipart.QuerystringParser.__init__:
  - 746
  - 739
  multipart.multipart.QuerystringParser.__repr__:
  - 939
  multipart.multipart.QuerystringParser._internal_write:
  - 899
  - 900
  - 901
  - 912
  - 917
  - 918
  - 926
  - 800
  - 807
  - 808
  - 810
  - 811
  - 815
  - 825
  - 830
  - 833
  - 834
  - 835
  - 840
  - 841
  - 843
  - 845
  - 847
  - 856
  - 861
  - 862
  - 863
  - 870
  - 876
  - 877
  - 887
  - 890
  - 893
  - 894
  - 895
  multipart.multipart.QuerystringParser.finalize:
  - 936
  - 929
  - 934
  - 935
  multipart.multipart.QuerystringParser.write:
  - 769
  - 770
  - 772
  - 773
  - 784
  - 755
  multipart.multipart.QuerystringState:
  - 89
  multipart.multipart._FormProtocol.close:
  - 67
  multipart.multipart._FormProtocol.finalize:
  - 64
  multipart.multipart._FormProtocol.write:
  - 61
  multipart.multipart.create_form_parser:
  - 1767
  - 1768
  - 1769
  - 1774
  - 1775
  - 1778
  - 1781
  - 1784
  - 1753
  multipart.multipart.join_bytes:
  - 154
  multipart.multipart.parse_form:
  - 1824
  - 1825
  - 1828
  - 1797
  - 1829
  - 1833
  - 1837
  - 1811
  - 1815
  - 1816
  - 1817
  - 1819
  multipart.multipart.parse_options_header:
  - 161
  - 193
  - 194
  - 195
  - 165
  - 166
  - 196
  - 169
  - 172
  - 173
  - 177
  - 179
  - 182
  - 184
  - 189
  - 158
Fuzzer filename: /src/python-multipart/fuzz/fuzz_decoders.py
Inheritance:
  multipart.decoders.Base64Decoder: []
  multipart.decoders.QuotedPrintableDecoder: []
  multipart.exceptions.DecodeError:
  - ParseError
  multipart.exceptions.FileError:
  - FormParserError
  - OSError
  multipart.exceptions.FormParserError:
  - ValueError
  multipart.exceptions.MultipartParseError:
  - ParseError
  multipart.exceptions.ParseError:
  - FormParserError
  multipart.exceptions.QuerystringParseError:
  - ParseError
  multipart.multipart.BaseParser: []
  multipart.multipart.Field: []
  multipart.multipart.FieldProtocol:
  - _FormProtocol
  - Protocol
  multipart.multipart.File: []
  multipart.multipart.FileConfig:
  - TypedDict
  multipart.multipart.FileProtocol:
  - _FormProtocol
  - Protocol
  multipart.multipart.FormParser: []
  multipart.multipart.FormParserConfig:
  - TypedDict
  multipart.multipart.MultipartCallbacks:
  - TypedDict
  multipart.multipart.MultipartParser:
  - BaseParser
  multipart.multipart.MultipartState:
  - IntEnum
  multipart.multipart.OctetStreamCallbacks:
  - TypedDict
  multipart.multipart.OctetStreamParser:
  - BaseParser
  multipart.multipart.QuerystringCallbacks:
  - TypedDict
  multipart.multipart.QuerystringParser:
  - BaseParser
  multipart.multipart.QuerystringState:
  - IntEnum
  multipart.multipart._FormProtocol:
  - Protocol
ep:
  func_name: TestOneInput
  module: '...python-multipart.fuzz.fuzz_decoders'
