예제 #1
0
  def console_output(self, targets):
    buildfile_aliases = self.context.build_file_parser.registered_aliases()
    extracter = BuildDictionaryInfoExtracter(buildfile_aliases)

    alias = self.get_options().details
    if alias:
      target_types = buildfile_aliases.target_types_by_alias.get(alias)
      if target_types:
        tti = next(x for x in extracter.get_target_type_info() if x.build_file_alias == alias)
        yield blue('\n{}\n'.format(tti.description))
        yield blue('{}('.format(alias))

        for arg in extracter.get_target_args(list(target_types)[0]):
          default = green('(default: {})'.format(arg.default) if arg.has_default else '')
          yield '{:<30} {}'.format(
            cyan('  {} = ...,'.format(arg.name)),
            ' {}{}{}'.format(arg.description, ' ' if arg.description else '', default))

        yield blue(')')
      else:
        yield 'No such target type: {}'.format(alias)
    else:
      for tti in extracter.get_target_type_info():
        description = tti.description or '<Add description>'
        yield '{} {}'.format(cyan('{:>30}:'.format(tti.build_file_alias)), description)
예제 #2
0
    def console_output(self, targets):
        buildfile_aliases = self.context.build_file_parser.registered_aliases()
        extracter = BuildDictionaryInfoExtracter(buildfile_aliases)

        alias = self.get_options().details
        if alias:
            target_types = buildfile_aliases.target_types_by_alias.get(alias)
            if target_types:
                tti = next(x for x in extracter.get_target_type_info()
                           if x.build_file_alias == alias)
                yield blue('\n{}\n'.format(tti.description))
                yield blue('{}('.format(alias))

                for arg in extracter.get_target_args(list(target_types)[0]):
                    default = green('(default: {})'.format(arg.default) if arg.
                                    has_default else '')
                    yield '{:<30} {}'.format(
                        cyan('  {} = ...,'.format(arg.name)),
                        ' {}{}{}'.format(arg.description,
                                         ' ' if arg.description else '',
                                         default))

                yield blue(')')
            else:
                yield 'No such target type: {}'.format(alias)
        else:
            for tti in extracter.get_target_type_info():
                description = tti.description or '<Add description>'
                yield '{} {}'.format(
                    cyan('{:>30}:'.format(tti.build_file_alias)), description)
예제 #3
0
    def test_get_target_args(self):
        class Target1(Target):
            def __init__(self, arg1, arg2=42, **kwargs):
                """
        :param arg1: The first arg.
        :param arg2: The second arg.
        """
                super(Target1, self).__init__(**kwargs)

        class Target2(Target1):
            pass

        class Target3(Target2):
            def __init__(self, arg3, arg4=None, **kwargs):
                super(Target1, self).__init__(**kwargs)

        self.maxDiff = None
        self.assertEqual(
            BuildDictionaryInfoExtracter.basic_target_args + [
                FunctionArg('arg1', 'The first arg.', False, None),
                FunctionArg('arg2', 'The second arg.', True, 42),
                FunctionArg('arg3', '', False, None),
                FunctionArg('arg4', '', True, None)
            ], BuildDictionaryInfoExtracter.get_target_args(Target3))
  def test_get_target_args(self):
    class Target1(Target):
      def __init__(self, arg1, arg2=42, **kwargs):
        """
        :param arg1: The first arg.
        :param arg2: The second arg.
        """
        super(Target1, self).__init__(**kwargs)

    class Target2(Target1):
      pass

    class Target3(Target2):
      def __init__(self, arg3, arg4=None, **kwargs):
        super(Target1, self).__init__(**kwargs)

    self.maxDiff = None
    self.assertEqual(BuildDictionaryInfoExtracter.basic_target_args + [
                       FunctionArg('arg1', 'The first arg.', False, None),
                       FunctionArg('arg2', 'The second arg.', True, 42),
                       FunctionArg('arg3', '', False, None),
                       FunctionArg('arg4', '', True, None)
                     ],
                     BuildDictionaryInfoExtracter.get_target_args(Target3))