All classes:
- ftfy.bad_codecs.utf8_variants.IncrementalDecoder
- ftfy.bad_codecs.utf8_variants.StreamWriter
- ftfy.bad_codecs.utf8_variants.StreamReader
- ftfy.bad_codecs.sloppy.make_sloppy_codec.Codec
- ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalEncoder
- ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalDecoder
- ftfy.bad_codecs.sloppy.make_sloppy_codec.StreamWriter
- ftfy.bad_codecs.sloppy.make_sloppy_codec.StreamReader
- ftfy.ExplanationStep
- ftfy.ExplainedText
- ftfy.TextFixerConfig
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_fix'
    functionSourceFile: '...fuzz_fix'
    functionUses: 0
    functionsReached:
    - '...fuzz_fix.main'
    - atheris.Setup
    - atheris.Fuzz
    - atheris.instrument_imports
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_imports
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: '...fuzz_fix.TestInput'
    functionSourceFile: '...fuzz_fix'
    functionUses: 0
    functionsReached:
    - atheris.FuzzedDataProvider
    - fdp.ConsumeUnicodeNoSurrogates
    - f.close
    - <builtin>.open
    - <builtin>.str
    - fdp.ConsumeBytes
    - f.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.close
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeBytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 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: 44
    functionName: '...fuzz_fix.main'
    functionSourceFile: '...fuzz_fix'
    functionUses: 1
    functionsReached:
    - atheris.Setup
    - atheris.Fuzz
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.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: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: ftfy
    functionSourceFile: ftfy
    functionUses: 0
    functionsReached:
    - ftfy.bad_codecs.ok
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: ftfy.bad_codecs.ok
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: ftfy.ExplanationStep.__repr__
    functionSourceFile: ftfy
    functionUses: 0
    functionsReached:
    - <builtin>.tuple
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - config
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: ftfy._config_from_kwargs
    functionSourceFile: ftfy
    functionUses: 11
    functionsReached:
    - typing.NamedTuple._replace
    - kwargs.copy
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.warn
    functionSourceFile: warnings
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.copy
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple._replace
    functionSourceFile: typing
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - fixer_name
    - text
    - config
    - steps
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 270
    functionName: ftfy._try_fix
    functionSourceFile: ftfy
    functionUses: 6
    functionsReached:
    - <builtin>.getattr
    - typing.cast
    - steps.append
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.__init__
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: steps.append
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast
    functionSourceFile: typing
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18ecb9640>
    argNames:
    - text
    - config
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 290
    functionName: ftfy.fix_text
    functionSourceFile: ftfy
    functionUses: 0
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - out.append
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - typing.cast
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - steps.extend
    - chardata.C1_CONTROL_RE.search
    - ftfy._try_fix
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - ftfy.fixes.decode_inconsistent_utf8
    - <builtin>.len
    - text.find
    - steps.append
    - encoding.startswith
    - <builtin>.getattr
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - ftfy.fix_and_explain
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    - unicodedata.normalize
    linkageType: pythonLinkage
    raised:
    - UnicodeError
    returnType: N/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: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.find
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 3
    IfCount: 10
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18ed17490>
    argNames:
    - text
    - config
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 364
    functionName: ftfy.fix_and_explain
    functionSourceFile: ftfy
    functionUses: 5
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - typing.cast
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - steps.extend
    - chardata.C1_CONTROL_RE.search
    - ftfy._try_fix
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - ftfy.fixes.decode_inconsistent_utf8
    - <builtin>.len
    - steps.append
    - encoding.startswith
    - <builtin>.getattr
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    - unicodedata.normalize
    linkageType: pythonLinkage
    raised:
    - UnicodeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: out.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e6a90a0>
    argNames:
    - text
    - config
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 582
    functionName: ftfy.fix_encoding
    functionSourceFile: ftfy
    functionUses: 8
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - <builtin>.len
    - encoding.startswith
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e5ba700>
    argNames:
    - text
    - config
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 424
    functionName: ftfy.fix_encoding_and_explain
    functionSourceFile: ftfy
    functionUses: 10
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - <builtin>.len
    - encoding.startswith
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    linkageType: pythonLinkage
    raised:
    - UnicodeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: steps.extend
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unicodedata.normalize
    functionSourceFile: unicodedata
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 4
    IfCount: 15
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - config
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 468
    functionName: ftfy._fix_encoding_one_step_and_explain
    functionSourceFile: ftfy
    functionUses: 11
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - UTF8_DETECTOR_RE.sub
    - encoded_bytes.decode
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - <builtin>.len
    - encoding.startswith
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - <builtin>.bool
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: plan_so_far.extend
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: ftfy.chardata.possible_encoding
    functionSourceFile: ftfy.chardata
    functionUses: 12
    functionsReached:
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 412
    functionName: ftfy.badness.is_bad
    functionSourceFile: ftfy.badness
    functionUses: 12
    functionsReached:
    - <builtin>.bool
    - BADNESS_RE.search
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: possible_1byte_encodings.append
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast.encode
    functionSourceFile: typing
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chardata.ALTERED_UTF8_RE.search
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - byts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 419
    functionName: ftfy.fixes.restore_byte_a0
    functionSourceFile: ftfy.fixes
    functionUses: 12
    functionsReached:
    - A_GRAVE_WORD_RE.sub
    - ALTERED_UTF8_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: transcode_steps.append
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoding.startswith
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - byts
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 442
    functionName: ftfy.fixes.replace_lossy_sequences
    functionSourceFile: ftfy.fixes
    functionUses: 12
    functionsReached:
    - LOSSY_UTF8_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoded_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chardata.UTF8_DETECTOR_RE.search
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 481
    functionName: ftfy.fixes.decode_inconsistent_utf8
    functionSourceFile: ftfy.fixes
    functionUses: 12
    functionsReached:
    - UTF8_DETECTOR_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chardata.C1_CONTROL_RE.search
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 505
    functionName: ftfy.fixes.fix_c1_controls
    functionSourceFile: ftfy.fixes
    functionUses: 12
    functionsReached:
    - C1_CONTROL_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e6898e0>
    argNames:
    - text
    - config
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 603
    functionName: ftfy.fix_text_segment
    functionSourceFile: ftfy
    functionUses: 0
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - typing.cast
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - steps.extend
    - chardata.C1_CONTROL_RE.search
    - ftfy._try_fix
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - ftfy.fixes.decode_inconsistent_utf8
    - <builtin>.len
    - steps.append
    - encoding.startswith
    - <builtin>.getattr
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - ftfy.fix_and_explain
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    - unicodedata.normalize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e586220>
    - <ast.Constant object at 0x7fb18e586340>
    argNames:
    - input_file
    - encoding
    - config
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 615
    functionName: ftfy.fix_file
    functionSourceFile: ftfy
    functionUses: 2
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - bstring.decode
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - typing.cast
    - bstring.startswith
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - steps.extend
    - chardata.C1_CONTROL_RE.search
    - ftfy._try_fix
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - ftfy.fixes.decode_inconsistent_utf8
    - <builtin>.len
    - steps.append
    - encoding.startswith
    - <builtin>.getattr
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - <builtin>.set
    - ftfy.fix_and_explain
    - ftfy.guess_bytes
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    - unicodedata.normalize
    - line.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - bstring
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 648
    functionName: ftfy.guess_bytes
    functionSourceFile: ftfy
    functionUses: 3
    functionsReached:
    - bstring.decode
    - bstring.startswith
    - <builtin>.set
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - UnicodeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bstring.startswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: bstring.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: <builtin>.set
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - plan
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 720
    functionName: ftfy.apply_plan
    functionSourceFile: ftfy
    functionUses: 1
    functionsReached:
    - obj.encode
    - obj.decode
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 763
    functionName: ftfy.explain_unicode
    functionSourceFile: ftfy
    functionUses: 0
    functionsReached:
    - wcwidth.wcwidth
    - unicodedata.name
    - char.isprintable
    - ANSI_RE.sub
    - <builtin>.print
    - ftfy.formatting.monospaced_width
    - <builtin>.ord
    - <builtin>.int
    - ftfy.formatting.character_width
    - <builtin>.max
    - char.encode
    - wcwidth.wcswidth
    - unicodedata.category
    - unicodedata.normalize
    - ftfy.formatting.display_ljust
    - ftfy.fixes.remove_terminal_escapes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: char.isprintable
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: char.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18ea74fd0>
    argNames:
    - text
    - width
    - fillchar
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 79
    functionName: ftfy.formatting.display_ljust
    functionSourceFile: ftfy.formatting
    functionUses: 1
    functionsReached:
    - wcwidth.wcwidth
    - ANSI_RE.sub
    - ftfy.formatting.monospaced_width
    - <builtin>.int
    - ftfy.formatting.character_width
    - <builtin>.max
    - wcwidth.wcswidth
    - unicodedata.normalize
    - ftfy.fixes.remove_terminal_escapes
    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>.ord
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unicodedata.category
    functionSourceFile: unicodedata
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unicodedata.name
    functionSourceFile: unicodedata
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ftfy.formatting
    functionSourceFile: ftfy.formatting
    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:
    - char
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: ftfy.formatting.character_width
    functionSourceFile: ftfy.formatting
    functionUses: 4
    functionsReached:
    - wcwidth.wcwidth
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wcwidth.wcwidth
    functionSourceFile: wcwidth
    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>.int
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 37
    functionName: ftfy.formatting.monospaced_width
    functionSourceFile: ftfy.formatting
    functionUses: 4
    functionsReached:
    - ANSI_RE.sub
    - <builtin>.int
    - wcwidth.wcswidth
    - unicodedata.normalize
    - ftfy.fixes.remove_terminal_escapes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 145
    functionName: ftfy.fixes.remove_terminal_escapes
    functionSourceFile: ftfy.fixes
    functionUses: 5
    functionsReached:
    - ANSI_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wcwidth.wcswidth
    functionSourceFile: wcwidth
    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>.max
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e5ba4c0>
    argNames:
    - text
    - width
    - fillchar
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 114
    functionName: ftfy.formatting.display_rjust
    functionSourceFile: ftfy.formatting
    functionUses: 0
    functionsReached:
    - wcwidth.wcwidth
    - ANSI_RE.sub
    - ftfy.formatting.monospaced_width
    - <builtin>.int
    - ftfy.formatting.character_width
    - <builtin>.max
    - wcwidth.wcswidth
    - unicodedata.normalize
    - ftfy.fixes.remove_terminal_escapes
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e5bae50>
    argNames:
    - text
    - width
    - fillchar
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 144
    functionName: ftfy.formatting.display_center
    functionSourceFile: ftfy.formatting
    functionUses: 0
    functionsReached:
    - wcwidth.wcwidth
    - ANSI_RE.sub
    - ftfy.formatting.monospaced_width
    - <builtin>.int
    - ftfy.formatting.character_width
    - <builtin>.max
    - wcwidth.wcswidth
    - unicodedata.normalize
    - ftfy.fixes.remove_terminal_escapes
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: ftfy.fixes
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 37
    functionName: ftfy.fixes.fix_encoding_and_explain
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - <builtin>.len
    - encoding.startswith
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 49
    functionName: ftfy.fixes.fix_encoding
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - <builtin>.len
    - encoding.startswith
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - text
    - plan
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 61
    functionName: ftfy.fixes.apply_plan
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - obj.encode
    - warnings.warn
    - obj.decode
    - ftfy.apply_plan
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: ftfy.fixes._unescape_fixup
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - match.group
    - html.unescape
    - text.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match.group
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: html.unescape
    functionSourceFile: html
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 94
    functionName: ftfy.fixes.unescape_html
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - HTML_ENTITY_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: HTML_ENTITY_RE.sub
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.compile
    functionSourceFile: re
    functionUses: 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: ANSI_RE.sub
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 158
    functionName: ftfy.fixes.uncurl_quotes
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - DOUBLE_QUOTE_RE.sub
    - SINGLE_QUOTE_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: DOUBLE_QUOTE_RE.sub
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: SINGLE_QUOTE_RE.sub
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 168
    functionName: ftfy.fixes.fix_latin_ligatures
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - text.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.translate
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 186
    functionName: ftfy.fixes.fix_character_width
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - text.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 206
    functionName: ftfy.fixes.fix_line_breaks
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - text.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 262
    functionName: ftfy.fixes.convert_surrogate_pair
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - match.group
    - <builtin>.chr
    - <builtin>.ord
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.chr
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 274
    functionName: ftfy.fixes.fix_surrogates
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - SURROGATE_PAIR_RE.sub
    - SURROGATE_RE.search
    - SURROGATE_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: SURROGATE_RE.search
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: SURROGATE_PAIR_RE.sub
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: SURROGATE_RE.sub
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 297
    functionName: ftfy.fixes.remove_control_chars
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - text.translate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 330
    functionName: ftfy.fixes.remove_bom
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - <builtin>.chr
    - text.lstrip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.lstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 355
    functionName: ftfy.fixes.decode_escapes
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - ESCAPE_SEQUENCE_RE.sub
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 386
    functionName: ftfy.fixes.decode_escapes.decode_match
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - match.group
    - codecs.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.decode
    functionSourceFile: codecs
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ESCAPE_SEQUENCE_RE.sub
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: A_GRAVE_WORD_RE.sub
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 435
    functionName: ftfy.fixes.restore_byte_a0.replacement
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - match.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ALTERED_UTF8_RE.sub
    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: LOSSY_UTF8_RE.sub
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 489
    functionName: ftfy.fixes.decode_inconsistent_utf8.fix_embedded_mojibake
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - UTF8_DETECTOR_RE.sub
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ALTERED_UTF8_RE.sub
    - BADNESS_RE.search
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - <builtin>.len
    - encoding.startswith
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - match.group
    - ftfy.fixes.replace_lossy_sequences
    - C1_CONTROL_RE.sub
    - typing.cast.encode
    - plan_so_far.extend
    - <builtin>.bool
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - warnings.warn
    - ftfy._fix_encoding_one_step_and_explain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: UTF8_DETECTOR_RE.sub
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - match
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 501
    functionName: ftfy.fixes._c1_fixer
    functionSourceFile: ftfy.fixes
    functionUses: 0
    functionsReached:
    - match.group
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: C1_CONTROL_RE.sub
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: ftfy.chardata
    functionSourceFile: ftfy.chardata
    functionUses: 0
    functionsReached:
    - ftfy.chardata._build_regexes
    - <builtin>.range
    - ftfy.chardata._build_control_char_mapping
    - char.upper
    - <builtin>.chr
    - <builtin>.ord
    - re.compile
    - name.upper
    - html.unescape
    - name.endswith
    - itertools.chain
    - ftfy.chardata._build_html_entities
    - html.entities.html5.items
    - name.lower
    - byte_range.decode
    - unicodedata.normalize
    - ftfy.chardata._build_width_map
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: ftfy.chardata._build_regexes
    functionSourceFile: ftfy.chardata
    functionUses: 1
    functionsReached:
    - re.compile
    - byte_range.decode
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytes
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: byte_range.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: ftfy.chardata._build_html_entities
    functionSourceFile: ftfy.chardata
    functionUses: 1
    functionsReached:
    - char.upper
    - name.upper
    - html.unescape
    - name.endswith
    - html.entities.html5.items
    - name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: html.entities.html5.items
    functionSourceFile: html
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.endswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.upper
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: char.upper
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: ftfy.chardata._build_control_char_mapping
    functionSourceFile: ftfy.chardata
    functionUses: 1
    functionsReached:
    - <builtin>.range
    - itertools.chain
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    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: itertools.chain
    functionSourceFile: itertools
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: ftfy.chardata._build_width_map
    functionSourceFile: ftfy.chardata
    functionUses: 1
    functionsReached:
    - <builtin>.range
    - <builtin>.chr
    - unicodedata.normalize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: ftfy.badness
    functionSourceFile: ftfy.badness
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 390
    functionName: ftfy.badness.sequence_weirdness
    functionSourceFile: ftfy.badness
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - ftfy.badness.badness
    - BADNESS_RE.findall
    - warnings.warn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 403
    functionName: ftfy.badness.badness
    functionSourceFile: ftfy.badness
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - BADNESS_RE.findall
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: BADNESS_RE.findall
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: BADNESS_RE.search
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: ftfy.bad_codecs
    functionSourceFile: ftfy.bad_codecs
    functionUses: 0
    functionsReached:
    - codecs.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - encoding
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: ftfy.bad_codecs.search_function
    functionSourceFile: ftfy.bad_codecs
    functionUses: 0
    functionsReached:
    - encodings.normalize_encoding.startswith
    - encodings.normalize_encoding
    - CODECS.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encodings.normalize_encoding
    functionSourceFile: encodings
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encodings.normalize_encoding.startswith
    functionSourceFile: encodings
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: CODECS.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: codecs.register
    functionSourceFile: codecs
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: ftfy.bad_codecs.utf8_variants
    functionSourceFile: ftfy.bad_codecs.utf8_variants
    functionUses: 0
    functionsReached:
    - re.compile
    - codecs.CodecInfo
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - input
    - errors
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 96
    functionName: ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode
    functionSourceFile: ftfy.bad_codecs.utf8_variants
    functionUses: 0
    functionsReached:
    - match.start
    - <builtin>.len
    - ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode_step
    - <builtin>.chr
    - encodings.utf_8.IncrementalDecoder._buffer_decode
    - CESU8_RE.match
    - ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode_surrogates
    - SPECIAL_BYTES_RE.search
    - decoded_segments.append
    - input.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - input
    - errors
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 140
    functionName: ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode_step
    functionSourceFile: ftfy.bad_codecs.utf8_variants
    functionUses: 1
    functionsReached:
    - match.start
    - <builtin>.len
    - <builtin>.chr
    - CESU8_RE.match
    - encodings.utf_8.IncrementalDecoder._buffer_decode
    - ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode_surrogates
    - SPECIAL_BYTES_RE.search
    - input.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: decoded_segments.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: SPECIAL_BYTES_RE.search
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encodings.utf_8.IncrementalDecoder._buffer_decode
    functionSourceFile: encodings
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match.start
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: input.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - sup
    - input
    - errors
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 179
    functionName: ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode_surrogates
    functionSourceFile: ftfy.bad_codecs.utf8_variants
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - encodings.utf_8.IncrementalDecoder._buffer_decode
    - CESU8_RE.match
    - <builtin>.chr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: CESU8_RE.match
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e56ea00>
    argNames:
    - input
    - errors
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 232
    functionName: ftfy.bad_codecs.utf8_variants.StreamWriter.encode
    functionSourceFile: ftfy.bad_codecs.utf8_variants
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - encodings.utf_8.IncrementalEncoder
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encodings.utf_8.IncrementalEncoder
    functionSourceFile: encodings
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e56eac0>
    argNames:
    - input
    - errors
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 238
    functionName: ftfy.bad_codecs.utf8_variants.StreamReader.decode
    functionSourceFile: ftfy.bad_codecs.utf8_variants
    functionUses: 0
    functionsReached:
    - encodings.utf_8.IncrementalDecoder.decode
    - <builtin>.len
    - encodings.utf_8.IncrementalDecoder.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encodings.utf_8.IncrementalDecoder.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encodings.utf_8.IncrementalDecoder.decode
    functionSourceFile: encodings
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.CodecInfo
    functionSourceFile: codecs
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: ftfy.bad_codecs.sloppy
    functionSourceFile: ftfy.bad_codecs.sloppy
    functionUses: 0
    functionsReached:
    - <builtin>.range
    - <builtin>.enumerate
    - ftfy.bad_codecs.sloppy.make_sloppy_codec
    - codecs.Codec.__init__
    - <builtin>.list
    - encodings.normalize_encoding
    - all_bytes.decode
    - codecs.CodecInfo
    - codecs.charmap_build
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - encoding
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: ftfy.bad_codecs.sloppy.make_sloppy_codec
    functionSourceFile: ftfy.bad_codecs.sloppy
    functionUses: 1
    functionsReached:
    - <builtin>.range
    - <builtin>.enumerate
    - codecs.Codec.__init__
    - <builtin>.list
    - all_bytes.decode
    - codecs.CodecInfo
    - codecs.charmap_build
    - <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: all_bytes.decode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.enumerate
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.charmap_build
    functionSourceFile: codecs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e5d2e20>
    argNames:
    - self
    - input
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: ftfy.bad_codecs.sloppy.make_sloppy_codec.Codec.encode
    functionSourceFile: ftfy.bad_codecs.sloppy
    functionUses: 0
    functionsReached:
    - codecs.charmap_encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.charmap_encode
    functionSourceFile: codecs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e5d2a30>
    argNames:
    - self
    - input
    - errors
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 126
    functionName: ftfy.bad_codecs.sloppy.make_sloppy_codec.Codec.decode
    functionSourceFile: ftfy.bad_codecs.sloppy
    functionUses: 0
    functionsReached:
    - codecs.charmap_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.charmap_decode
    functionSourceFile: codecs
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e6a8a00>
    argNames:
    - self
    - input
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 130
    functionName: ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalEncoder.encode
    functionSourceFile: ftfy.bad_codecs.sloppy
    functionUses: 0
    functionsReached:
    - codecs.charmap_encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7fb18e6a88e0>
    argNames:
    - self
    - input
    - final
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalDecoder.decode
    functionSourceFile: ftfy.bad_codecs.sloppy
    functionUses: 0
    functionsReached:
    - codecs.charmap_decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: codecs.Codec.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: ftfy.cli
    functionSourceFile: ftfy.cli
    functionUses: 0
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - bstring.decode
    - UTF8_DETECTOR_RE.sub
    - pathlib.Path
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - os.path.realpath
    - sys.stderr.write
    - argparse.ArgumentParser
    - typing.cast
    - bstring.startswith
    - sys.exit
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ftfy._fix_encoding_one_step_and_explain
    - ALTERED_UTF8_RE.sub
    - normalization.lower
    - BADNESS_RE.search
    - steps.extend
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.cli.main
    - ftfy.badness.is_bad
    - <builtin>.len
    - ftfy._try_fix
    - steps.append
    - encoding.startswith
    - <builtin>.getattr
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - C1_CONTROL_RE.sub
    - ftfy.fixes.replace_lossy_sequences
    - typing.cast.encode
    - parser.add_argument
    - plan_so_far.extend
    - <builtin>.bool
    - parser.parse_args
    - <builtin>.set
    - ftfy.fix_file
    - ftfy.fix_and_explain
    - ftfy.guess_bytes
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - pathlib.Path.open
    - warnings.warn
    - sys.stdout.write
    - unicodedata.normalize
    - line.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 15
    IfCount: 6
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 45
    functionName: ftfy.cli.main
    functionSourceFile: ftfy.cli
    functionUses: 1
    functionsReached:
    - chardata.UTF8_DETECTOR_RE.search
    - typing.NamedTuple._replace
    - ftfy.fix_encoding
    - LOSSY_UTF8_RE.sub
    - typing.NamedTuple.__init__
    - kwargs.copy
    - bstring.decode
    - UTF8_DETECTOR_RE.sub
    - pathlib.Path
    - <builtin>.isinstance
    - ftfy._config_from_kwargs
    - encoded_bytes.decode
    - os.path.realpath
    - sys.stderr.write
    - argparse.ArgumentParser
    - typing.cast
    - bstring.startswith
    - sys.exit
    - A_GRAVE_WORD_RE.sub
    - transcode_steps.append
    - ftfy._fix_encoding_one_step_and_explain
    - ALTERED_UTF8_RE.sub
    - normalization.lower
    - BADNESS_RE.search
    - steps.extend
    - chardata.C1_CONTROL_RE.search
    - ftfy.fixes.decode_inconsistent_utf8
    - possible_1byte_encodings.append
    - ftfy.badness.is_bad
    - ftfy._try_fix
    - <builtin>.len
    - steps.append
    - encoding.startswith
    - <builtin>.getattr
    - ftfy.chardata.possible_encoding
    - ftfy.fixes.fix_c1_controls
    - C1_CONTROL_RE.sub
    - ftfy.fixes.replace_lossy_sequences
    - typing.cast.encode
    - parser.add_argument
    - plan_so_far.extend
    - <builtin>.bool
    - parser.parse_args
    - <builtin>.set
    - ftfy.fix_file
    - ftfy.fix_and_explain
    - ftfy.guess_bytes
    - ftfy.fix_encoding_and_explain
    - chardata.ALTERED_UTF8_RE.search
    - ftfy.fixes.restore_byte_a0
    - pathlib.Path.open
    - warnings.warn
    - sys.stdout.write
    - unicodedata.normalize
    - line.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: argparse.ArgumentParser
    functionSourceFile: argparse
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path
    functionSourceFile: pathlib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pathlib.Path.open
    functionSourceFile: pathlib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.realpath
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.write
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.exit
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalization.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.write
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_fix':
  - 48
  - 49
  - 18
  '...fuzz_fix.TestInput':
  - 32
  - 33
  - 34
  - 35
  - 37
  - 41
  - 22
  - 25
  - 26
  - 27
  - 28
  - 30
  - 31
  '...fuzz_fix.main':
  - 45
  - 46
  ftfy:
  - 1
  - 27
  - 35
  ftfy.ExplainedText:
  - 65
  ftfy.ExplanationStep:
  - 39
  ftfy.ExplanationStep.__repr__:
  - 57
  - 61
  ftfy.TextFixerConfig:
  - 95
  ftfy._config_from_kwargs:
  - 234
  - 238
  - 239
  - 244
  - 247
  ftfy._fix_encoding_one_step_and_explain:
  - 512
  - 513
  - 514
  - 518
  - 519
  - 520
  - 521
  - 522
  - 526
  - 529
  - 531
  - 532
  - 538
  - 539
  - 540
  - 541
  - 542
  - 547
  - 548
  - 551
  - 557
  - 558
  - 563
  - 568
  - 570
  - 571
  - 579
  - 469
  - 472
  - 473
  - 475
  - 476
  - 480
  - 481
  - 491
  - 492
  - 493
  - 494
  - 495
  - 507
  - 510
  ftfy._try_fix:
  - 276
  - 280
  - 282
  - 283
  - 284
  - 285
  ftfy.apply_plan:
  - 745
  - 746
  - 747
  - 748
  - 749
  - 750
  - 751
  - 752
  - 721
  ftfy.bad_codecs:
  - 1
  - 101
  ftfy.bad_codecs.ok:
  - 90
  ftfy.bad_codecs.search_function:
  - 69
  - 72
  - 74
  - 78
  - 81
  - 83
  - 56
  ftfy.bad_codecs.sloppy:
  - 160
  - 1
  - 164
  - 165
  - 166
  - 158
  ftfy.bad_codecs.sloppy.make_sloppy_codec:
  - 97
  - 101
  - 106
  - 107
  - 143
  - 145
  - 146
  - 84
  - 116
  - 117
  - 94
  ftfy.bad_codecs.sloppy.make_sloppy_codec.Codec.decode:
  - 127
  ftfy.bad_codecs.sloppy.make_sloppy_codec.Codec.encode:
  - 124
  ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalDecoder.decode:
  - 135
  ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalEncoder.encode:
  - 131
  ftfy.bad_codecs.utf8_variants:
  - 81
  - 1
  - 242
  - 69
  ftfy.bad_codecs.utf8_variants.IncrementalDecoder:
  - 85
  ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode:
  - 129
  - 99
  - 132
  - 135
  - 137
  - 120
  - 123
  ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode_step:
  - 160
  - 161
  - 165
  - 166
  - 169
  - 172
  - 141
  - 176
  - 155
  - 156
  - 157
  - 159
  ftfy.bad_codecs.utf8_variants.IncrementalDecoder._buffer_decode_surrogates:
  - 198
  - 199
  - 204
  - 209
  - 185
  - 219
  - 223
  ftfy.bad_codecs.utf8_variants.StreamReader.decode:
  - 239
  ftfy.bad_codecs.utf8_variants.StreamWriter.encode:
  - 233
  ftfy.badness:
  - 1
  - 274
  - 275
  ftfy.badness.badness:
  - 409
  - 404
  ftfy.badness.is_bad:
  - 420
  - 413
  ftfy.badness.sequence_weirdness:
  - 400
  - 396
  - 391
  ftfy.chardata:
  - 1
  - 28
  - 29
  - 159
  - 679
  - 680
  - 177
  - 59
  - 193
  - 208
  - 209
  - 82
  - 83
  - 210
  - 211
  - 212
  - 215
  - 216
  - 213
  - 214
  - 217
  - 218
  - 219
  - 220
  - 221
  - 222
  - 223
  - 224
  - 225
  - 226
  - 227
  - 228
  - 229
  - 119
  - 250
  ftfy.chardata._build_control_char_mapping:
  - 98
  - 105
  - 106
  - 108
  - 110
  - 112
  ftfy.chardata._build_html_entities:
  - 67
  - 68
  - 74
  - 75
  - 77
  - 78
  ftfy.chardata._build_regexes:
  - 33
  - 40
  - 42
  - 46
  - 47
  - 55
  ftfy.chardata._build_width_map:
  - 234
  - 242
  - 243
  - 244
  - 245
  ftfy.chardata.possible_encoding:
  - 94
  - 87
  ftfy.cli:
  - 1
  - 139
  - 140
  ftfy.cli.main:
  - 129
  - 130
  - 132
  - 133
  - 135
  - 136
  - 46
  - 51
  - 54
  - 60
  - 67
  - 73
  - 80
  - 87
  - 94
  - 97
  - 100
  - 105
  - 107
  - 110
  - 111
  - 112
  - 113
  - 116
  - 122
  - 125
  - 127
  ftfy.explain_unicode:
  - 785
  - 786
  - 789
  - 790
  - 791
  - 792
  - 793
  - 794
  - 795
  - 764
  ftfy.fix_and_explain:
  - 392
  - 394
  - 395
  - 396
  - 398
  - 399
  - 400
  - 402
  - 412
  - 414
  - 415
  - 416
  - 417
  - 420
  - 421
  - 367
  - 374
  - 375
  - 376
  - 378
  - 380
  - 381
  - 383
  ftfy.fix_encoding:
  - 583
  - 592
  - 593
  - 594
  - 595
  ftfy.fix_encoding_and_explain:
  - 448
  - 449
  - 451
  - 453
  - 456
  - 427
  - 461
  - 462
  - 463
  - 464
  - 465
  - 447
  ftfy.fix_file:
  - 640
  - 641
  - 642
  - 644
  - 645
  - 621
  - 631
  - 632
  - 633
  - 635
  - 636
  - 637
  - 638
  ftfy.fix_text:
  - 352
  - 291
  - 356
  - 357
  - 358
  - 359
  - 361
  - 340
  - 341
  - 342
  - 343
  - 348
  - 349
  - 350
  - 351
  ftfy.fix_text_segment:
  - 608
  - 609
  - 610
  - 611
  - 604
  ftfy.fixes:
  - 416
  - 1
  - 258
  - 259
  - 142
  - 342
  ftfy.fixes._c1_fixer:
  - 502
  ftfy.fixes._unescape_fixup:
  - 74
  - 78
  - 79
  - 81
  - 82
  - 86
  ftfy.fixes.apply_plan:
  - 65
  - 62
  - 70
  ftfy.fixes.convert_surrogate_pair:
  - 271
  - 269
  - 270
  - 263
  ftfy.fixes.decode_escapes:
  - 356
  - 390
  ftfy.fixes.decode_escapes.decode_match:
  - 387
  - 388
  ftfy.fixes.decode_inconsistent_utf8:
  - 482
  - 498
  ftfy.fixes.decode_inconsistent_utf8.fix_embedded_mojibake:
  - 490
  - 493
  - 494
  ftfy.fixes.fix_c1_controls:
  - 506
  - 510
  ftfy.fixes.fix_character_width:
  - 187
  - 203
  ftfy.fixes.fix_encoding:
  - 50
  - 58
  - 53
  ftfy.fixes.fix_encoding_and_explain:
  - 46
  - 41
  - 38
  ftfy.fixes.fix_latin_ligatures:
  - 169
  - 183
  ftfy.fixes.fix_line_breaks:
  - 250
  - 207
  ftfy.fixes.fix_surrogates:
  - 291
  - 275
  - 292
  - 293
  ftfy.fixes.remove_bom:
  - 338
  - 331
  ftfy.fixes.remove_control_chars:
  - 298
  - 327
  ftfy.fixes.remove_terminal_escapes:
  - 146
  - 155
  ftfy.fixes.replace_lossy_sequences:
  - 443
  - 478
  ftfy.fixes.restore_byte_a0:
  - 433
  - 420
  - 439
  ftfy.fixes.restore_byte_a0.replacement:
  - 436
  - 437
  ftfy.fixes.uncurl_quotes:
  - 165
  - 159
  ftfy.fixes.unescape_html:
  - 139
  - 95
  ftfy.formatting:
  - 1
  ftfy.formatting.character_width:
  - 17
  - 34
  ftfy.formatting.display_center:
  - 162
  - 163
  - 166
  - 145
  - 158
  ftfy.formatting.display_ljust:
  - 101
  - 105
  - 106
  - 110
  - 80
  ftfy.formatting.display_rjust:
  - 132
  - 136
  - 137
  - 140
  - 115
  ftfy.formatting.monospaced_width:
  - 76
  - 38
  ftfy.guess_bytes:
  - 673
  - 707
  - 709
  - 680
  - 649
  - 681
  - 683
  - 713
  - 685
  - 715
  - 717
Fuzzer filename: /src/fuzz_fix.py
Inheritance:
  ftfy.ExplainedText:
  - NamedTuple
  ftfy.ExplanationStep:
  - NamedTuple
  ftfy.TextFixerConfig:
  - NamedTuple
  ftfy.bad_codecs.sloppy.make_sloppy_codec.Codec: []
  ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalDecoder: []
  ftfy.bad_codecs.sloppy.make_sloppy_codec.IncrementalEncoder: []
  ftfy.bad_codecs.sloppy.make_sloppy_codec.StreamReader:
  - Codec
  ftfy.bad_codecs.sloppy.make_sloppy_codec.StreamWriter:
  - Codec
  ftfy.bad_codecs.utf8_variants.IncrementalDecoder:
  - UTF8IncrementalDecoder
  ftfy.bad_codecs.utf8_variants.StreamReader: []
  ftfy.bad_codecs.utf8_variants.StreamWriter: []
ep:
  func_name: TestInput
  module: '...fuzz_fix'
