Example #1
0
 def run(self, context, args, kwargs, opargs):
     if len(args) == 0:
         output_msg("")
     else:
         less_output = ' '.join(args)
         output_less(lambda: output_msg(less_output))
Example #2
0
 def run(self, context, args, kwargs, opargs):
     histroy_range = readline.get_current_history_length()
     history = [readline.get_history_item(i) for i in range(histroy_range)]
     output_less(lambda: output_list(history, label="Command History"))
Example #3
0
    def run(self, context, args, kwargs, opargs):
        display_props = False
        if "properties" in args:
            display_props = True
        obj = context.ml.get_relative_object(context.ml.path[-1], args)
        bases = map(lambda x: x.__name__, obj.__class__.__bases__)

        if display_props:
            if hasattr(obj, 'property_mappings'):
                prop_dict_list = []
                for prop in obj.property_mappings:
                    prop_dict = {
                            'propname': prop.name,
                            'propdescr': prop.descr
                    }
                    prop_dict_list.append(prop_dict)
                return Table(prop_dict_list, [
                    Table.Column('Property', 'propname', ValueType.STRING),
                    Table.Column('Description', 'propdescr', ValueType.STRING)])
            else:
                output_msg("The current namespace does not have any properties.")
            return

        if 'Command' in bases and obj.__doc__:
            if hasattr(obj, 'parent'):
                if obj.__class__.__name__ in obj.parent.localdoc:
                    output_msg(textwrap.dedent(obj.parent.localdoc[obj.__class__.__name__]))
                else:
                    output_msg(inspect.getdoc(obj))
            else:
                output_msg(inspect.getdoc(obj))

        if 'PipeCommand' in bases and obj.__doc__:
            output_msg(inspect.getdoc(obj))

        if any(i in ['Namespace', 'EntityNamespace'] for i in bases):
            # First listing the Current Namespace's commands
            cmd_dict_list = []
            ns_cmds = obj.commands()
            for key, value in ns_cmds.iteritems():
                cmd_dict = {
                    'cmd': key,
                    'description': value.description,
                }
                cmd_dict_list.append(cmd_dict)

            # Then listing the namespaces available from this namespace
            namespaces_dict_list = []
            for nss in obj.namespaces():
                if not isinstance(nss, EntityNamespace.SingleItemNamespace):
                    namespace_dict = {
                        'name': nss.name,
                        'description': nss.description,
                    }
                    namespaces_dict_list.append(namespace_dict)

            # Finally listing the builtin cmds
            builtin_cmd_dict_list = []
            for key, value in context.ml.builtin_commands.iteritems():
                builtin_cmd_dict = {
                    'cmd': key,
                    'description': value.description,
                }
                builtin_cmd_dict_list.append(builtin_cmd_dict)

            # Finally printing all this out in unix `LESS(1)` pager style
            output_call_list = []
            if cmd_dict_list:
                output_call_list.append(
                    Table(cmd_dict_list, [
                        Table.Column('Command', 'cmd', ValueType.STRING),
                        Table.Column('Description', 'description', ValueType.STRING)]))
            if namespaces_dict_list:
                output_call_list.append(
                    Table(namespaces_dict_list, [
                        Table.Column('Namespace', 'name', ValueType.STRING),
                        Table.Column('Description', 'description', ValueType.STRING)
                        ]))
            # Only display the help on builtin commands if in the RootNamespace
            if obj.__class__.__name__ == 'RootNamespace':
                output_call_list.append(
                    Table(builtin_cmd_dict_list, [
                        Table.Column('Builtin Command', 'cmd', ValueType.STRING),
                        Table.Column('Description', 'description', ValueType.STRING)
                    ]))
            output_less(lambda: output_table_list(output_call_list))
Example #4
0
 def run(self, context, args, kwargs, opargs):
     if len(args) == 0:
         output_msg("")
     else:
         less_output = ' '.join(args)
         output_less(lambda: output_msg(less_output))
Example #5
0
 def run(self, context, args, kwargs, opargs):
     histroy_range = readline.get_current_history_length()
     history = [readline.get_history_item(i) for i in range(histroy_range)]
     output_less(lambda: output_list(history, label="Command History"))
Example #6
0
    def run(self, context, args, kwargs, opargs):
        display_props = False
        if "properties" in args:
            display_props = True
        obj = context.ml.get_relative_object(context.ml.path[-1], args)
        bases = map(lambda x: x.__name__, obj.__class__.__bases__)

        if display_props:
            if hasattr(obj, 'property_mappings'):
                prop_dict_list = []
                for prop in obj.property_mappings:
                    prop_dict = {
                        'propname': prop.name,
                        'propdescr': prop.descr
                    }
                    prop_dict_list.append(prop_dict)
                return Table(prop_dict_list, [
                    Table.Column('Property', 'propname', ValueType.STRING),
                    Table.Column('Description', 'propdescr', ValueType.STRING)
                ])
            else:
                output_msg(
                    "The current namespace does not have any properties.")
            return

        if 'Command' in bases and obj.__doc__:
            if hasattr(obj, 'parent'):
                if obj.__class__.__name__ in obj.parent.localdoc:
                    output_msg(
                        textwrap.dedent(
                            obj.parent.localdoc[obj.__class__.__name__]))
                else:
                    output_msg(inspect.getdoc(obj))
            else:
                output_msg(inspect.getdoc(obj))

        if 'PipeCommand' in bases and obj.__doc__:
            output_msg(inspect.getdoc(obj))

        if any(i in ['Namespace', 'EntityNamespace'] for i in bases):
            # First listing the Current Namespace's commands
            cmd_dict_list = []
            ns_cmds = obj.commands()
            for key, value in ns_cmds.iteritems():
                cmd_dict = {
                    'cmd': key,
                    'description': value.description,
                }
                cmd_dict_list.append(cmd_dict)

            # Then listing the namespaces available from this namespace
            namespaces_dict_list = []
            for nss in obj.namespaces():
                if not isinstance(nss, EntityNamespace.SingleItemNamespace):
                    namespace_dict = {
                        'name': nss.name,
                        'description': nss.description,
                    }
                    namespaces_dict_list.append(namespace_dict)

            # Finally listing the builtin cmds
            builtin_cmd_dict_list = []
            for key, value in context.ml.builtin_commands.iteritems():
                builtin_cmd_dict = {
                    'cmd': key,
                    'description': value.description,
                }
                builtin_cmd_dict_list.append(builtin_cmd_dict)

            # Finally printing all this out in unix `LESS(1)` pager style
            output_call_list = []
            if cmd_dict_list:
                output_call_list.append(
                    Table(cmd_dict_list, [
                        Table.Column('Command', 'cmd', ValueType.STRING),
                        Table.Column('Description', 'description',
                                     ValueType.STRING)
                    ]))
            if namespaces_dict_list:
                output_call_list.append(
                    Table(namespaces_dict_list, [
                        Table.Column('Namespace', 'name', ValueType.STRING),
                        Table.Column('Description', 'description',
                                     ValueType.STRING)
                    ]))
            # Only display the help on builtin commands if in the RootNamespace
            if obj.__class__.__name__ == 'RootNamespace':
                output_call_list.append(
                    Table(builtin_cmd_dict_list, [
                        Table.Column('Builtin Command', 'cmd',
                                     ValueType.STRING),
                        Table.Column('Description', 'description',
                                     ValueType.STRING)
                    ]))
            output_less(lambda: output_table_list(output_call_list))