All classes:
- face.errors.FaceException
- face.errors.ArgumentParseError
- face.errors.ArgumentArityError
- face.errors.InvalidSubcommand
- face.errors.UnknownFlag
- face.errors.InvalidFlagArgument
- face.errors.InvalidPositionalArgument
- face.errors.MissingRequiredFlags
- face.errors.DuplicateFlag
- face.errors.CommandLineError
- face.errors.UsageError
- face.parser.CommandParseResult
- face.parser.Flag
- face.parser.FlagDisplay
- face.parser.PosArgDisplay
- face.parser.PosArgSpec
- face.parser.Parser
- face.parser.parse_sv_line._face_dialect
- face.parser.ListParam
- face.parser.ChoicesParam
- face.parser.FilePathParam
- face.parser.FileValueParam
- face.helpers.StoutHelpFormatter
- face.helpers.HelpHandler
- face.command.Command
- face.testing.RunResult
- face.testing.CheckError
- face.testing.CommandChecker
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_command'
    functionSourceFile: '...fuzz_command'
    functionUses: 0
    functionsReached:
    - atheris.Fuzz
    - '...fuzz_command.main'
    - atheris.instrument_all
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 21
    functionName: '...fuzz_command.empty'
    functionSourceFile: '...fuzz_command'
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 25
    functionName: '...fuzz_command.TestOneInput'
    functionSourceFile: '...fuzz_command'
    functionUses: 0
    functionsReached:
    - fdp.ConsumeBool
    - ret.lower
    - keyword.iskeyword
    - boltons.strutils.camel2under.lower
    - ff_text.splitlines
    - text.splitlines
    - all_grafs.append
    - unwrapped.splitlines
    - flagfile_map.items
    - face.utils.normalize_flag_name
    - VALID_FLAG_RE.match
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.super
    - missing_flags.append
    - boltons.dictutils.OrderedMultiDict.add
    - face.parser.Parser._parse_subcmds
    - <builtin>.all
    - pfm.getlist
    - face.parser.Parser.parse
    - collections.OrderedDict.items
    - <builtin>.repr
    - cur_graf.append
    - flag.multi
    - <builtin>.sorted
    - ctx_parts.insert
    - inspect.ismethod
    - boltons.dictutils.OrderedMultiDict.update_extend
    - kwargs.pop
    - face.sinter.get_callable_labels
    - to_proc.pop
    - face.parser.Flag.__init__
    - ret.replace
    - boltons.iterutils.split
    - face.utils.flag_to_identifier
    - flag_map.items
    - <builtin>.getattr
    - required_args.update
    - face.parser.Parser.get_flag_map
    - face.parser.Parser._parse_single_flag
    - face.parser.FlagDisplay.__init__
    - face.parser.Parser._resolve_flags
    - face.utils.get_type_desc
    - face.parser.Parser._parse_flagfile
    - prs.post_posargs.parse
    - face.middleware.is_middleware
    - shlex.split
    - face.command.Command.get_flag_map
    - flag.lstrip
    - face.sinter.get_fb
    - inspect.isbuiltin
    - fb.get_arg_names
    - arg.lower
    - line.strip
    - ff_paths.append
    - boltons.strutils.camel2under
    - flag.endswith
    - arg.startswith
    - kw.pop
    - face.command.Command.add_middleware
    - face.sinter.get_arg_names
    - prs.posargs.parse
    - cur_chain.append
    - face.parser.CommandParseResult.__init__
    - face.utils.get_rdep_map
    - face.command.Command.add_command
    - <builtin>.tuple
    - <builtin>.set
    - fb.get_invocation_str
    - face.utils.unwrap_text
    - face.command.Command.get_dep_names
    - <builtin>.enumerate
    - ret.append
    - <builtin>.isinstance
    - args.append
    - <builtin>.callable
    - collections.OrderedDict
    - rdeps.update
    - codecs.open
    - face.middleware.check_middleware
    - face.parser.Flag.set_display
    - face.middleware.face_middleware
    - <builtin>.hasattr
    - ctx_parts.append
    - face.middleware.face_middleware.decorate_face_middleware
    - atheris.FuzzedDataProvider
    - fdp.ConsumeUnicodeNoSurrogates
    - fdp.ConsumeIntInRange
    - arg.split
    - <builtin>.range
    - <builtin>.len
    - face.parser._validate_char
    - face.command.Command.add
    - to_proc.extend
    - ff_path_seen.add
    - face.command.Command.__init__
    - boltons.dictutils.OrderedMultiDict
    - face.command._get_default_name
    - inspect.isfunction
    - path_or_file.read
    - os.path.abspath
    - face.command._docstring_to_doc
    - f.read
    - dep_map.get
    - face.parser.Parser._parse_flags
    - face.parser._arg_to_subcmd
    - collections.OrderedDict.get
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: 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.ConsumeIntInRange
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: 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: args.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeBool
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - a
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 140
    functionName: face.command.Command.add
    functionSourceFile: face.command
    functionUses: 4
    functionsReached:
    - kwargs.pop
    - face.sinter.get_callable_labels
    - ret.lower
    - face.parser.Flag.__init__
    - face.command.Command.add_middleware
    - keyword.iskeyword
    - boltons.strutils.camel2under.lower
    - face.middleware.check_middleware
    - ret.replace
    - face.parser.Flag.set_display
    - face.middleware.face_middleware
    - <builtin>.hasattr
    - face.utils.flag_to_identifier
    - text.splitlines
    - all_grafs.append
    - <builtin>.getattr
    - ctx_parts.append
    - face.middleware.face_middleware.decorate_face_middleware
    - unwrapped.splitlines
    - face.utils.normalize_flag_name
    - VALID_FLAG_RE.match
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.super
    - face.parser.FlagDisplay.__init__
    - <builtin>.len
    - face.utils.get_type_desc
    - face.command.Command.add_command
    - <builtin>.set
    - face.utils.unwrap_text
    - face.parser._validate_char
    - fb.get_invocation_str
    - face.command.Command.add
    - face.middleware.is_middleware
    - <builtin>.all
    - face.command.Command.__init__
    - face.command._get_default_name
    - inspect.isfunction
    - flag.lstrip
    - face.sinter.get_fb
    - <builtin>.isinstance
    - face.command._docstring_to_doc
    - collections.OrderedDict.items
    - inspect.isbuiltin
    - <builtin>.repr
    - <builtin>.callable
    - line.strip
    - cur_graf.append
    - flag.endswith
    - boltons.strutils.camel2under
    - ctx_parts.insert
    - collections.OrderedDict
    - <builtin>.list
    - inspect.ismethod
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - argv
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 696
    functionName: face.parser.Parser.parse
    functionSourceFile: face.parser
    functionUses: 2
    functionsReached:
    - codecs.open
    - ret.lower
    - to_proc.pop
    - ret.replace
    - boltons.iterutils.split
    - face.sinter.get_arg_names
    - <builtin>.hasattr
    - ff_text.splitlines
    - flag_map.items
    - prs.posargs.parse
    - <builtin>.getattr
    - cur_chain.append
    - required_args.update
    - face.parser.Parser.get_flag_map
    - flagfile_map.items
    - face.parser.CommandParseResult.__init__
    - boltons.funcutils.FunctionBuilder.from_func
    - face.utils.normalize_flag_name
    - <builtin>.super
    - face.parser.Parser._parse_single_flag
    - face.parser.Parser._resolve_flags
    - face.utils.get_rdep_map
    - arg.split
    - missing_flags.append
    - boltons.dictutils.OrderedMultiDict.add
    - <builtin>.len
    - <builtin>.tuple
    - <builtin>.set
    - face.parser.Parser._parse_flagfile
    - prs.post_posargs.parse
    - face.parser.Parser._parse_subcmds
    - shlex.split
    - face.command.Command.get_dep_names
    - to_proc.extend
    - ff_path_seen.add
    - <builtin>.all
    - face.command.Command.get_flag_map
    - pfm.getlist
    - boltons.dictutils.OrderedMultiDict
    - inspect.isfunction
    - path_or_file.read
    - <builtin>.enumerate
    - flag.lstrip
    - os.path.abspath
    - ret.append
    - face.sinter.get_fb
    - <builtin>.isinstance
    - inspect.isbuiltin
    - collections.OrderedDict.items
    - <builtin>.repr
    - fb.get_arg_names
    - <builtin>.callable
    - ff_paths.append
    - f.read
    - arg.lower
    - flag.multi
    - dep_map.get
    - face.parser.Parser._parse_flags
    - face.parser._arg_to_subcmd
    - arg.startswith
    - <builtin>.sorted
    - collections.OrderedDict.get
    - collections.OrderedDict
    - rdeps.update
    - <builtin>.list
    - inspect.ismethod
    - boltons.dictutils.OrderedMultiDict.update_extend
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: '...fuzz_command.main'
    functionSourceFile: '...fuzz_command'
    functionUses: 1
    functionsReached:
    - atheris.Fuzz
    - atheris.instrument_all
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: face
    functionSourceFile: face
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: face.helpers
    functionSourceFile: face.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - ret.lower
    - face.parser.Flag.__init__
    - VALID_FLAG_RE.match
    - flag.endswith
    - face.utils.normalize_flag_name
    - keyword.iskeyword
    - face.parser.FlagDisplay.__init__
    - flag.lstrip
    - ret.replace
    - face.parser.Flag.set_display
    - face.utils.get_type_desc
    - <builtin>.len
    - <builtin>.isinstance
    - face.utils.flag_to_identifier
    - <builtin>.repr
    - face.parser._validate_char
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 8
    argDefaultValues:
    - <ast.Name object at 0x7f7c1b8cf8e0>
    - <ast.Constant object at 0x7f7c1b8cf880>
    - <ast.Constant object at 0x7f7c1b8cf700>
    - <ast.Constant object at 0x7f7c1b8cfb20>
    - <ast.Constant object at 0x7f7c1b8cfb50>
    - <ast.Constant object at 0x7f7c1b8cfa60>
    argNames:
    - self
    - name
    - parse_as
    - missing
    - multi
    - char
    - doc
    - display
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 214
    functionName: face.parser.Flag.__init__
    functionSourceFile: face.parser
    functionUses: 8
    functionsReached:
    - <builtin>.callable
    - ret.lower
    - VALID_FLAG_RE.match
    - flag.endswith
    - face.utils.normalize_flag_name
    - keyword.iskeyword
    - face.parser.FlagDisplay.__init__
    - flag.lstrip
    - ret.replace
    - face.parser.Flag.set_display
    - face.utils.get_type_desc
    - <builtin>.len
    - <builtin>.isinstance
    - face.utils.flag_to_identifier
    - <builtin>.repr
    - face.parser._validate_char
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 16
    functionName: face.helpers._get_termios_winsize
    functionSourceFile: face.helpers
    functionUses: 6
    functionsReached:
    - array.array
    - fcntl.ioctl
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: array.array
    functionSourceFile: array
    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: fcntl.ioctl
    functionSourceFile: fcntl
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: face.helpers._get_environ_winsize
    functionSourceFile: face.helpers
    functionUses: 6
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 40
    functionName: face.helpers.get_winsize
    functionSourceFile: face.helpers
    functionUses: 5
    functionsReached:
    - face.helpers._get_environ_winsize
    - <builtin>.int
    - face.helpers._get_termios_winsize
    - array.array
    - fcntl.ioctl
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Name object at 0x7f7c1b70c100>
    argNames:
    - max_width
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 52
    functionName: face.helpers.get_wrap_width
    functionSourceFile: face.helpers
    functionUses: 4
    functionsReached:
    - face.helpers._get_environ_winsize
    - <builtin>.int
    - <builtin>.min
    - face.helpers._get_termios_winsize
    - face.helpers.get_winsize
    - array.array
    - fcntl.ioctl
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - indent
    - label
    - sep
    - doc
    - doc_start
    - max_doc_width
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: face.helpers._wrap_stout_pair
    functionSourceFile: face.helpers
    functionUses: 2
    functionsReached:
    - textwrap.wrap
    - lhs.ljust
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: textwrap.wrap
    functionSourceFile: textwrap
    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: lhs.ljust
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - indent
    - doc
    - max_width
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 89
    functionName: face.helpers._wrap_stout_cmd_doc
    functionSourceFile: face.helpers
    functionUses: 2
    functionsReached:
    - textwrap.fill
    - parts.append
    - doc.splitlines
    - boltons.iterutils.split
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: doc.splitlines
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: face.helpers._wrap_stout_cmd_doc.<lambda1>
    functionSourceFile: face.helpers
    functionUses: 0
    functionsReached:
    - l.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: l.lstrip
    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: boltons.iterutils.split
    functionSourceFile: boltons
    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: textwrap.fill
    functionSourceFile: textwrap
    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: parts.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1bd49640>
    - <ast.Name object at 0x7f7c1bd493d0>
    - <ast.Constant object at 0x7f7c1bd49910>
    argNames:
    - labels
    - indent
    - sep
    - width
    - max_width
    - min_doc_width
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 104
    functionName: face.helpers.get_stout_layout
    functionSourceFile: face.helpers
    functionUses: 3
    functionsReached:
    - face.helpers._get_environ_winsize
    - <builtin>.min
    - <builtin>.int
    - face.helpers._get_termios_winsize
    - face.helpers.get_winsize
    - face.helpers.get_wrap_width
    - <builtin>.len
    - array.array
    - fcntl.ioctl
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.dict
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: face.helpers.StoutHelpFormatter
    functionSourceFile: face.helpers
    functionUses: 0
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 213
    functionName: face.helpers.StoutHelpFormatter.__init__
    functionSourceFile: face.helpers
    functionUses: 2
    functionsReached:
    - kwargs.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.pop
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - labels
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 220
    functionName: face.helpers.StoutHelpFormatter._get_layout
    functionSourceFile: face.helpers
    functionUses: 2
    functionsReached:
    - face.helpers._get_environ_winsize
    - <builtin>.min
    - <builtin>.int
    - face.helpers._get_termios_winsize
    - face.helpers.get_stout_layout
    - face.helpers.get_winsize
    - face.helpers.get_wrap_width
    - <builtin>.len
    - array.array
    - fcntl.ioctl
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 12
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Tuple object at 0x7f7c1bcaea60>
    - <ast.Constant object at 0x7f7c1bcaee80>
    argNames:
    - self
    - parser
    - subcmds
    - program_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 229
    functionName: face.helpers.StoutHelpFormatter.get_help_text
    functionSourceFile: face.helpers
    functionUses: 1
    functionsReached:
    - parser.get_flags
    - boltons.iterutils.unique
    - face.helpers._wrap_stout_cmd_doc
    - boltons.iterutils.split
    - array.array
    - fcntl.ioctl
    - face.helpers.StoutHelpFormatter._get_layout
    - lhs.ljust
    - boltons.iterutils.unique.replace
    - <builtin>.min
    - <builtin>.int
    - ret.extend
    - face.helpers.get_stout_layout
    - face.helpers.get_winsize
    - face.helpers.get_wrap_width
    - <builtin>.len
    - <builtin>.tuple
    - face.helpers._get_environ_winsize
    - face.helpers._get_termios_winsize
    - face.helpers.StoutHelpFormatter.get_usage_line
    - textwrap.wrap
    - face.helpers._wrap_stout_pair
    - textwrap.fill
    - _parts.append
    - doc.splitlines
    - parts.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Tuple object at 0x7f7c1b872d90>
    - <ast.Constant object at 0x7f7c1b872e80>
    argNames:
    - self
    - parser
    - subcmds
    - program_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 315
    functionName: face.helpers.StoutHelpFormatter.get_usage_line
    functionSourceFile: face.helpers
    functionUses: 2
    functionsReached:
    - <builtin>.tuple
    - parser.get_flags
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.get_flags
    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: boltons.iterutils.unique
    functionSourceFile: boltons
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.iterutils.unique.replace
    functionSourceFile: boltons
    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: ret.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _parts.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 6
    argDefaultValues:
    - <ast.Name object at 0x7f7c1b8cf2b0>
    - <ast.Constant object at 0x7f7c1b8cff70>
    - <ast.Name object at 0x7f7c1b8cfac0>
    - <ast.Constant object at 0x7f7c1b8cf490>
    argNames:
    - self
    - flag
    - subcmd
    - formatter
    - func
    - formatter_kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 398
    functionName: face.helpers.HelpHandler.__init__
    functionSourceFile: face.helpers
    functionUses: 1
    functionsReached:
    - <builtin>.callable
    - kwargs.pop
    - face.helpers.StoutHelpFormatter.__init__
    - <builtin>.isinstance
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.callable
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - cmd_
    - subcmds_
    - args_
    - command_
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 422
    functionName: face.helpers.HelpHandler.default_help_func
    functionSourceFile: face.helpers
    functionUses: 0
    functionsReached:
    - boltons.strutils.strip_ansi
    - parser.get_flags
    - boltons.iterutils.unique
    - face.helpers._wrap_stout_cmd_doc
    - boltons.iterutils.split
    - array.array
    - fcntl.ioctl
    - _file.write
    - face.helpers.StoutHelpFormatter._get_layout
    - lhs.ljust
    - boltons.iterutils.unique.replace
    - <builtin>.min
    - <builtin>.int
    - ret.extend
    - face.helpers.get_stout_layout
    - face.helpers.get_winsize
    - face.helpers.get_wrap_width
    - <builtin>.len
    - _file.flush
    - <builtin>.tuple
    - face.helpers._get_environ_winsize
    - face.utils.echo
    - face.helpers._get_termios_winsize
    - face.helpers.StoutHelpFormatter.get_usage_line
    - face.utils.should_strip_ansi
    - <builtin>.isinstance
    - textwrap.wrap
    - face.helpers._wrap_stout_pair
    - stream.isatty
    - textwrap.fill
    - face.helpers.StoutHelpFormatter.get_help_text
    - _parts.append
    - doc.splitlines
    - parts.append
    - face.utils.isatty
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - msg
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 283
    functionName: face.utils.echo
    functionSourceFile: face.utils
    functionUses: 5
    functionsReached:
    - boltons.strutils.strip_ansi
    - stream.isatty
    - face.utils.should_strip_ansi
    - kw.pop
    - _file.flush
    - <builtin>.isinstance
    - face.utils.isatty
    - _file.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: -1
    functionName: face.parser
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - ret.lower
    - face.parser.Flag.__init__
    - VALID_FLAG_RE.match
    - flag.endswith
    - face.utils.normalize_flag_name
    - keyword.iskeyword
    - face.parser.FlagDisplay.__init__
    - flag.lstrip
    - ret.replace
    - face.parser.Flag.set_display
    - face.utils.get_type_desc
    - <builtin>.len
    - <builtin>.isinstance
    - face.utils.flag_to_identifier
    - <builtin>.repr
    - face.parser._validate_char
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - arg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: face.parser._arg_to_subcmd
    functionSourceFile: face.parser
    functionUses: 4
    functionsReached:
    - arg.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: arg.lower
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - flag
    - arg_val_list
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: face.parser._multi_error
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - flag
    - arg_val_list
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: face.parser._multi_extend
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - flag
    - arg_val_list
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: face.parser._multi_override
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - char
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: face.parser._validate_char
    functionSourceFile: face.parser
    functionUses: 9
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - posargspec
    - posargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: face.parser._posargs_to_provides
    functionSourceFile: face.parser
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Tuple object at 0x7f7c1bcae6d0>
    argNames:
    - self
    - parser
    - argv
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: face.parser.CommandParseResult.__init__
    functionSourceFile: face.parser
    functionUses: 3
    functionsReached:
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 137
    functionName: face.parser.CommandParseResult.to_cmd_scope
    functionSourceFile: face.parser
    functionUses: 1
    functionsReached:
    - os.path.split
    - path.split
    - ret.update
    - os.path.basename
    - environ.get
    - face.parser._posargs_to_provides
    - <builtin>.isinstance
    - face.utils.get_minimal_executable
    - os.path.relpath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.split
    functionSourceFile: <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: os.path.basename
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b97f970>
    - <ast.Constant object at 0x7f7c1b97fa90>
    - <ast.Constant object at 0x7f7c1b97f910>
    argNames:
    - executable
    - path
    - environ
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 240
    functionName: face.utils.get_minimal_executable
    functionSourceFile: face.utils
    functionUses: 2
    functionsReached:
    - path.split
    - os.path.basename
    - environ.get
    - <builtin>.isinstance
    - os.path.relpath
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: face.parser.CommandParseResult.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - boltons.funcutils.format_nonexp_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: boltons.funcutils.format_nonexp_repr
    functionSourceFile: boltons
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - flag
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 68
    functionName: face.utils.flag_to_identifier
    functionSourceFile: face.utils
    functionUses: 9
    functionsReached:
    - ret.lower
    - flag.endswith
    - face.utils.normalize_flag_name
    - VALID_FLAG_RE.match
    - keyword.iskeyword
    - flag.lstrip
    - ret.replace
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - display
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 236
    functionName: face.parser.Flag.set_display
    functionSourceFile: face.parser
    functionUses: 9
    functionsReached:
    - <builtin>.callable
    - face.parser.FlagDisplay.__init__
    - face.utils.get_type_desc
    - <builtin>.isinstance
    - <builtin>.repr
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - flag
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 296
    functionName: face.parser.FlagDisplay.__init__
    functionSourceFile: face.parser
    functionUses: 10
    functionsReached:
    - <builtin>.callable
    - <builtin>.repr
    - face.utils.get_type_desc
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 256
    functionName: face.parser.Flag.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - boltons.funcutils.format_nonexp_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: face.parser.Flag.__repr__.<lambda1>
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - parse_as
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 170
    functionName: face.utils.get_type_desc
    functionSourceFile: face.utils
    functionUses: 12
    functionsReached:
    - <builtin>.callable
    - <builtin>.repr
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kw.pop
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 327
    functionName: face.parser.FlagDisplay.hidden
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 330
    functionName: face.parser.FlagDisplay.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - boltons.funcutils.format_nonexp_repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 351
    functionName: face.parser.PosArgDisplay.__init__
    functionSourceFile: face.parser
    functionUses: 4
    functionsReached:
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 363
    functionName: face.parser.PosArgDisplay.hidden
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 366
    functionName: face.parser.PosArgDisplay.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - boltons.funcutils.format_nonexp_repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 7
    argDefaultValues:
    - <ast.Name object at 0x7f7c1b824d90>
    - <ast.Constant object at 0x7f7c1b824c40>
    - <ast.Constant object at 0x7f7c1b8249a0>
    - <ast.Constant object at 0x7f7c1bc46880>
    - <ast.Constant object at 0x7f7c1bc46550>
    argNames:
    - self
    - parse_as
    - min_count
    - max_count
    - display
    - provides
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 395
    functionName: face.parser.PosArgSpec.__init__
    functionSourceFile: face.parser
    functionUses: 3
    functionsReached:
    - <builtin>.callable
    - display.setdefault
    - <builtin>.int
    - kwargs.pop
    - face.parser.PosArgDisplay.__init__
    - <builtin>.isinstance
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: display.setdefault
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 440
    functionName: face.parser.PosArgSpec.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - boltons.funcutils.format_nonexp_repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 444
    functionName: face.parser.PosArgSpec.accepts_args
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - posargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 450
    functionName: face.parser.PosArgSpec.parse
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - display.setdefault
    - <builtin>.int
    - kwargs.pop
    - face.parser.PosArgDisplay.__init__
    - face.parser.PosArgSpec.__init__
    - ret.append
    - kw.pop
    - <builtin>.len
    - <builtin>.isinstance
    - boltons.typeutils.make_sentinel
    linkageType: pythonLinkage
    raised:
    - ArgumentArityError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.typeutils.make_sentinel
    functionSourceFile: boltons
    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: ret.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - posargs
    - posargs_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 505
    functionName: face.parser._ensure_posargspec
    functionSourceFile: face.parser
    functionUses: 1
    functionsReached:
    - <builtin>.callable
    - display.setdefault
    - <builtin>.int
    - kwargs.pop
    - face.parser.PosArgDisplay.__init__
    - face.parser.PosArgSpec.__init__
    - <builtin>.isinstance
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b94a580>
    - <ast.Constant object at 0x7f7c1b94a550>
    - <ast.Constant object at 0x7f7c1b94a520>
    - <ast.Constant object at 0x7f7c1b94a4f0>
    - <ast.Constant object at 0x7f7c1b94a4c0>
    argNames:
    - self
    - name
    - doc
    - flags
    - posargs
    - post_posargs
    - flagfile
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 562
    functionName: face.parser.Parser.__init__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - flag_map.get
    - kwargs.pop
    - ret.lower
    - face.sinter.get_callable_labels
    - face.parser.Flag.__init__
    - face.parser.PosArgDisplay.__init__
    - face.command.Command.add_middleware
    - keyword.iskeyword
    - boltons.strutils.camel2under.lower
    - face.parser.PosArgSpec.__init__
    - face.middleware.check_middleware
    - face.parser.Parser._add_subparser
    - ret.replace
    - face.parser.Flag.set_display
    - face.middleware.face_middleware
    - <builtin>.hasattr
    - face.utils.flag_to_identifier
    - text.splitlines
    - subprs._path_flag_map.items
    - all_grafs.append
    - <builtin>.getattr
    - ctx_parts.append
    - display.setdefault
    - face.middleware.face_middleware.decorate_face_middleware
    - <builtin>.int
    - unwrapped.splitlines
    - face.utils.process_command_name
    - VALID_FLAG_RE.match
    - face.utils.normalize_flag_name
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.super
    - face.parser.FlagDisplay.__init__
    - face.parser.Parser.add
    - <builtin>.len
    - face.utils.get_type_desc
    - face.command.Command.add_command
    - <builtin>.set
    - face.utils.unwrap_text
    - face.parser._validate_char
    - fb.get_invocation_str
    - face.command.Command.add
    - face.middleware.is_middleware
    - <builtin>.all
    - face.command.Command.__init__
    - face.command._get_default_name
    - inspect.isfunction
    - parent_flag_map.copy
    - flag.lstrip
    - face.parser._ensure_posargspec
    - <builtin>.isinstance
    - face.command._docstring_to_doc
    - face.sinter.get_fb
    - collections.OrderedDict.items
    - inspect.isbuiltin
    - <builtin>.repr
    - collections.OrderedDict.values
    - <builtin>.callable
    - line.strip
    - cur_graf.append
    - face.parser.Parser._add_subparser.<lambda1>
    - face.parser.Parser._add_flag
    - subprs.subprs_map.items
    - name.endswith
    - flag.endswith
    - boltons.strutils.camel2under
    - ctx_parts.insert
    - collections.OrderedDict
    - new_flags.update
    - <builtin>.list
    - inspect.ismethod
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 29
    functionName: face.utils.process_command_name
    functionSourceFile: face.utils
    functionUses: 3
    functionsReached:
    - ret.lower
    - name.endswith
    - VALID_FLAG_RE.match
    - face.utils.normalize_flag_name
    - flag.lstrip
    - ret.replace
    - <builtin>.len
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict
    functionSourceFile: collections
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - a
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 650
    functionName: face.parser.Parser.add
    functionSourceFile: face.parser
    functionUses: 1
    functionsReached:
    - flag_map.get
    - ret.lower
    - face.parser.Flag.__init__
    - keyword.iskeyword
    - face.parser.Parser._add_subparser
    - ret.replace
    - face.parser.Flag.set_display
    - face.utils.flag_to_identifier
    - subprs._path_flag_map.items
    - face.utils.process_command_name
    - face.utils.normalize_flag_name
    - VALID_FLAG_RE.match
    - face.parser.FlagDisplay.__init__
    - <builtin>.len
    - face.utils.get_type_desc
    - face.parser._validate_char
    - parent_flag_map.copy
    - flag.lstrip
    - <builtin>.isinstance
    - collections.OrderedDict.values
    - collections.OrderedDict.items
    - face.parser.Parser._add_subparser.<lambda1>
    - <builtin>.repr
    - <builtin>.callable
    - face.parser.Parser._add_flag
    - subprs.subprs_map.items
    - name.endswith
    - flag.endswith
    - new_flags.update
    - <builtin>.list
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b9480d0>
    argNames:
    - self
    - path
    - with_hidden
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 591
    functionName: face.parser.Parser.get_flag_map
    functionSourceFile: face.parser
    functionUses: 6
    functionsReached:
    - flag_map.items
    - collections.OrderedDict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flag_map.items
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Tuple object at 0x7f7c1b942a30>
    - <ast.Constant object at 0x7f7c1b942a00>
    argNames:
    - self
    - path
    - with_hidden
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 596
    functionName: face.parser.Parser.get_flags
    functionSourceFile: face.parser
    functionUses: 3
    functionsReached:
    - to_proc.pop
    - boltons.iterutils.unique
    - face.sinter.get_arg_names
    - <builtin>.hasattr
    - flag_map.items
    - <builtin>.getattr
    - cur_chain.append
    - required_args.update
    - face.parser.Parser.get_flag_map
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.super
    - face.utils.get_rdep_map
    - <builtin>.set
    - face.command.Command.get_dep_names
    - to_proc.extend
    - <builtin>.all
    - face.command.Command.get_flag_map
    - inspect.isfunction
    - face.sinter.get_fb
    - <builtin>.isinstance
    - collections.OrderedDict.values
    - inspect.isbuiltin
    - fb.get_arg_names
    - dep_map.get
    - <builtin>.sorted
    - collections.OrderedDict
    - rdeps.update
    - inspect.ismethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Tuple object at 0x7f7c1bab2970>
    - <ast.Constant object at 0x7f7c1bd34040>
    argNames:
    - self
    - path
    - with_hidden
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 224
    functionName: face.command.Command.get_flag_map
    functionSourceFile: face.command
    functionUses: 6
    functionsReached:
    - to_proc.pop
    - face.sinter.get_arg_names
    - <builtin>.hasattr
    - flag_map.items
    - <builtin>.getattr
    - cur_chain.append
    - required_args.update
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.super
    - face.utils.get_rdep_map
    - <builtin>.set
    - face.command.Command.get_dep_names
    - to_proc.extend
    - <builtin>.all
    - inspect.isfunction
    - face.sinter.get_fb
    - <builtin>.isinstance
    - inspect.isbuiltin
    - fb.get_arg_names
    - dep_map.get
    - <builtin>.sorted
    - collections.OrderedDict
    - rdeps.update
    - inspect.ismethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict.values
    functionSourceFile: collections
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 601
    functionName: face.parser.Parser.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - to_proc.pop
    - boltons.iterutils.unique
    - face.sinter.get_arg_names
    - <builtin>.hasattr
    - flag_map.items
    - <builtin>.getattr
    - cur_chain.append
    - required_args.update
    - face.parser.Parser.get_flag_map
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.super
    - face.utils.get_rdep_map
    - <builtin>.len
    - <builtin>.set
    - face.parser.Parser.get_flags
    - face.command.Command.get_dep_names
    - to_proc.extend
    - <builtin>.all
    - face.command.Command.get_flag_map
    - inspect.isfunction
    - face.sinter.get_fb
    - <builtin>.isinstance
    - collections.OrderedDict.values
    - inspect.isbuiltin
    - fb.get_arg_names
    - dep_map.get
    - <builtin>.sorted
    - collections.OrderedDict
    - rdeps.update
    - inspect.ismethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - subprs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 606
    functionName: face.parser.Parser._add_subparser
    functionSourceFile: face.parser
    functionUses: 2
    functionsReached:
    - subprs.subprs_map.items
    - ret.lower
    - name.endswith
    - face.utils.process_command_name
    - face.utils.normalize_flag_name
    - VALID_FLAG_RE.match
    - parent_flag_map.copy
    - subprs._path_flag_map.items
    - new_flags.update
    - flag.lstrip
    - <builtin>.list
    - ret.replace
    - <builtin>.len
    - <builtin>.isinstance
    - face.parser.Parser._add_subparser.<lambda1>
    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: face.parser.Parser._add_subparser.<lambda1>
    functionSourceFile: face.parser
    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: subprs._path_flag_map.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subprs.subprs_map.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parent_flag_map.copy
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_flags.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - flag
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 676
    functionName: face.parser.Parser._add_flag
    functionSourceFile: face.parser
    functionUses: 2
    functionsReached:
    - collections.OrderedDict.values
    - flag_map.get
    - collections.OrderedDict.items
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict.items
    functionSourceFile: collections
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flag_map.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 783
    functionName: face.parser.Parser._parse_subcmds
    functionSourceFile: face.parser
    functionUses: 3
    functionsReached:
    - arg.lower
    - face.parser._arg_to_subcmd
    - arg.startswith
    - ret.append
    - <builtin>.len
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - cmd_flag_map
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 836
    functionName: face.parser.Parser._parse_flags
    functionSourceFile: face.parser
    functionUses: 3
    functionsReached:
    - codecs.open
    - ret.lower
    - ret.replace
    - ff_text.splitlines
    - <builtin>.getattr
    - face.utils.normalize_flag_name
    - face.parser.Parser._parse_single_flag
    - arg.split
    - boltons.dictutils.OrderedMultiDict.add
    - <builtin>.len
    - <builtin>.set
    - face.parser.Parser._parse_flagfile
    - shlex.split
    - ff_path_seen.add
    - boltons.dictutils.OrderedMultiDict
    - path_or_file.read
    - <builtin>.enumerate
    - os.path.abspath
    - flag.lstrip
    - collections.OrderedDict.items
    - <builtin>.repr
    - <builtin>.callable
    - f.read
    - collections.OrderedDict.get
    - collections.OrderedDict
    - boltons.dictutils.OrderedMultiDict.update_extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b5f5f40>
    argNames:
    - self
    - cmd_flag_map
    - parsed_flag_map
    - flagfile_map
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 907
    functionName: face.parser.Parser._resolve_flags
    functionSourceFile: face.parser
    functionUses: 3
    functionsReached:
    - ff_paths.append
    - flag.multi
    - flagfile_map.items
    - pfm.getlist
    - collections.OrderedDict
    - missing_flags.append
    - <builtin>.len
    - collections.OrderedDict.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prs.post_posargs.parse
    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: prs.posargs.parse
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: arg.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - cmd_flag_map
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 805
    functionName: face.parser.Parser._parse_single_flag
    functionSourceFile: face.parser
    functionUses: 5
    functionsReached:
    - <builtin>.callable
    - ret.lower
    - face.utils.normalize_flag_name
    - collections.OrderedDict.get
    - flag.lstrip
    - arg.split
    - ret.replace
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: arg.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - flag
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: face.utils.normalize_flag_name
    functionSourceFile: face.utils
    functionUses: 17
    functionsReached:
    - flag.lstrip
    - ret.replace
    - <builtin>.len
    - ret.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: collections.OrderedDict.get
    functionSourceFile: collections
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.dictutils.OrderedMultiDict
    functionSourceFile: boltons
    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>.set
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.dictutils.OrderedMultiDict.add
    functionSourceFile: boltons
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b5fbd30>
    argNames:
    - self
    - cmd_flag_map
    - path_or_file
    - res_map
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 867
    functionName: face.parser.Parser._parse_flagfile
    functionSourceFile: face.parser
    functionUses: 4
    functionsReached:
    - codecs.open
    - ret.lower
    - ret.replace
    - ff_text.splitlines
    - <builtin>.getattr
    - face.utils.normalize_flag_name
    - face.parser.Parser._parse_single_flag
    - arg.split
    - boltons.dictutils.OrderedMultiDict.add
    - <builtin>.len
    - face.parser.Parser._parse_flagfile
    - shlex.split
    - boltons.dictutils.OrderedMultiDict
    - path_or_file.read
    - <builtin>.enumerate
    - os.path.abspath
    - flag.lstrip
    - <builtin>.repr
    - <builtin>.callable
    - f.read
    - collections.OrderedDict.get
    - collections.OrderedDict
    linkageType: pythonLinkage
    raised:
    - ArgumentParseError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.dictutils.OrderedMultiDict.update_extend
    functionSourceFile: boltons
    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: ff_path_seen.add
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.abspath
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_or_file.read
    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: codecs.open
    functionSourceFile: codecs
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.read
    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: ff_text.splitlines
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.enumerate
    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: shlex.split
    functionSourceFile: shlex
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: missing_flags.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pfm.getlist
    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: flag.multi
    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: flagfile_map.items
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ff_paths.append
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b626d00>
    argNames:
    - line
    - sep
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 944
    functionName: face.parser.parse_sv_line
    functionSourceFile: face.parser
    functionUses: 1
    functionsReached:
    - csv.reader
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: csv.reader
    functionSourceFile: csv
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f7c1b62c8e0>
    - <ast.Constant object at 0x7f7c1b62c910>
    - <ast.Constant object at 0x7f7c1b62c940>
    argNames:
    - self
    - parse_one_as
    - sep
    - strip
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 996
    functionName: face.parser.ListParam.__init__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - list_text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1002
    functionName: face.parser.ListParam.parse
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - v.strip
    - face.parser.parse_sv_line
    - <builtin>.list
    - csv.reader
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.strip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1011
    functionName: face.parser.ListParam.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - boltons.funcutils.format_exp_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: boltons.funcutils.format_exp_repr
    functionSourceFile: boltons
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b686820>
    argNames:
    - self
    - choices
    - parse_as
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1020
    functionName: face.parser.ChoicesParam.__init__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - <builtin>.type
    - <builtin>.sorted
    - <builtin>.list
    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>.sorted
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.type
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - text
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1033
    functionName: face.parser.ChoicesParam.parse
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ArgumentParseError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1041
    functionName: face.parser.ChoicesParam.__repr__
    functionSourceFile: face.parser
    functionUses: 0
    functionsReached:
    - boltons.funcutils.format_exp_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: face.errors
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - prs
    - subcmd_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: face.errors.InvalidSubcommand.from_parse
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached:
    - boltons.iterutils.unique
    - prs.subprs_map.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: prs.subprs_map.keys
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - cmd_flag_map
    - flag_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 49
    functionName: face.errors.UnknownFlag.from_parse
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached:
    - face.utils.format_flag_label
    - identifier.startswith
    - identifier.lower
    - boltons.iterutils.unique
    - parts.append
    - collections.OrderedDict.values
    - face.utils.identifier_to_flag
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - flag
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 114
    functionName: face.utils.format_flag_label
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached:
    - identifier.lower
    - parts.append
    - identifier.startswith
    - face.utils.identifier_to_flag
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b854ac0>
    argNames:
    - cls
    - cmd_flag_map
    - flag
    - arg
    - exc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: face.errors.InvalidFlagArgument.from_parse
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached:
    - arg.startswith
    - face.utils.FRIENDLY_TYPE_NAMES.get
    - <builtin>.repr
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: face.utils.FRIENDLY_TYPE_NAMES.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: 4
    argDefaultValues: []
    argNames:
    - cls
    - posargspec
    - arg
    - exc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: face.errors.InvalidPositionalArgument.from_parse
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - <builtin>.repr
    - face.utils.get_type_desc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - cmd_flag_map
    - parsed_flag_map
    - missing_flag_names
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 102
    functionName: face.errors.MissingRequiredFlags.from_parse
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached:
    - face.utils.format_flag_label
    - identifier.startswith
    - identifier.lower
    - labels.append
    - <builtin>.sorted
    - parts.append
    - <builtin>.set
    - face.utils.identifier_to_flag
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: labels.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - flag
    - arg_val_list
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: face.errors.DuplicateFlag.from_parse
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1be02460>
    argNames:
    - self
    - msg
    - code
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 142
    functionName: face.errors.CommandLineError.__init__
    functionSourceFile: face.errors
    functionUses: 1
    functionsReached:
    - SystemExit.__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: SystemExit.__init__
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: face.errors.UsageError.format_message
    functionSourceFile: face.errors
    functionUses: 0
    functionsReached:
    - msg.splitlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: face.utils
    functionSourceFile: face.utils
    functionUses: 0
    functionsReached:
    - re.compile
    - boltons.typeutils.make_sentinel
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: VALID_FLAG_RE.match
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flag.lstrip
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.lower
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.replace
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: flag.endswith
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: keyword.iskeyword
    functionSourceFile: keyword
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - identifier
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: face.utils.identifier_to_flag
    functionSourceFile: face.utils
    functionUses: 3
    functionsReached:
    - identifier.startswith
    - identifier.lower
    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: identifier.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: identifier.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - posargspec
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 127
    functionName: face.utils.format_posargs_label
    functionSourceFile: face.utils
    functionUses: 0
    functionsReached:
    - boltons.strutils.pluralize
    - face.utils.get_cardinalized_args_label
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - name
    - min_count
    - max_count
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 136
    functionName: face.utils.get_cardinalized_args_label
    functionSourceFile: face.utils
    functionUses: 1
    functionsReached:
    - boltons.strutils.pluralize
    - face.utils.get_cardinalized_args_label
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.strutils.pluralize
    functionSourceFile: boltons
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - flag
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 158
    functionName: face.utils.format_flag_post_doc
    functionSourceFile: face.utils
    functionUses: 0
    functionsReached:
    - object.__repr__
    - <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: object.__repr__
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - text
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 192
    functionName: face.utils.unwrap_text
    functionSourceFile: face.utils
    functionUses: 6
    functionsReached:
    - text.splitlines
    - all_grafs.append
    - line.strip
    - cur_graf.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: text.splitlines
    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: line.strip
    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: cur_graf.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: all_grafs.append
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - dep_map
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 210
    functionName: face.utils.get_rdep_map
    functionSourceFile: face.utils
    functionUses: 8
    functionsReached:
    - cur_chain.append
    - to_proc.extend
    - dep_map.get
    - to_proc.pop
    - rdeps.update
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: to_proc.pop
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cur_chain.append
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dep_map.get
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: to_proc.extend
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rdeps.update
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: environ.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.relpath
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - stream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 270
    functionName: face.utils.isatty
    functionSourceFile: face.utils
    functionUses: 7
    functionsReached:
    - stream.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.isatty
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - stream
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 278
    functionName: face.utils.should_strip_ansi
    functionSourceFile: face.utils
    functionUses: 6
    functionsReached:
    - face.utils.isatty
    - stream.isatty
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.strutils.strip_ansi
    functionSourceFile: boltons
    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: _file.write
    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: _file.flush
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - a
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 333
    functionName: face.utils.echo_err
    functionSourceFile: face.utils
    functionUses: 0
    functionsReached:
    - boltons.strutils.strip_ansi
    - stream.isatty
    - face.utils.echo
    - _file.write
    - face.utils.should_strip_ansi
    - _file.flush
    - <builtin>.isinstance
    - face.utils.isatty
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - inp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 346
    functionName: face.utils._get_text
    functionSourceFile: face.utils
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - inp.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: inp.decode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b846100>
    - <ast.Constant object at 0x7f7c1b846e20>
    - <ast.Constant object at 0x7f7c1b846700>
    - <ast.Constant object at 0x7f7c1b846730>
    argNames:
    - label
    - confirm
    - confirm_label
    - hide_input
    - err
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 352
    functionName: face.utils.prompt
    functionSourceFile: face.utils
    functionUses: 1
    functionsReached:
    - boltons.strutils.strip_ansi
    - stream.isatty
    - face.utils.echo
    - _file.write
    - inp.decode
    - label.lower
    - face.utils.should_strip_ansi
    - face.utils._get_text
    - kw.pop
    - _file.flush
    - <builtin>.isinstance
    - face.utils.isatty
    - face.utils.prompt.prompt_func
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: label.lower
    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:
    - label
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 383
    functionName: face.utils.prompt.prompt_func
    functionSourceFile: face.utils
    functionUses: 2
    functionsReached:
    - boltons.strutils.strip_ansi
    - stream.isatty
    - face.utils.echo
    - _file.write
    - face.utils.should_strip_ansi
    - _file.flush
    - <builtin>.isinstance
    - face.utils.isatty
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - label
    - kw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 411
    functionName: face.utils.prompt_secret
    functionSourceFile: face.utils
    functionUses: 0
    functionsReached:
    - boltons.strutils.strip_ansi
    - stream.isatty
    - face.utils.echo
    - _file.write
    - kw.setdefault
    - inp.decode
    - face.utils.prompt
    - label.lower
    - face.utils.should_strip_ansi
    - face.utils._get_text
    - kw.pop
    - _file.flush
    - <builtin>.isinstance
    - face.utils.isatty
    - face.utils.prompt.prompt_func
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kw.setdefault
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: face.middleware
    functionSourceFile: face.middleware
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - target
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 159
    functionName: face.middleware.is_middleware
    functionSourceFile: face.middleware
    functionUses: 5
    functionsReached:
    - <builtin>.callable
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b7b3cd0>
    argNames:
    - func
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 174
    functionName: face.middleware.face_middleware
    functionSourceFile: face.middleware
    functionUses: 5
    functionsReached:
    - kwargs.pop
    - face.sinter.get_callable_labels
    - face.middleware.check_middleware
    - <builtin>.hasattr
    - <builtin>.getattr
    - ctx_parts.append
    - face.middleware.face_middleware.decorate_face_middleware
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.set
    - fb.get_invocation_str
    - <builtin>.all
    - inspect.isfunction
    - face.sinter.get_fb
    - <builtin>.isinstance
    - inspect.isbuiltin
    - <builtin>.callable
    - ctx_parts.insert
    - <builtin>.list
    - inspect.ismethod
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 202
    functionName: face.middleware.face_middleware.decorate_face_middleware
    functionSourceFile: face.middleware
    functionUses: 6
    functionsReached:
    - <builtin>.callable
    - face.sinter.get_callable_labels
    - <builtin>.all
    - <builtin>.set
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.isfunction
    - ctx_parts.insert
    - face.middleware.check_middleware
    - <builtin>.list
    - <builtin>.hasattr
    - inspect.ismethod
    - <builtin>.isinstance
    - face.sinter.get_fb
    - inspect.isbuiltin
    - fb.get_invocation_str
    - <builtin>.getattr
    - ctx_parts.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b854820>
    argNames:
    - func
    - provides
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 255
    functionName: face.middleware.check_middleware
    functionSourceFile: face.middleware
    functionUses: 7
    functionsReached:
    - <builtin>.callable
    - <builtin>.isinstance
    - face.sinter.get_fb
    - face.sinter.get_callable_labels
    - <builtin>.all
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.isfunction
    - ctx_parts.insert
    - <builtin>.list
    - inspect.ismethod
    - <builtin>.hasattr
    - <builtin>.set
    - inspect.isbuiltin
    - fb.get_invocation_str
    - <builtin>.getattr
    - ctx_parts.append
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - middlewares
    - innermost
    - preprovided
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 216
    functionName: face.middleware.get_middleware_chain
    functionSourceFile: face.middleware
    functionUses: 2
    functionsReached:
    - <builtin>.compile
    - <builtin>.sum
    - hashlib.sha1
    - <builtin>.zip
    - fb.get_defaults_dict
    - face.sinter.get_arg_names
    - provided_sofar.update
    - <builtin>.hasattr
    - optional_sofar.update
    - <builtin>.getattr
    - code_str.splitlines
    - face.sinter.compile_code
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.print
    - <builtin>.len
    - inner_arg_dict.items
    - <builtin>.tuple
    - <builtin>.set
    - code_str.encode
    - face.sinter.build_chain_str
    - <builtin>.exec
    - <builtin>.all
    - <builtin>.dict
    - inspect.isfunction
    - face.sinter.make_chain
    - face.sinter.chain_argspec
    - boltons.iterutils.partition
    - params_sofar.update
    - face.sinter.get_fb
    - <builtin>.isinstance
    - inspect.isbuiltin
    - fb.get_arg_names
    - face.sinter.compile_chain
    - <builtin>.sorted
    - <builtin>.list
    - inspect.ismethod
    linkageType: pythonLinkage
    raised:
    - NameError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1bc90640>
    argNames:
    - f
    - only_required
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 41
    functionName: face.sinter.get_arg_names
    functionSourceFile: face.sinter
    functionUses: 9
    functionsReached:
    - fb.get_arg_names
    - <builtin>.all
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.isfunction
    - <builtin>.hasattr
    - inspect.ismethod
    - <builtin>.isinstance
    - face.sinter.get_fb
    - inspect.isbuiltin
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - funcs
    - provides
    - final_func
    - preprovided
    - inner_name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 158
    functionName: face.sinter.make_chain
    functionSourceFile: face.sinter
    functionUses: 3
    functionsReached:
    - <builtin>.compile
    - hashlib.sha1
    - <builtin>.zip
    - fb.get_defaults_dict
    - provided_sofar.update
    - <builtin>.hasattr
    - optional_sofar.update
    - <builtin>.getattr
    - code_str.splitlines
    - face.sinter.compile_code
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.print
    - <builtin>.len
    - inner_arg_dict.items
    - <builtin>.set
    - <builtin>.tuple
    - code_str.encode
    - face.sinter.build_chain_str
    - <builtin>.exec
    - <builtin>.all
    - <builtin>.dict
    - face.sinter.chain_argspec
    - inspect.isfunction
    - boltons.iterutils.partition
    - params_sofar.update
    - face.sinter.get_fb
    - <builtin>.isinstance
    - inspect.isbuiltin
    - fb.get_arg_names
    - face.sinter.compile_chain
    - <builtin>.sorted
    - <builtin>.list
    - inspect.ismethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sum
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b608400>
    argNames:
    - f
    - drop_self
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 20
    functionName: face.sinter.get_fb
    functionSourceFile: face.sinter
    functionUses: 23
    functionsReached:
    - <builtin>.all
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.isfunction
    - inspect.ismethod
    - <builtin>.hasattr
    - <builtin>.isinstance
    - inspect.isbuiltin
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 62
    functionName: face.sinter.get_callable_labels
    functionSourceFile: face.sinter
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.all
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.isfunction
    - ctx_parts.insert
    - inspect.ismethod
    - <builtin>.hasattr
    - face.sinter.get_fb
    - inspect.isbuiltin
    - fb.get_invocation_str
    - <builtin>.getattr
    - ctx_parts.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: face.sinter
    functionSourceFile: face.sinter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.isfunction
    functionSourceFile: inspect
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.ismethod
    functionSourceFile: inspect
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.isbuiltin
    functionSourceFile: inspect
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.funcutils.FunctionBuilder.from_func
    functionSourceFile: boltons
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.all
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fb.get_arg_names
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - f
    - injectables
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 47
    functionName: face.sinter.inject
    functionSourceFile: face.sinter
    functionUses: 1
    functionsReached:
    - fb.get_arg_names
    - <builtin>.isinstance
    - <builtin>.all
    - <builtin>.dict
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.isfunction
    - all_kwargs.update
    - fb.get_defaults_dict
    - inspect.ismethod
    - <builtin>.hasattr
    - face.sinter.get_fb
    - inspect.isbuiltin
    - <builtin>.getattr
    - all_kwargs.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fb.get_defaults_dict
    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: all_kwargs.update
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: all_kwargs.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx_parts.append
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ctx_parts.insert
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fb.get_invocation_str
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - func_list
    - provides
    - inner_name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 84
    functionName: face.sinter.chain_argspec
    functionSourceFile: face.sinter
    functionUses: 4
    functionsReached:
    - fb.get_arg_names
    - <builtin>.all
    - <builtin>.set
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.isfunction
    - boltons.iterutils.partition
    - inspect.isbuiltin
    - <builtin>.zip
    - fb.get_defaults_dict
    - provided_sofar.update
    - inspect.ismethod
    - <builtin>.isinstance
    - face.sinter.get_fb
    - <builtin>.hasattr
    - optional_sofar.update
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.zip
    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: boltons.iterutils.partition
    functionSourceFile: boltons
    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: optional_sofar.update
    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: provided_sofar.update
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1bca8460>
    - <ast.Constant object at 0x7f7c1bca8190>
    - <ast.Constant object at 0x7f7c1bca8be0>
    - <ast.Constant object at 0x7f7c1bca8820>
    argNames:
    - funcs
    - params
    - inner_name
    - params_sofar
    - level
    - func_aliaser
    - func_names
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 108
    functionName: face.sinter.build_chain_str
    functionSourceFile: face.sinter
    functionUses: 5
    functionsReached:
    - face.sinter.build_chain_str
    - face.sinter.get_fb
    - <builtin>.all
    - <builtin>.dict
    - <builtin>.set
    - boltons.funcutils.FunctionBuilder.from_func
    - inspect.ismethod
    - <builtin>.sorted
    - inspect.isfunction
    - params_sofar.update
    - inner_arg_dict.items
    - <builtin>.hasattr
    - <builtin>.isinstance
    - inspect.isbuiltin
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: params_sofar.update
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inner_arg_dict.items
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f7c1bccd5b0>
    argNames:
    - funcs
    - params
    - inner_name
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 133
    functionName: face.sinter.compile_chain
    functionSourceFile: face.sinter
    functionUses: 4
    functionsReached:
    - <builtin>.compile
    - hashlib.sha1
    - <builtin>.hasattr
    - <builtin>.getattr
    - code_str.splitlines
    - face.sinter.compile_code
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.print
    - <builtin>.len
    - inner_arg_dict.items
    - <builtin>.set
    - code_str.encode
    - face.sinter.build_chain_str
    - <builtin>.exec
    - <builtin>.all
    - <builtin>.dict
    - inspect.isfunction
    - params_sofar.update
    - <builtin>.isinstance
    - face.sinter.get_fb
    - inspect.isbuiltin
    - <builtin>.sorted
    - inspect.ismethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b97f160>
    - <ast.Name object at 0x7f7c1b97f310>
    argNames:
    - code_str
    - name
    - env
    - verbose
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: face.sinter.compile_code
    functionSourceFile: face.sinter
    functionUses: 5
    functionsReached:
    - code_str.encode
    - <builtin>.exec
    - <builtin>.print
    - <builtin>.compile
    - hashlib.sha1
    - <builtin>.len
    - code_str.splitlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: code_str.encode
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1
    functionSourceFile: hashlib
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.compile
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.exec
    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: code_str.splitlines
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: face.testing
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - input
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 50
    functionName: face.testing._make_input_stream
    functionSourceFile: face.testing
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - input.encode
    - io.BytesIO
    - cStringIO.StringIO
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: input.encode
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cStringIO.StringIO
    functionSourceFile: cStringIO
    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: io.BytesIO
    functionSourceFile: io
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1ba58ac0>
    - <ast.Constant object at 0x7f7c1ba58a90>
    argNames:
    - prompt
    - stream
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: face.testing._fake_getpass
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - sys.stderr.flush
    - sys.stderr.write
    - sys.stdin.readline
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.write
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.flush
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdin.readline
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b859280>
    - <ast.Constant object at 0x7f7c1b859310>
    argNames:
    - self
    - args
    - input
    - exit_code
    - stdout_bytes
    - stderr_bytes
    - exc_info
    - checker
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 91
    functionName: face.testing.RunResult.__init__
    functionSourceFile: face.testing
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 106
    functionName: face.testing.RunResult.exception
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 112
    functionName: face.testing.RunResult.returncode
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: face.testing.RunResult.stdout
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: face.testing.RunResult.stderr
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: face.testing.RunResult.__repr__
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached:
    - args.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exp_codes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 152
    functionName: face.testing._get_exp_code_text
    functionSourceFile: face.testing
    functionUses: 3
    functionsReached:
    - <builtin>.tuple
    - boltons.setutils.complement
    - <builtin>.repr
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: boltons.setutils.complement
    functionSourceFile: boltons
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - result
    - exit_codes
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 175
    functionName: face.testing.CheckError.__init__
    functionSourceFile: face.testing
    functionUses: 2
    functionsReached:
    - boltons.setutils.complement
    - <builtin>.len
    - subprocess.list2cmdline
    - AssertionError.__init__
    - <builtin>.tuple
    - face.testing._get_exp_code_text
    - <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: subprocess.list2cmdline
    functionSourceFile: subprocess
    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: AssertionError.__init__
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b824490>
    - <ast.Constant object at 0x7f7c1b824970>
    - <ast.Constant object at 0x7f7c1b824220>
    - <ast.Constant object at 0x7f7c1b824070>
    argNames:
    - self
    - cmd
    - env
    - chdir
    - mix_stderr
    - reraise
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 218
    functionName: face.testing.CommandChecker.__init__
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: face.testing.CommandChecker
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached:
    - contextlib.contextmanager
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextlib.contextmanager
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b8bd850>
    - <ast.Constant object at 0x7f7c1b8bdbb0>
    - <ast.Constant object at 0x7f7c1b8bdc40>
    argNames:
    - self
    - input
    - env
    - chdir
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 227
    functionName: face.testing.CommandChecker._isolate
    functionSourceFile: face.testing
    functionUses: 2
    functionsReached:
    - face.testing._sync_env
    - cStringIO.StringIO
    - x.encode
    - face.testing._make_input_stream
    - input.encode
    - <builtin>.dict
    - face.testing._sync_env.<lambda1>
    - io.TextIOWrapper
    - full_env.update
    - cStringIO.StringIO.flush
    - os.chdir
    - os.environ.get
    - <builtin>.str
    - <builtin>.isinstance
    - new.items
    - io.BytesIO
    - os.getcwd
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getcwd
    functionSourceFile: os
    functionUses: 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: full_env.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.TextIOWrapper
    functionSourceFile: io
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1ba6ecd0>
    argNames:
    - env
    - new
    - backup
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 385
    functionName: face.testing._sync_env
    functionSourceFile: face.testing
    functionUses: 3
    functionsReached:
    - x.encode
    - face.testing._sync_env.<lambda1>
    - os.environ.get
    - <builtin>.isinstance
    - new.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.chdir
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cStringIO.StringIO.flush
    functionSourceFile: cStringIO
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - a
    - kw
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 281
    functionName: face.testing.CommandChecker.fail
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached:
    - face.testing.CommandChecker._isolate
    - boltons.setutils.complement
    - sys.stdout.flush
    - os.getcwd
    - stdout.getvalue
    - cStringIO.StringIO
    - input.encode
    - face.testing.CheckError.__init__
    - full_env.update
    - <builtin>.len
    - os.environ.get
    - <builtin>.set
    - <builtin>.tuple
    - face.testing.CommandChecker.run
    - shlex.split
    - x.encode
    - face.testing._make_input_stream
    - <builtin>.dict
    - io.TextIOWrapper
    - io.BytesIO
    - os.chdir
    - <builtin>.isinstance
    - new.items
    - sys.stderr.flush
    - face.testing.RunResult.__init__
    - <builtin>.repr
    - sys.exc_info
    - face.testing._sync_env
    - stderr.getvalue
    - kw.setdefault
    - face.testing._sync_env.<lambda1>
    - <builtin>.str
    - cStringIO.StringIO.flush
    - AssertionError.__init__
    - face.testing._get_exp_code_text
    - subprocess.list2cmdline
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b8e7400>
    - <ast.Constant object at 0x7f7c1b8e7220>
    - <ast.Constant object at 0x7f7c1b8e7310>
    - <ast.Constant object at 0x7f7c1b8e7940>
    argNames:
    - self
    - args
    - input
    - env
    - chdir
    - exit_code
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 301
    functionName: face.testing.CommandChecker.run
    functionSourceFile: face.testing
    functionUses: 1
    functionsReached:
    - face.testing.CommandChecker._isolate
    - boltons.setutils.complement
    - sys.stdout.flush
    - os.getcwd
    - stdout.getvalue
    - cStringIO.StringIO
    - input.encode
    - face.testing.CheckError.__init__
    - full_env.update
    - <builtin>.len
    - os.environ.get
    - <builtin>.tuple
    - shlex.split
    - x.encode
    - face.testing._make_input_stream
    - <builtin>.dict
    - io.TextIOWrapper
    - subprocess.list2cmdline
    - os.chdir
    - <builtin>.isinstance
    - new.items
    - sys.stderr.flush
    - face.testing.RunResult.__init__
    - <builtin>.repr
    - sys.exc_info
    - face.testing._sync_env
    - stderr.getvalue
    - face.testing._sync_env.<lambda1>
    - <builtin>.str
    - cStringIO.StringIO.flush
    - AssertionError.__init__
    - face.testing._get_exp_code_text
    - io.BytesIO
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 290
    functionName: face.testing.CommandChecker.__getattr__
    functionSourceFile: face.testing
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - <builtin>.super
    - functools.partial
    - name.partition
    - code_str.split
    - name.startswith
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 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: name.partition
    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: code_str.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.partial
    functionSourceFile: functools
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.exc_info
    functionSourceFile: sys
    functionUses: 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.flush
    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: stdout.getvalue
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stderr.getvalue
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: face.testing._sync_env.<lambda1>
    functionSourceFile: face.testing
    functionUses: 4
    functionsReached:
    - <builtin>.isinstance
    - x.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: x.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new.items
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.get
    functionSourceFile: os
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: -1
    functionName: face.command
    functionSourceFile: face.command
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    - face.helpers.HelpHandler.__init__
    - kwargs.pop
    - face.helpers.StoutHelpFormatter.__init__
    - <builtin>.isinstance
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: face.command._get_default_name
    functionSourceFile: face.command
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - boltons.strutils.camel2under
    - <builtin>.getattr
    - boltons.strutils.camel2under.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: boltons.strutils.camel2under
    functionSourceFile: boltons
    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: boltons.strutils.camel2under.lower
    functionSourceFile: boltons
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 37
    functionName: face.command._docstring_to_doc
    functionSourceFile: face.command
    functionUses: 5
    functionsReached:
    - line.strip
    - cur_graf.append
    - unwrapped.splitlines
    - text.splitlines
    - face.utils.unwrap_text
    - all_grafs.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unwrapped.splitlines
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: face.command.default_print_error
    functionSourceFile: face.command
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b87d790>
    - <ast.Constant object at 0x7f7c1b87d3d0>
    argNames:
    - self
    - func
    - name
    - doc
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 93
    functionName: face.command.Command.__init__
    functionSourceFile: face.command
    functionUses: 4
    functionsReached:
    - kwargs.pop
    - ret.lower
    - face.sinter.get_callable_labels
    - face.parser.Flag.__init__
    - face.command.Command.add_middleware
    - keyword.iskeyword
    - boltons.strutils.camel2under.lower
    - face.middleware.check_middleware
    - ret.replace
    - face.parser.Flag.set_display
    - face.middleware.face_middleware
    - <builtin>.hasattr
    - face.utils.flag_to_identifier
    - text.splitlines
    - all_grafs.append
    - <builtin>.getattr
    - ctx_parts.append
    - face.middleware.face_middleware.decorate_face_middleware
    - unwrapped.splitlines
    - face.utils.normalize_flag_name
    - VALID_FLAG_RE.match
    - <builtin>.super
    - boltons.funcutils.FunctionBuilder.from_func
    - face.parser.FlagDisplay.__init__
    - <builtin>.len
    - face.utils.get_type_desc
    - face.command.Command.add_command
    - <builtin>.set
    - fb.get_invocation_str
    - face.middleware.is_middleware
    - face.parser._validate_char
    - face.command.Command.add
    - face.utils.unwrap_text
    - <builtin>.all
    - face.command.Command.__init__
    - face.command._get_default_name
    - inspect.isfunction
    - flag.lstrip
    - face.sinter.get_fb
    - <builtin>.isinstance
    - face.command._docstring_to_doc
    - inspect.isbuiltin
    - <builtin>.repr
    - collections.OrderedDict.items
    - <builtin>.callable
    - line.strip
    - cur_graf.append
    - flag.endswith
    - boltons.strutils.camel2under
    - ctx_parts.insert
    - collections.OrderedDict
    - <builtin>.list
    - inspect.ismethod
    - kw.pop
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - mw
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 205
    functionName: face.command.Command.add_middleware
    functionSourceFile: face.command
    functionUses: 4
    functionsReached:
    - kwargs.pop
    - ret.lower
    - face.sinter.get_callable_labels
    - face.parser.Flag.__init__
    - face.command.Command.add_middleware
    - keyword.iskeyword
    - boltons.strutils.camel2under.lower
    - face.middleware.check_middleware
    - ret.replace
    - face.parser.Flag.set_display
    - face.middleware.face_middleware
    - <builtin>.hasattr
    - face.utils.flag_to_identifier
    - text.splitlines
    - all_grafs.append
    - <builtin>.getattr
    - ctx_parts.append
    - face.middleware.face_middleware.decorate_face_middleware
    - unwrapped.splitlines
    - face.utils.normalize_flag_name
    - VALID_FLAG_RE.match
    - <builtin>.super
    - boltons.funcutils.FunctionBuilder.from_func
    - face.parser.FlagDisplay.__init__
    - <builtin>.len
    - face.utils.get_type_desc
    - face.command.Command.add_command
    - <builtin>.set
    - face.utils.unwrap_text
    - face.parser._validate_char
    - fb.get_invocation_str
    - face.command.Command.add
    - face.middleware.is_middleware
    - <builtin>.all
    - face.command.Command.__init__
    - face.command._get_default_name
    - inspect.isfunction
    - flag.lstrip
    - face.sinter.get_fb
    - <builtin>.isinstance
    - face.command._docstring_to_doc
    - collections.OrderedDict.items
    - inspect.isbuiltin
    - <builtin>.repr
    - <builtin>.callable
    - line.strip
    - cur_graf.append
    - flag.endswith
    - boltons.strutils.camel2under
    - ctx_parts.insert
    - collections.OrderedDict
    - <builtin>.list
    - inspect.ismethod
    - kw.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: face.command.Command.func
    functionSourceFile: face.command
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - subcmd
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 185
    functionName: face.command.Command.add_command
    functionSourceFile: face.command
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Tuple object at 0x7f7c1b97f400>
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 250
    functionName: face.command.Command.get_dep_names
    functionSourceFile: face.command
    functionUses: 7
    functionsReached:
    - to_proc.pop
    - face.sinter.get_arg_names
    - <builtin>.hasattr
    - <builtin>.getattr
    - cur_chain.append
    - required_args.update
    - boltons.funcutils.FunctionBuilder.from_func
    - face.utils.get_rdep_map
    - <builtin>.set
    - to_proc.extend
    - <builtin>.all
    - inspect.isfunction
    - face.sinter.get_fb
    - <builtin>.isinstance
    - inspect.isbuiltin
    - fb.get_arg_names
    - dep_map.get
    - <builtin>.sorted
    - rdeps.update
    - inspect.ismethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: required_args.update
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1b872d30>
    argNames:
    - self
    - paths
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 279
    functionName: face.command.Command.prepare
    functionSourceFile: face.command
    functionUses: 1
    functionsReached:
    - to_proc.pop
    - boltons.iterutils.unique
    - face.middleware.get_middleware_chain
    - <builtin>.compile
    - <builtin>.sum
    - hashlib.sha1
    - <builtin>.zip
    - fb.get_defaults_dict
    - face.sinter.get_arg_names
    - provided_sofar.update
    - <builtin>.hasattr
    - optional_sofar.update
    - flag_map.items
    - <builtin>.getattr
    - code_str.splitlines
    - cur_chain.append
    - required_args.update
    - face.parser.Parser.get_flag_map
    - face.sinter.compile_code
    - boltons.funcutils.FunctionBuilder.from_func
    - <builtin>.super
    - <builtin>.print
    - face.utils.get_rdep_map
    - <builtin>.len
    - inner_arg_dict.items
    - <builtin>.tuple
    - face.parser.Parser.get_flags
    - <builtin>.set
    - collections.OrderedDict.keys
    - face.command.Command.get_dep_names
    - code_str.encode
    - face.sinter.build_chain_str
    - <builtin>.exec
    - to_proc.extend
    - <builtin>.all
    - <builtin>.dict
    - face.command.Command.get_flag_map
    - face.sinter.chain_argspec
    - face.sinter.make_chain
    - inspect.isfunction
    - boltons.iterutils.partition
    - params_sofar.update
    - face.sinter.get_fb
    - <builtin>.isinstance
    - collections.OrderedDict.values
    - inspect.isbuiltin
    - fb.get_arg_names
    - dep_map.get
    - face.sinter.compile_chain
    - <builtin>.sorted
    - collections.OrderedDict
    - rdeps.update
    - <builtin>.list
    - inspect.ismethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.OrderedDict.keys
    functionSourceFile: collections
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f7c1ba7f0a0>
    - <ast.Constant object at 0x7f7c1ba7f0d0>
    - <ast.Constant object at 0x7f7c1ba7f100>
    argNames:
    - self
    - argv
    - extras
    - print_error
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 325
    functionName: face.command.Command.run
    functionSourceFile: face.command
    functionUses: 0
    functionsReached:
    - ret.lower
    - boltons.iterutils.unique
    - <builtin>.compile
    - <builtin>.sum
    - hashlib.sha1
    - <builtin>.zip
    - provided_sofar.update
    - ff_text.splitlines
    - optional_sofar.update
    - flagfile_map.items
    - boltons.funcutils.FunctionBuilder.from_func
    - face.utils.normalize_flag_name
    - <builtin>.super
    - missing_flags.append
    - boltons.dictutils.OrderedMultiDict.add
    - inner_arg_dict.items
    - face.parser.Parser._parse_subcmds
    - face.parser.CommandParseResult.to_cmd_scope
    - face.errors.CommandLineError.__init__
    - code_str.encode
    - <builtin>.exec
    - <builtin>.all
    - pfm.getlist
    - face.parser.Parser.parse
    - face.sinter.chain_argspec
    - kwargs.update
    - collections.OrderedDict.items
    - <builtin>.repr
    - flag.multi
    - <builtin>.sorted
    - inspect.ismethod
    - boltons.dictutils.OrderedMultiDict.update_extend
    - to_proc.pop
    - face.middleware.get_middleware_chain
    - ret.replace
    - boltons.iterutils.split
    - flag_map.items
    - <builtin>.getattr
    - required_args.update
    - face.parser.Parser.get_flag_map
    - face.parser.Parser._parse_single_flag
    - face.parser.Parser._resolve_flags
    - face.parser.Parser._parse_flagfile
    - prs.post_posargs.parse
    - shlex.split
    - face.sinter.inject
    - face.command.Command.get_flag_map
    - ue.format_message
    - flag.lstrip
    - environ.get
    - face.sinter.get_fb
    - collections.OrderedDict.values
    - inspect.isbuiltin
    - fb.get_arg_names
    - arg.lower
    - os.path.split
    - ff_paths.append
    - arg.startswith
    - face.sinter.compile_chain
    - ret.update
    - face.sinter.get_arg_names
    - prs.posargs.parse
    - cur_chain.append
    - face.parser.CommandParseResult.__init__
    - <builtin>.print
    - face.utils.get_rdep_map
    - <builtin>.tuple
    - <builtin>.set
    - face.utils.get_minimal_executable
    - face.parser.Parser.get_flags
    - collections.OrderedDict.keys
    - face.command.Command.get_dep_names
    - face.sinter.build_chain_str
    - face.sinter.make_chain
    - boltons.iterutils.partition
    - <builtin>.enumerate
    - ret.append
    - all_kwargs.update
    - SystemExit.__init__
    - <builtin>.isinstance
    - <builtin>.callable
    - face.command.Command.prepare
    - collections.OrderedDict
    - rdeps.update
    - face.parser._posargs_to_provides
    - codecs.open
    - path.split
    - fb.get_defaults_dict
    - face.command.default_print_error
    - <builtin>.hasattr
    - all_kwargs.items
    - code_str.splitlines
    - face.sinter.compile_code
    - arg.split
    - <builtin>.len
    - to_proc.extend
    - ff_path_seen.add
    - <builtin>.dict
    - boltons.dictutils.OrderedMultiDict
    - inspect.isfunction
    - path_or_file.read
    - os.path.abspath
    - os.path.basename
    - params_sofar.update
    - os.path.relpath
    - f.read
    - dep_map.get
    - face.parser.Parser._parse_flags
    - face.parser._arg_to_subcmd
    - collections.OrderedDict.get
    - <builtin>.list
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.update
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ue.format_message
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_command':
  - 57
  - 58
  '...fuzz_command.TestOneInput':
  - 32
  - 34
  - 35
  - 36
  - 37
  - 46
  - 26
  - 28
  - 29
  - 31
  '...fuzz_command.main':
  - 52
  - 53
  - 54
  face.command:
  - 55
  face.command.Command:
  - 60
  face.command.Command.__init__:
  - 128
  - 130
  - 94
  - 96
  - 97
  - 100
  - 101
  - 102
  - 103
  - 104
  - 106
  - 110
  - 113
  - 114
  - 116
  - 118
  - 119
  - 121
  - 124
  - 125
  - 126
  - 127
  face.command.Command.add:
  - 167
  - 168
  - 171
  - 172
  - 141
  - 174
  - 175
  - 179
  - 180
  - 181
  face.command.Command.add_command:
  - 193
  - 196
  - 198
  - 199
  - 186
  face.command.Command.add_middleware:
  - 206
  - 210
  - 211
  - 212
  - 214
  - 215
  - 217
  face.command.Command.get_dep_names:
  - 257
  - 263
  - 264
  - 265
  - 266
  - 267
  - 269
  - 271
  - 273
  - 275
  - 277
  - 251
  face.command.Command.get_flag_map:
  - 225
  - 229
  - 230
  - 231
  - 245
  - 247
  face.command.Command.prepare:
  - 292
  - 293
  - 295
  - 297
  - 302
  - 304
  - 307
  - 308
  - 280
  - 316
  face.command.Command.run:
  - 386
  - 392
  - 393
  - 394
  - 397
  - 398
  - 401
  - 403
  - 404
  - 326
  - 352
  - 354
  - 358
  - 362
  - 367
  - 368
  - 369
  - 370
  - 373
  - 374
  - 379
  - 381
  - 382
  - 383
  face.command._docstring_to_doc:
  - 42
  - 44
  - 39
  face.command._get_default_name:
  - 32
  - 25
  - 29
  - 31
  face.command.default_print_error:
  - 52
  face.errors.ArgumentArityError:
  - 25
  face.errors.ArgumentParseError:
  - 14
  face.errors.CommandLineError:
  - 131
  face.errors.CommandLineError.__init__:
  - 143
  face.errors.DuplicateFlag:
  - 114
  face.errors.DuplicateFlag.from_parse:
  - 120
  - 125
  - 119
  face.errors.FaceException:
  - 7
  face.errors.InvalidFlagArgument:
  - 59
  face.errors.InvalidFlagArgument.from_parse:
  - 65
  - 66
  - 69
  - 70
  - 71
  - 77
  - 80
  - 83
  face.errors.InvalidPositionalArgument:
  - 87
  face.errors.InvalidPositionalArgument.from_parse:
  - 92
  - 93
  face.errors.InvalidSubcommand:
  - 32
  face.errors.InvalidSubcommand.from_parse:
  - 40
  - 41
  - 38
  face.errors.MissingRequiredFlags:
  - 98
  face.errors.MissingRequiredFlags.from_parse:
  - 103
  - 105
  - 107
  - 109
  - 110
  face.errors.UnknownFlag:
  - 45
  face.errors.UnknownFlag.from_parse:
  - 51
  - 52
  - 54
  - 55
  face.errors.UsageError:
  - 148
  face.errors.UsageError.format_message:
  - 160
  - 159
  face.helpers:
  - 433
  - 355
  - 12
  face.helpers.HelpHandler:
  - 366
  face.helpers.HelpHandler.__init__:
  - 416
  - 417
  - 404
  - 408
  - 410
  - 411
  - 412
  face.helpers.HelpHandler.default_help_func:
  - 430
  - 423
  face.helpers.StoutHelpFormatter:
  - 211
  - 151
  face.helpers.StoutHelpFormatter.__init__:
  - 216
  - 217
  - 215
  face.helpers.StoutHelpFormatter._get_layout:
  - 222
  face.helpers.StoutHelpFormatter.get_help_text:
  - 257
  - 258
  - 260
  - 262
  - 264
  - 265
  - 266
  - 268
  - 269
  - 270
  - 273
  - 274
  - 279
  - 281
  - 283
  - 284
  - 287
  - 288
  - 291
  - 292
  - 293
  - 295
  - 299
  - 300
  - 301
  - 302
  - 304
  - 305
  - 311
  - 313
  - 230
  - 249
  - 251
  - 253
  - 254
  face.helpers.StoutHelpFormatter.get_usage_line:
  - 324
  - 330
  - 333
  - 334
  - 335
  - 336
  - 339
  - 342
  - 344
  - 345
  - 347
  - 316
  - 349
  - 351
  face.helpers._get_environ_winsize:
  - 34
  face.helpers._get_termios_winsize:
  - 21
  - 23
  face.helpers._wrap_stout_cmd_doc:
  - 96
  - 97
  - 100
  - 101
  - 90
  - 92
  - 93
  - 95
  face.helpers._wrap_stout_cmd_doc.<lambda1>:
  - 93
  face.helpers._wrap_stout_pair:
  - 70
  - 71
  - 74
  - 75
  - 76
  - 77
  - 78
  - 80
  - 81
  - 83
  - 84
  face.helpers.get_stout_layout:
  - 106
  - 108
  - 109
  - 114
  - 115
  - 116
  - 119
  face.helpers.get_winsize:
  - 43
  - 46
  face.helpers.get_wrap_width:
  - 56
  - 53
  - 54
  face.middleware:
  - 1
  face.middleware.check_middleware:
  - 256
  - 261
  - 263
  - 265
  - 267
  - 271
  - 275
  - 278
  - 283
  - 284
  face.middleware.face_middleware:
  - 193
  - 194
  - 195
  - 196
  - 198
  - 199
  - 175
  - 210
  - 211
  - 190
  - 191
  face.middleware.face_middleware.decorate_face_middleware:
  - 203
  - 205
  - 206
  face.middleware.get_middleware_chain:
  - 237
  - 240
  - 241
  - 243
  - 245
  - 246
  - 247
  - 248
  - 217
  - 250
  face.middleware.is_middleware:
  - 160
  - 169
  face.parser:
  - 29
  - 502
  face.parser.ChoicesParam:
  - 1016
  face.parser.ChoicesParam.__init__:
  - 1024
  - 1027
  - 1028
  - 1029
  - 1021
  face.parser.ChoicesParam.__repr__:
  - 1042
  face.parser.ChoicesParam.parse:
  - 1034
  - 1035
  face.parser.CommandParseResult:
  - 106
  face.parser.CommandParseResult.__init__:
  - 129
  face.parser.CommandParseResult.__repr__:
  - 173
  face.parser.CommandParseResult.to_cmd_scope:
  - 160
  - 163
  - 164
  - 166
  - 167
  - 138
  - 141
  - 145
  - 146
  - 147
  - 148
  - 159
  face.parser.FilePathParam:
  - 1046
  face.parser.FileValueParam:
  - 1055
  face.parser.Flag:
  - 179
  face.parser.Flag.__init__:
  - 224
  - 226
  - 228
  - 234
  - 216
  - 220
  face.parser.Flag.__repr__:
  - 257
  - 258
  face.parser.Flag.set_display:
  - 237
  - 242
  - 244
  - 246
  - 248
  - 249
  - 250
  face.parser.FlagDisplay:
  - 262
  face.parser.FlagDisplay.__init__:
  - 322
  - 300
  - 301
  - 303
  - 306
  - 307
  - 310
  - 312
  - 314
  - 315
  - 316
  - 317
  face.parser.FlagDisplay.__repr__:
  - 331
  face.parser.ListParam:
  - 967
  face.parser.ListParam.__repr__:
  - 1012
  face.parser.ListParam.parse:
  - 1003
  - 1004
  - 1005
  - 1006
  - 1007
  face.parser.Parser:
  - 533
  face.parser.Parser.__init__:
  - 581
  - 582
  - 583
  - 585
  - 586
  - 587
  - 588
  - 564
  - 566
  - 568
  - 569
  - 571
  - 573
  - 575
  face.parser.Parser.__repr__:
  - 604
  face.parser.Parser._add_flag:
  - 678
  - 679
  - 680
  - 682
  - 685
  - 690
  - 692
  face.parser.Parser._add_subparser:
  - 640
  - 641
  - 613
  - 618
  - 621
  - 622
  - 639
  - 626
  - 627
  - 628
  - 634
  - 607
  face.parser.Parser._parse_flagfile:
  - 897
  - 898
  - 899
  - 868
  - 869
  - 871
  - 872
  - 873
  - 875
  - 877
  - 878
  - 881
  - 884
  - 885
  - 886
  - 888
  - 889
  - 891
  - 893
  face.parser.Parser._parse_flags:
  - 837
  - 844
  - 845
  - 846
  - 851
  - 854
  - 855
  - 857
  - 858
  - 859
  - 860
  - 862
  - 863
  face.parser.Parser._parse_single_flag:
  - 810
  - 813
  - 814
  - 817
  - 818
  - 824
  - 830
  face.parser.Parser._parse_subcmds:
  - 802
  - 803
  - 784
  - 791
  - 792
  - 795
  - 796
  - 797
  - 798
  face.parser.Parser._resolve_flags:
  - 929
  - 932
  - 933
  - 934
  - 935
  - 936
  - 938
  - 908
  - 914
  - 915
  - 917
  - 918
  - 921
  - 925
  - 927
  face.parser.Parser.add:
  - 674
  - 651
  - 661
  - 663
  - 666
  - 670
  face.parser.Parser.get_flag_map:
  - 593
  face.parser.Parser.get_flags:
  - 597
  - 599
  face.parser.Parser.parse:
  - 768
  - 769
  - 772
  - 773
  - 775
  - 776
  - 697
  - 718
  - 720
  - 721
  - 722
  - 725
  - 726
  - 728
  - 737
  - 745
  - 746
  - 748
  - 754
  - 757
  - 758
  - 759
  - 762
  - 763
  face.parser.PosArgDisplay:
  - 335
  face.parser.PosArgDisplay.__init__:
  - 352
  - 353
  - 354
  - 355
  - 356
  - 358
  face.parser.PosArgDisplay.__repr__:
  - 367
  face.parser.PosArgSpec:
  - 371
  face.parser.PosArgSpec.__init__:
  - 422
  - 424
  - 426
  - 396
  - 428
  - 398
  - 399
  - 400
  - 429
  - 430
  - 431
  - 408
  - 409
  - 411
  - 413
  - 415
  face.parser.PosArgSpec.__repr__:
  - 441
  face.parser.PosArgSpec.accepts_args:
  - 445
  face.parser.PosArgSpec.parse:
  - 451
  - 485
  - 488
  - 492
  - 494
  - 465
  - 466
  - 498
  - 470
  - 473
  - 476
  - 479
  face.parser._arg_to_subcmd:
  - 35
  face.parser._ensure_posargspec:
  - 512
  - 515
  - 516
  - 517
  - 518
  - 519
  - 520
  - 522
  - 524
  - 506
  - 508
  - 509
  - 511
  face.parser._multi_error:
  - 40
  - 39
  face.parser._multi_extend:
  - 46
  face.parser._multi_override:
  - 52
  face.parser._posargs_to_provides:
  - 96
  - 98
  - 79
  face.parser._validate_char:
  - 72
  - 67
  - 69
  face.parser.parse_sv_line:
  - 945
  - 962
  face.sinter.build_chain_str:
  - 130
  - 110
  - 112
  - 113
  - 115
  - 116
  - 117
  - 118
  - 119
  - 123
  - 125
  face.sinter.chain_argspec:
  - 97
  - 100
  - 101
  - 85
  - 86
  - 87
  - 88
  - 91
  - 92
  - 93
  - 95
  face.sinter.compile_chain:
  - 134
  - 135
  face.sinter.compile_code:
  - 139
  - 141
  - 142
  - 143
  - 144
  - 145
  - 147
  - 150
  - 152
  face.sinter.get_arg_names:
  - 42
  - 44
  face.sinter.get_callable_labels:
  - 64
  - 66
  - 67
  - 68
  - 69
  - 71
  - 72
  - 73
  - 76
  face.sinter.get_fb:
  - 33
  - 36
  - 22
  - 23
  - 24
  - 28
  - 31
  face.sinter.inject:
  - 50
  - 52
  - 53
  - 55
  - 56
  - 58
  - 59
  face.sinter.make_chain:
  - 160
  - 161
  - 162
  - 165
  - 167
  - 169
  - 159
  face.testing:
  - 40
  - 4
  face.testing.CheckError:
  - 168
  face.testing.CheckError.__init__:
  - 192
  - 177
  - 179
  - 180
  - 184
  - 188
  face.testing.CommandChecker:
  - 196
  face.testing.CommandChecker.__getattr__:
  - 291
  - 292
  - 293
  - 295
  - 299
  face.testing.CommandChecker._isolate:
  - 260
  - 261
  - 262
  - 266
  - 268
  - 269
  - 271
  - 274
  - 275
  - 228
  - 232
  - 234
  - 237
  - 238
  - 240
  - 241
  - 242
  - 245
  - 247
  - 248
  - 249
  - 251
  - 254
  - 255
  face.testing.CommandChecker.fail:
  - 288
  - 282
  - 287
  face.testing.CommandChecker.run:
  - 302
  - 335
  - 336
  - 337
  - 339
  - 341
  - 347
  - 351
  - 352
  - 355
  - 357
  - 360
  - 363
  - 365
  - 366
  - 367
  - 368
  - 370
  - 377
  - 378
  face.testing.RunResult:
  - 79
  face.testing.RunResult.__repr__:
  - 140
  - 141
  - 142
  - 143
  - 144
  - 145
  - 146
  - 147
  - 148
  face.testing.RunResult.exception:
  - 107
  face.testing.RunResult.returncode:
  - 113
  face.testing.RunResult.stderr:
  - 132
  - 134
  - 127
  face.testing.RunResult.stdout:
  - 121
  - 118
  face.testing._fake_getpass:
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 73
  - 63
  face.testing._get_exp_code_text:
  - 161
  - 162
  - 163
  - 164
  - 154
  - 156
  - 158
  - 159
  face.testing._make_input_stream:
  - 51
  - 53
  - 54
  - 55
  - 57
  - 58
  - 59
  face.testing._sync_env:
  - 386
  - 388
  - 389
  - 391
  - 392
  - 393
  - 394
  face.testing._sync_env.<lambda1>:
  - 388
  face.utils:
  - 20
  - 23
  - 15
  face.utils._get_text:
  - 347
  - 348
  face.utils.echo:
  - 320
  - 323
  - 324
  - 325
  - 326
  - 328
  - 307
  - 308
  - 309
  - 310
  - 311
  - 312
  - 314
  - 315
  - 284
  - 317
  - 318
  - 319
  face.utils.echo_err:
  - 339
  - 334
  face.utils.flag_to_identifier:
  - 97
  - 69
  - 79
  - 82
  - 86
  - 89
  - 90
  - 95
  face.utils.format_flag_label:
  - 115
  - 116
  - 118
  - 119
  - 120
  - 121
  - 122
  face.utils.format_flag_post_doc:
  - 160
  - 162
  - 164
  - 159
  face.utils.format_posargs_label:
  - 128
  - 129
  - 131
  - 133
  face.utils.get_cardinalized_args_label:
  - 137
  - 145
  - 146
  - 147
  - 148
  - 153
  - 155
  face.utils.get_minimal_executable:
  - 256
  - 257
  - 258
  - 260
  - 261
  - 262
  - 241
  face.utils.get_rdep_map:
  - 224
  - 225
  - 227
  - 229
  - 233
  - 234
  - 211
  - 221
  - 222
  face.utils.get_type_desc:
  - 171
  - 172
  - 189
  face.utils.identifier_to_flag:
  - 105
  - 108
  - 110
  face.utils.isatty:
  - 273
  - 271
  face.utils.normalize_flag_name:
  - 64
  - 60
  - 61
  - 63
  face.utils.process_command_name:
  - 41
  - 44
  - 48
  - 49
  - 54
  - 30
  face.utils.prompt:
  - 353
  - 400
  - 401
  - 402
  - 403
  - 404
  - 405
  - 380
  - 381
  face.utils.prompt.prompt_func:
  - 394
  - 395
  - 388
  - 389
  face.utils.prompt_secret:
  - 412
  - 421
  - 422
  face.utils.should_strip_ansi:
  - 280
  - 279
  face.utils.unwrap_text:
  - 193
  - 198
  - 199
  - 200
  - 201
  - 203
  - 205
  - 206
  - 207
Fuzzer filename: /src/fuzz_command.py
Inheritance:
  face.command.Command:
  - Parser
  face.errors.ArgumentArityError:
  - ArgumentParseError
  face.errors.ArgumentParseError:
  - FaceException
  face.errors.CommandLineError:
  - SystemExit
  - FaceException
  face.errors.DuplicateFlag:
  - ArgumentParseError
  face.errors.FaceException:
  - Exception
  face.errors.InvalidFlagArgument:
  - ArgumentParseError
  face.errors.InvalidPositionalArgument:
  - ArgumentParseError
  face.errors.InvalidSubcommand:
  - ArgumentParseError
  face.errors.MissingRequiredFlags:
  - ArgumentParseError
  face.errors.UnknownFlag:
  - ArgumentParseError
  face.errors.UsageError:
  - CommandLineError
  face.helpers.HelpHandler:
  - object
  face.helpers.StoutHelpFormatter:
  - object
  face.parser.ChoicesParam:
  - object
  face.parser.CommandParseResult:
  - object
  face.parser.FilePathParam:
  - object
  face.parser.FileValueParam:
  - object
  face.parser.Flag:
  - object
  face.parser.FlagDisplay:
  - object
  face.parser.ListParam:
  - object
  face.parser.Parser:
  - object
  face.parser.PosArgDisplay:
  - object
  face.parser.PosArgSpec:
  - object
  face.parser.parse_sv_line._face_dialect:
  - Dialect
  face.testing.CheckError:
  - AssertionError
  face.testing.CommandChecker:
  - object
  face.testing.RunResult:
  - object
ep:
  func_name: TestOneInput
  module: '...fuzz_command'
