Source code for edeposit.amqp.calibre.structures

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Interpreter version: python 2.7
#
# Imports =====================================================================
from collections import namedtuple


# Variables ===================================================================
INPUT_FORMATS = [
    "cbz",
    "cbr",
    "cbc",
    "chm",
    "djvu",
    "docx",
    "epub",
    "fb2",
    "html",
    "htmlz",
    "lit",
    "lrf",
    "mobi",
    "odt",
    "pdf",
    "prc",
    "pdb",
    "pml",
    "rb",
    "rtf",
    "snb",
    "tcr",
    "txt",
    "txtz"
]
"List of `available input <http://bit.ly/1c1bHZP>`_ formats."

OUTPUT_FORMATS = [  #:
    "azw3",
    "epub",
    "fb2",
    "oeb",
    "lit",
    "lrf",
    "mobi",
    "htmlz",
    "pdb",
    "pml",
    "rb",
    "pdf",
    "rtf",
    "snb",
    "tcr",
    "txt",
    "txtz"
]
"List of `available output <http://bit.ly/1c1bHZP>`_ formats."


# Functions & objects =========================================================
[docs]class ConversionRequest(namedtuple("ConversionRequest", ["input_format", "output_format", "b64_data"])): """ This structure specifies details of AMQP message, which is passed to :func:`reactToAMQPMessage` as request for conversion. Args: input_format (str): See :attr:`INPUT_FORMATS` for list of valid input formats output_format (str): See :attr:`OUTPUT_FORMATS` for list of valid output formats. b64_data (base64 str): :py:mod:`base64` encoded file. Raises: ValueError: if invalid input/output format is provided. """ def __init__(self, input_format, output_format, b64_data): if input_format not in INPUT_FORMATS: raise ValueError("Unsupported input format!") if output_format not in OUTPUT_FORMATS: raise ValueError("Unsupported output format!")
[docs]class ConversionResponse(namedtuple("ConversionResponse", ["format", "b64_data", "protocol"])): """ Structure is returned as response from :func:`reactToAMQPMessage`, when the file is converted. Args: type (str): See :attr:`OUTPUT_FORMATS` for details. b64_data (base64 str): :py:mod:`base64` encoded converted data. protocol (str): Protocol of the conversion. """