Example #1
0
 def reduce_data(data_view, samples):
     try:
         return data_view.reduce(samples)
     except:
         msg = ('Error while applying the view\n\t%s\nto the '
                'samples\n\t%s' % (data_view, samples))
         logger.error(msg)
         raise
Example #2
0
 def reduce_data(data_view, samples):
     try:
         return data_view.reduce(samples)
     except:
         msg = "Error while applying the view\n\t%s\nto the " "samples\n\t%s" % (
             data_view,
             samples,
         )
         logger.error(msg)
         raise
Example #3
0
def get_node(url, r, strict=True):
    try:
        node = r.resolve_url(url)
    except NotExistent as e:
        if strict:
            logger.error("Error while getting url %r\n%s" % (url, r.format_tree()))
            raise
        else:
            logger.warn("Ignoring error: %s" % e)
            return Report()

    node = deepcopy(node)
    node.parent = None
    return node
Example #4
0
def get_node(url, r, strict=True):
    try:
        node = r.resolve_url(url)
    except NotExistent as e:
        if strict:
            logger.error('Error while getting url %r\n%s' % (url,
                                                             r.format_tree()))
            raise
        else:
            logger.warn('Ignoring error: %s' % e)
            return Report()

    node = deepcopy(node)
    node.parent = None
    return node
Example #5
0
def write_python_data(parent, name, mime, data):
    tables = get_tables()
    from tables.flavor import flavor_of

    hf = parent._v_file
    group = hf.createGroup(parent, name)
    hf.createArray(group, "mime", mime)
    try:
        flavor_of(data)
        ok_pytables = True
    except:
        ok_pytables = False

    # 2014-01-02 XXX this is a hack
    if data == []:
        ok_pytables = False

    if ok_pytables:
        try:
            hf.createArray(group, "value", data)
        except:
            msg = "Error while writing python data"
            msg += "\n parent: %s" % parent
            msg += "\n name: %s" % name
            msg += "\n mime: %s" % mime
            msg += "\n data: %s" % describe_type(data)
            msg += "\n       %s" % describe_value(data)
            msg += "\n flavor: %s" % flavor_of(data)
            msg += "\nraw:\n%s" % data.__repr__()
            logger.error(msg)
            raise
        serialized = "pytables"
    else:
        serialized = "pickle"
        s = StringIO()
        cPickle.dump(data, s, protocol=2)
        hf.createVLArray(group, "pickle", tables.VLStringAtom(), filters=None)
        group.pickle.append(s.getvalue())
    group._v_attrs["reprep_data_format"] = serialized
Example #6
0
    def caller():
        try:
            args = arguments(x)
        except Exception as e:
            msg = "Error while preparing test case: %s.\n" % e
            msg += "Error while calling %s with argument %r" % (arguments, x)
            logger.error(msg)
            raise

        try:
            f(*args)
        except:
            msg = "Error while executing test %r.\n" % name
            msg += " f = %s\n" % f
            msg += " f.__module__ = %s\n" % f.__module__
            msg += " x = %s\n" % str(x)
            msg += " arguments() = %s\n" % str(arguments)
            msg += " arguments(x) has size %d\n" % len(args)
            for i, a in enumerate(args):
                msg += "  arg %d = %s\n" % (i, describe_value(a))
            logger.error(msg)
            raise
Example #7
0
def write_python_data(parent, name, mime, data):
    tables = get_tables()
    from tables.flavor import flavor_of
    hf = parent._v_file
    group = hf.createGroup(parent, name)
    hf.createArray(group, 'mime', mime)
    try:
        flavor_of(data)
        ok_pytables = True
    except:
        ok_pytables = False
    
    # 2014-01-02 XXX this is a hack
    if data == []:
        ok_pytables = False
        
    if ok_pytables: 
        try:
            hf.createArray(group, 'value', data)
        except:
            msg = 'Error while writing python data'
            msg += '\n parent: %s' % parent
            msg += '\n name: %s' % name
            msg += '\n mime: %s' % mime
            msg += '\n data: %s' % describe_type(data)
            msg += '\n       %s' % describe_value(data)
            msg += '\n flavor: %s' % flavor_of(data)
            msg += '\nraw:\n%s' % data.__repr__()
            logger.error(msg)
            raise
        serialized = 'pytables'
    else:
        serialized = 'pickle'
        s = StringIO()
        cPickle.dump(data, s, protocol=2)
        hf.createVLArray(group, 'pickle', tables.VLStringAtom(), filters=None)
        group.pickle.append(s.getvalue())    
    group._v_attrs['reprep_data_format'] = serialized
Example #8
0
def rp_figure_sub(resources, id_figure, what, caption=None):
    figure = resources[id_figure]
    try:
        figure.sub(what, caption=caption)
    except (NotExistent, Exception) as e:
        logger.error(e)
Example #9
0
    def sub(self, resource, caption=None, display=None, **kwargs):
        ''' Adds a subfigure displaying the given resource. 
        
            resource can either be a string or a data node.
        '''

        if isinstance(resource, str):
            data = self.resolve_url(resource)
            if not isinstance(data, DataNode):
                msg = ('I expected a DataNode for %r, got %s' % 
                       (resource, data))
                raise ValueError(msg)
        elif isinstance(resource, DataNode):
            data = resource
        else:
            raise ValueError('The first parameter to sub() must be either'
                             ' a string (url) or a reference to a DataNode, '
                             ' not a %s.' % describe_type(resource))

        if caption is None:
            caption = data.caption
            if caption is None:
                caption = data.nid
                # TODO: check if automatically generated
#                 if data.nid in ['scale', 'posneg']:
#                     caption = data.parent

        # if data.get_complete_id() in self.automatically_added:
        if data in self.automatically_added:
            
            warnings.warn('Node %r was automatically added to figure (new '
                          'behavior in 1.0).' % 
                          self.get_relative_url(data), stacklevel=2)
            return
# 
#         if not isinstance(data, DataNode):
#             msg = ('I expect a DataNode as an argument to sub(), not a %s.'
#                    % describe_type(resource))
#             raise ValueError(msg)

        if display is not None:
            image = data.display(display, **kwargs)
        else:
            image = data.get_first_child_with_mime(MIME_IMAGES)

            if image is None:
                self.parent.print_tree()  # XXX
                raise ValueError('Could not find candidate image for resource '
                                 '%r; image node is %r.' % 
                                 (resource, data.get_complete_id()))

        # Get an image that can be shown in a browser
        web_image = image.get_first_child_with_mime(MIME_WEB_IMAGES)
        if web_image is None:
            logger.error('No image with mime %r found in:\n%s' % 
                         (MIME_WEB_IMAGES, indent(image.format_tree(), '>')))
            # convert the image to web image
            # TODO: to write
            web_image = image  # XXX
            logger.error('I need to convert %s into a web image.' % 
                         (image))

        sub = SubFigure(resource=self.get_relative_url(data),
                        image=self.get_relative_url(image),
                        web_image=self.get_relative_url(web_image),
                        caption=caption)
        self.subfigures.append(sub)
Example #10
0
File: html.py Project: lowks/reprep
def figure_to_html(node, context):
    complete_id = get_complete_id(node)
    file = context.file  # @ReservedAssignment # XXX
    file.write('''<div style="clear:left" class='report-figure %s' id='%s'>
    ''' % (None, complete_id))

    # file.write('''<span class='node-id'>%s</span>''' % node.nid)
    if not 'figure' in node.nid.lower():
        # Do not write if name is autogenerated
        file.write('<h>%s</h>' % node.nid)

    if node.cols is None:
        ncols = len(node.subfigures)
    else:
        ncols = node.cols

    for i, sub in enumerate(node.subfigures):
        col = i % ncols
        last_col = col == ncols - 1
        first_col = col == 0

        classes = ['report-subfigure']
        
        classes.append('ncols-%s' % ncols)
        if first_col:
            classes.append("first-col")
           
        if last_col:
            classes.append("last-col")

        file.write('<div class="%s"> ' % " ".join(classes))

        main_resource = node.resolve_url(sub.resource)
        
        try:
            actual_resource = node.resolve_url(sub.web_image)
        except:
            logger.error("Cannot find sub.web_image url %r" % sub.web_image)
            node.parent.print_tree()  # XXX
            raise

        image_filename, _ = get_node_filename(actual_resource, context)

        file.write(
            Template('''
                <a href="${src}" class="zoomable">
                    <img src="${src}"/>
                </a>    
            ''').substitute(src=image_filename)
        )
        
        
        file.write('<p class="report-subfigure-caption">%s</p>' % 
                 htmlfy(sub.caption))
        
        if main_resource != actual_resource:
            if isinstance(main_resource, DataNode):
                t = '<p class="report-subfigure-main-link"><a href="${src}"> main </a></p>'
                file.write(Template(t).substitute(src=get_node_filename(main_resource, context)[0]))

        file.write('</div> ')

        if last_col:
            file.write('\n\n')

    caption = node.caption if node.caption else ""

    file.write('<p class="report-figure-caption">%s</p>' % 
             htmlfy(caption))

    children_to_html(node, context)

    file.write('''</div>''')
Example #11
0
def figure_to_html(node, context):
    complete_id = get_complete_id(node)
    file = context.file  # @ReservedAssignment # XXX
    file.write(
        """<div style="clear:left" class='report-figure %s' id='%s'>
    """
        % (None, complete_id)
    )

    # file.write('''<span class='node-id'>%s</span>''' % node.nid)
    if not "figure" in node.nid.lower():
        # Do not write if name is autogenerated
        file.write("<h>%s</h>" % node.nid)

    if node.cols is None:
        ncols = len(node.subfigures)
    else:
        ncols = node.cols

    for i, sub in enumerate(node.subfigures):
        col = i % ncols
        last_col = col == ncols - 1
        first_col = col == 0

        classes = ["report-subfigure"]

        classes.append("ncols-%s" % ncols)
        if first_col:
            classes.append("first-col")

        if last_col:
            classes.append("last-col")

        file.write('<div class="%s"> ' % " ".join(classes))

        main_resource = node.resolve_url(sub.resource)

        try:
            actual_resource = node.resolve_url(sub.web_image)
        except:
            logger.error("Cannot find sub.web_image url %r" % sub.web_image)
            node.parent.print_tree()  # XXX
            raise

        image_filename, _ = get_node_filename(actual_resource, context)

        if image_filename.endswith("pdf"):
            file.write(
                Template(
                    """
                    <a href="${src}">
                        (cannot display PDF)
                    </a>    
                """
                ).substitute(src=image_filename)
            )
        elif image_filename.endswith("svg"):
            file.write(
                Template(
                    """
                    <object data="${src}" width="100%" type="image/svg+xml"></object>    
                """
                ).substitute(src=image_filename)
            )
        else:
            file.write(
                Template(
                    """
                    <a href="${src}" class="zoomable">
                        <img src="${src}"/>
                    </a>    
                """
                ).substitute(src=image_filename)
            )

        file.write('<p class="report-subfigure-caption">%s</p>' % htmlfy(sub.caption))

        if main_resource != actual_resource:
            if isinstance(main_resource, DataNode):
                t = '<p class="report-subfigure-main-link"><a href="${src}"> main </a></p>'
                file.write(
                    Template(t).substitute(
                        src=get_node_filename(main_resource, context)[0]
                    )
                )

        file.write("</div> ")

        if last_col:
            file.write("\n\n")

    caption = node.caption if node.caption else ""

    file.write('<p class="report-figure-caption">%s</p>' % htmlfy(caption))

    children_to_html(node, context)

    file.write("""</div>""")
Example #12
0
def rp_figure_sub(resources, id_figure, what, caption=None):
    figure = resources[id_figure]
    try:
        figure.sub(what, caption=caption)
    except (NotExistent, Exception) as e:
        logger.error(e)