@classmethod
    def info(cls, obj, ansi=False, backend='matplotlib', visualization=True, pattern=None):
        """
        Show information about an object in the given category. ANSI
        color codes may be enabled or disabled.
        """
        ansi_escape = re.compile(r'\x1b[^m]*m')

        isclass = isinstance(obj, type)
        name = obj.__name__ if isclass  else obj.__class__.__name__
        plot_class = cls.store.registry[backend].get(obj if isclass else type(obj), None)
        # Special case to handle PlotSelectors
        if hasattr(plot_class, 'plot_classes'):
            plot_class =  list(plot_class.plot_classes.values())[0]


        if visualization is False or plot_class is None:
            if pattern is not None:
                obj = ParamFilter(obj, ParamFilter.regexp_filter(pattern))
                if 1 <= len(obj.params()):
                    return ('No %r parameters found matching specified pattern %r'
                            % (name, pattern))
            info = param.ipython.ParamPager()(obj)
            if ansi is False:
                info = ansi_escape.sub('', info)
            return cls.highlight(pattern, info)

        heading = name if isclass else '{name}: {group} {label}'.format(name=name,
                                                                        group=obj.group,
                                                                        label=obj.label)
        prefix = heading
        lines = [prefix, cls.object_info(obj, name, ansi=ansi)]

        if not isclass:
            lines += ['', cls.target_info(obj, ansi=ansi)]
        if plot_class is not None:
            lines += ['', cls.options_info(plot_class, ansi, pattern=pattern)]
        return "\n".join(lines)
dataset/ETHPy150Open ioam/holoviews/holoviews/core/pprint.py/InfoPrinter.info/swapped operands of `<=`