Source code for pdfgen

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Interpreter version: python 2.7
#
# Imports =====================================================================
from structures.requests import RST2PDF
from structures.requests import GenerateReview
from structures.requests import GenerateContract

from structures.responses import pdf_from_file

from translator import gen_pdf
from specialization import get_review
from specialization import get_contract


# Functions & classes =========================================================
def _instanceof(instance, class_):
    """Check type by matching ``.__name__``."""
    return type(instance).__name__ == class_.__name__


[docs]def reactToAMQPMessage(message, sender): """ React to given (AMQP) message. `message` is usually expected to be :py:func:`collections.namedtuple` structure filled with all necessary data. Args: message (\*Request class): One of the structures defined in :mod:`.requests`. sender (fn reference): Reference to function for responding - progress monitoring for example. Function takes one parameter, which may be response namedtuple, or string or whatever would be normally returned. Returns: obj: One of the responses in :mod:`.responses`. Raises: ValueError: if bad type of `message` structure is given. """ if _instanceof(message, GenerateContract): return pdf_from_file( # TODO: rewrite to decorator get_contract(**message._asdict()) ) elif _instanceof(message, RST2PDF): return pdf_from_file( gen_pdf(**message._asdict()) ) elif _instanceof(message, GenerateReview): return pdf_from_file( get_review(message) ) raise ValueError( "Unknown type of request: '" + str(type(message)) + "'!" )