pp.server


Namepp.server JSON
Version 3.3.0.2 PyPI version JSON
download
home_pagehttp://pypi.python.org/pypi/pp.server
Summarypp.server - Produce & Publish Server
upload_time2023-02-07 09:36:29
maintainer
docs_urlhttps://pythonhosted.org/pp.server/
authorAndreas Jung
requires_python
license
keywords web pyramid pdf unoconv conversion princexml pdfreactor
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            pp.server - Produce & Publish Server
====================================


.. note:: 

   This new version 3 of the Produce & Publish server is a complete rewrite
   with an incompatible REST API. Version 3 also requires version 3
   of the `pp.client-python` bindings.

``pp.server`` is a FastAPI based server implementation and implements the
server side functionality of the Produce & Publish platform.  It is known as
the ``Produce & Publish Server``.

The Produce & Publish Server provided web service APIs for converting
HTML/XML + assets to PDF using one of the following external PDF converters:

- PrinceXML (www.princexml.com, commercial)
- PDFreactor (www.realobjects.com, commercial)
- Speedata Publisher (www.speedata.de, open-source, experimental support)
- WKHTMLTOPDF (www.wkhtmltopdf.org, open-source, experimental support)
- Vivliostyle Formatter (www.vivliostyle.com, commercial, experimental support)
- VersaType Formatter (www.trim-marks.com, commercial, experimental support)
- Antennahouse 7 (www.antennahouse.com, commercial)
- Weasyprint (free, unsupported)
- Typeset.sh  (www.typeset.sh, commercial)
- PagedJS  (www.pagedjs.org, free)

In addition there is experimental support for generating EPUB documents
using ``Calibre`` (www.calibre.org, open-source).

The web service provides only synchronous operation.

Requirements
------------

- Python 3.8 or higher, no support for Python 2.x

- the external binaries 

  - PrinceXML: ``prince``, 
  - PDFreactor: ``pdfreactor.py``,  
  - Speedata Publisher: ``sp``
  - Calibre: ``ebook-convert``
  - WKHTMLTOPDF: ``wkhtmltopdf``    
  - Vivliostyle: ``vivliostyle-formatter``    
  - VersaType : ``versatype-converter``    
  - Weasyprint: ``weasyprint``    
  - Antennahouse: ``run.sh``    
  - Typeset.sh: ``typeset.sh.phar``    
  - PageJS: ``pagedjs-cli``    

  must be in the $PATH. Please refer to the installation documentation
  of the individual products.

Installation
------------

- create a Python 3  virtual environment using::

    python3 -m venv pp.server

- install the Produce & Publish server::

    bin/pip install pp.server

- run the Produce & Publish server::

    bin/uvicorn pp.server.server:app

- or under control of `gunicorn`::

    bin/gunicorn pp.server.server:app -w 2 -k uvicorn.workers.UvicornWorker


- For running the Produce & Publisher server under control of the process manager
  `circus`, generate the `circusd.ini` file using::

    bin/pp-server-templates

- and start it in background::

    bin/circusd circusd.ini  --daemon

Converter requirements
----------------------

For the PDF conversion the related converter binaries or scripts
must be included in the ``$PATH`` of your server.

- ``prince`` for PrinceXML

- ``pdfreactor`` for PDFreactor 8 or higher

- ``wkhtmltopdf`` for WKHTMLToPDF

- ``ebook-convert`` for Calibre

- ``sp`` for the Speedata Publisher

- ``vivliostyle`` for the Vivliostyle formatter

- ``versatype`` for the Versatype converter

- ``weasyprint`` for Weasyprint

- ``antennahouse`` for the Antennahouse

- ``pagedjs`` for the PagedJS

- ``typesetsh`` for the Typeset.sh



API documentation
-----------------

All API methods are available through a REST api
following API URL endpoint::

    http://host:port/<command>

With the default server configuration this translates to::

    http://localhost:8000/convert

REST API Introspection
----------------------

`pp.server` is implemented based on the FastAPI framework for Python.
You can access the REST API  documentation directly through
    
    http://localhost:8000/docs

Environment variables
+++++++++++++++++++++

`pp.server` uses the `var` folder of the installation directory by default as
temporary folder for conversion data. Set the environment variable `PP_SPOOL_DIRECTORY` 
if you need different spool directory instead. 

If you run PDFreactor 10 or higher under Docker then you must set the environment
variable `PP_PDFREACTOR_DOCKER=1` in order to generated a proper `file:///docs/...`
URI for `pdfreactor.py`.


PDF conversion API
++++++++++++++++++

Remember that all converters use HTML or XML as input for the conversion. All
input data (HTML/XML, images, stylesheets, fonts etc.) must be stored in ZIP
archive. The filename of the content **must** be named ``index.html``.

You have to ``POST`` the data to the 

    http://host:port/convert

with the following parameters:


- ``data`` - the ZIP archive (as base64 encoded string)

- ``converter`` - a string that determines the the PDF
  converter to be used (either ``princexml``, ``pdfreactor``, ``phantomjs``, ``vivliostyle``, ``versatype``, 
  or ``calibre`` for generating EPUB content)

- ``cmd_options`` - an optional string of command line parameters added 
  as given to the calls of the externals converters


Returns:

The API returns its result as JSON structure with the following key-value
pairs:

- ``status`` - either ``OK`` or ``ERROR``

- ``data``- the generated PDF file encoded as base64 encoded byte string

- ``output`` - the conversion transcript (output of the converter run)

  
Introspection API methods
+++++++++++++++++++++++++

Produce & Publish server version:

    http://host:port/version

returns:

    {"version": "3.0.0", "module": "pp.server"}
   
Installed/available converters:

    http://host:port/converters

returns:

    {"pdfreactor": true, "phantomjs": false, "calibre": true, "prince": true}


Versions of installed converter:

    http://host:port/converter-versions

returns:

    {'prince': 'Version x.y', 'pdfreactor: 'Version a.b.c', ...}


Other API methods
+++++++++++++++++

Cleanup of the queue directory (removes conversion data older than one day)

    http://host:port/cleanup

returns:

    {"directories_removed": 22}


Source code
-----------

https://bitbucket.org/ajung/pp.server

Bug tracker
-----------

https://bitbucket.org/ajung/pp.server/issues

Support
-------

Support for Produce & Publish Server is currently only available on a project
basis.

License
-------
``pp.server`` is published under the GNU Public License V2 (GPL 2).

Contact
-------

| ZOPYX 
| Hundskapfklinge 33
| D-72074 Tuebingen, Germany
| info@zopyx.com
| www.zopyx.com
| www.produce-and-publish.info


3.3.0 (2023/02/07)
------------------
- modernized codebase
- Python 3.9 or higher is now required
- no features added

3.2.0 (2020/05/12)
------------------
- added selftest endpoint 

3.1.0 (2020/03/20)
------------------
- various minor fixes
- available_converters() now executed in parallel -> speedup

3.0.0 (2020/02/14)
------------------

- complete rewrite using FastAPI as REST backend
- better logging
- changed API names
- dropped support for PhantomJS and Unoconv
- better error handling
- simplified configuration for further converter support

2.1.0 (2020/08/12)
------------------
- support for `pagedjs-cli` and `typeset.sh` added

2.0.4 (2019/02/11)
------------------
- minor installation issues with `var` folder gunicorn.log
- added optional `PP_PDFREACTOR_DOCKER` environment support

2.0.3 (2019/02/11)
------------------
- minor installation issues with `var` folder gunicorn.log
- added optional `PP_SPOOL_DIRECTORY` environment support

2.0.0 (2018/07/14)
------------------
- major cleanup
- removed async functionality
- switched from waitress to gunicorn
- switched from subprocess to easyprocess
- webpage displays installed converters and their versions
- support for VersaType converter added

1.0.8 (2017/10/23)
------------------
- internal release

1.0.7 (2017/08/17)
------------------
- fixed a very old bug in cleanup code

1.0.6 (2017/08/08)
------------------
- display available converters during startup

1.0.5 (2017/04/06)
------------------
- support for WeasyPrint

1.0.3 (2017/02/13)
------------------

- calling princexml with explicit option -o (Prince 11 compatibility)

1.0.0 (2017/01/08)
------------------
- first official release
- requires Python 3.5 or higher

0.7.13 (2016/08/30)
-------------------

- added ``circus`` dependency in order to provide daemonizing
  support out of the box

0.7.12 (2016/08/29)
-------------------
- fix for PDFreactor 8

0.7.11 (2016/06/01)
-------------------
- updated to Pyramid 1.7

0.7.7 (2016/01/24)
------------------
- updated support for latest Vivliostyle formatter
- added support for Antennahouse Formatter

0.7.6 (2015/11/30)
------------------
- support for PDFreactor 8

0.7.5 (2015/11/18)
------------------
- fixed race condition while creating directories

0.7.4 (2015/11/14)
------------------
- support for nested uploaded ZIP files

0.7.3 (2015/11/14)
------------------
- support for Vivliostyle Formatter

0.7.2 (2015/04/20)
------------------
- merged https://bitbucket.org/ajung/pp.server/pull-request/1/
  (improper check for wkhtmltopdf)
- merged https://bitbucket.org/ajung/pp.server/pull-request/2/
  (fix for async operations)

0.7.1 (2015/03/13)
------------------
- unicode fix in runcmd()

0.7.0 (2015/02/15)
------------------

- 0.6.x was completely badly packaged
- changed repo structure

0.6.1 (2015/02/02)
------------------
- add /api/converter-versions to webservice API

0.6.0 (2015/01/26)
------------------
- dropped Python 2.X support, Python 3.3 or higher 
  is now a mandatory requirement

0.5.5 (2015/01/23)
------------------
- UTF8 handling fix

0.5.3 (2014/11/23)
------------------
- support for WKHTMLTOPDF

0.5.2 (2014/11/19)
------------------
- support for Speedata Publisher 

0.5.1 (2014/10/12)
------------------
- improved error handling

0.5.0 (2014/10/12)
------------------
- official Python 3.3/3.4 support 

0.4.7 (25.09.2014)
------------------
- fixed documentation bug

0.4.6 (22.08.2014)
------------------
- removed PDFreactor --addlog option

0.4.5 (22.08.2014)
------------------
- added supplementary commandline options to pdfreactor commandline call

0.4.4 (24.01.2014)
------------------
- minor typos fixed

0.4.3 (20.01.2014)
------------------
- implemented automatic queue cleanup after one day

0.4.2 (18.01.2014)
------------------
- URL fix in index.pt related to virtual hosting

0.4.1 (13.01.2014)
------------------
- show Python version and converters on index.pt
- authorization support added

0.4.0 (17.10.2013)
------------------
- Python 3.3 support
- Pyramid 1.5 support

0.3.5 (05.10.2013)
------------------
- added 'cmd_options' to pdf and unoconv API 
  methods for specifying arbitary command line parameters
  for the external converters

0.3.4 (05.10.2013)
------------------
- added 'cleanup' API 

0.3.3 (05.10.2013)
------------------
- added 'version' and 'converter' API methods

0.3.2 (04.10.2013)
------------------
- added support EPUB conversion using ``Calibre``

0.3.1 (03.10.2013)
------------------
- updated documentation 

0.3.0 (14.07.2013)
------------------
- unoconv conversion now returns a ZIP archive
  (e.g. a HTML file + extracted images)

0.2.7 (06.07.2013)
------------------
- added support for Phantom.js converter

0.2.5 (05.07.2013)
------------------
- better detecting of prince and pdfreactor binaries

0.2.2 (05.07.2013)
------------------
- updated the documentation
- minor cleanup 

0.2.1 (04.07.2013)
------------------
- re-added poll API

0.2.0 (03.07.2013)
------------------
- converted XML-RPC api to REST api

0.1.9 (01.07.2013)
------------------
- monkeypatch pyramid_xmlrpc.parse_xmlrpc_request in order
  to by-pass its stupid DOS request body check

0.1.7 (29.06.2013)
------------------
- more tests
- fixes
- updated documentation

0.1.5 (27.06.2013)
------------------
- test for synchronous operations
- fixes

0.1.0 (24.06.2013)
------------------
- initial release
            

Raw data

            {
    "_id": null,
    "home_page": "http://pypi.python.org/pypi/pp.server",
    "name": "pp.server",
    "maintainer": "",
    "docs_url": "https://pythonhosted.org/pp.server/",
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "web pyramid pdf unoconv conversion princexml pdfreactor",
    "author": "Andreas Jung",
    "author_email": "info@zopyx.com",
    "download_url": "https://files.pythonhosted.org/packages/fe/8c/dced956ca20a6f7455545bebfaa8c740f2290abf493145ae6190bece5935/pp.server-3.3.0.2.zip",
    "platform": null,
    "description": "pp.server - Produce & Publish Server\n====================================\n\n\n.. note:: \n\n   This new version 3 of the Produce & Publish server is a complete rewrite\n   with an incompatible REST API. Version 3 also requires version 3\n   of the `pp.client-python` bindings.\n\n``pp.server`` is a FastAPI based server implementation and implements the\nserver side functionality of the Produce & Publish platform.  It is known as\nthe ``Produce & Publish Server``.\n\nThe Produce & Publish Server provided web service APIs for converting\nHTML/XML + assets to PDF using one of the following external PDF converters:\n\n- PrinceXML (www.princexml.com, commercial)\n- PDFreactor (www.realobjects.com, commercial)\n- Speedata Publisher (www.speedata.de, open-source, experimental support)\n- WKHTMLTOPDF (www.wkhtmltopdf.org, open-source, experimental support)\n- Vivliostyle Formatter (www.vivliostyle.com, commercial, experimental support)\n- VersaType Formatter (www.trim-marks.com, commercial, experimental support)\n- Antennahouse 7 (www.antennahouse.com, commercial)\n- Weasyprint (free, unsupported)\n- Typeset.sh  (www.typeset.sh, commercial)\n- PagedJS  (www.pagedjs.org, free)\n\nIn addition there is experimental support for generating EPUB documents\nusing ``Calibre`` (www.calibre.org, open-source).\n\nThe web service provides only synchronous operation.\n\nRequirements\n------------\n\n- Python 3.8 or higher, no support for Python 2.x\n\n- the external binaries \n\n  - PrinceXML: ``prince``, \n  - PDFreactor: ``pdfreactor.py``,  \n  - Speedata Publisher: ``sp``\n  - Calibre: ``ebook-convert``\n  - WKHTMLTOPDF: ``wkhtmltopdf``    \n  - Vivliostyle: ``vivliostyle-formatter``    \n  - VersaType : ``versatype-converter``    \n  - Weasyprint: ``weasyprint``    \n  - Antennahouse: ``run.sh``    \n  - Typeset.sh: ``typeset.sh.phar``    \n  - PageJS: ``pagedjs-cli``    \n\n  must be in the $PATH. Please refer to the installation documentation\n  of the individual products.\n\nInstallation\n------------\n\n- create a Python 3  virtual environment using::\n\n    python3 -m venv pp.server\n\n- install the Produce & Publish server::\n\n    bin/pip install pp.server\n\n- run the Produce & Publish server::\n\n    bin/uvicorn pp.server.server:app\n\n- or under control of `gunicorn`::\n\n    bin/gunicorn pp.server.server:app -w 2 -k uvicorn.workers.UvicornWorker\n\n\n- For running the Produce & Publisher server under control of the process manager\n  `circus`, generate the `circusd.ini` file using::\n\n    bin/pp-server-templates\n\n- and start it in background::\n\n    bin/circusd circusd.ini  --daemon\n\nConverter requirements\n----------------------\n\nFor the PDF conversion the related converter binaries or scripts\nmust be included in the ``$PATH`` of your server.\n\n- ``prince`` for PrinceXML\n\n- ``pdfreactor`` for PDFreactor 8 or higher\n\n- ``wkhtmltopdf`` for WKHTMLToPDF\n\n- ``ebook-convert`` for Calibre\n\n- ``sp`` for the Speedata Publisher\n\n- ``vivliostyle`` for the Vivliostyle formatter\n\n- ``versatype`` for the Versatype converter\n\n- ``weasyprint`` for Weasyprint\n\n- ``antennahouse`` for the Antennahouse\n\n- ``pagedjs`` for the PagedJS\n\n- ``typesetsh`` for the Typeset.sh\n\n\n\nAPI documentation\n-----------------\n\nAll API methods are available through a REST api\nfollowing API URL endpoint::\n\n    http://host:port/<command>\n\nWith the default server configuration this translates to::\n\n    http://localhost:8000/convert\n\nREST API Introspection\n----------------------\n\n`pp.server` is implemented based on the FastAPI framework for Python.\nYou can access the REST API  documentation directly through\n    \n    http://localhost:8000/docs\n\nEnvironment variables\n+++++++++++++++++++++\n\n`pp.server` uses the `var` folder of the installation directory by default as\ntemporary folder for conversion data. Set the environment variable `PP_SPOOL_DIRECTORY` \nif you need different spool directory instead. \n\nIf you run PDFreactor 10 or higher under Docker then you must set the environment\nvariable `PP_PDFREACTOR_DOCKER=1` in order to generated a proper `file:///docs/...`\nURI for `pdfreactor.py`.\n\n\nPDF conversion API\n++++++++++++++++++\n\nRemember that all converters use HTML or XML as input for the conversion. All\ninput data (HTML/XML, images, stylesheets, fonts etc.) must be stored in ZIP\narchive. The filename of the content **must** be named ``index.html``.\n\nYou have to ``POST`` the data to the \n\n    http://host:port/convert\n\nwith the following parameters:\n\n\n- ``data`` - the ZIP archive (as base64 encoded string)\n\n- ``converter`` - a string that determines the the PDF\n  converter to be used (either ``princexml``, ``pdfreactor``, ``phantomjs``, ``vivliostyle``, ``versatype``, \n  or ``calibre`` for generating EPUB content)\n\n- ``cmd_options`` - an optional string of command line parameters added \n  as given to the calls of the externals converters\n\n\nReturns:\n\nThe API returns its result as JSON structure with the following key-value\npairs:\n\n- ``status`` - either ``OK`` or ``ERROR``\n\n- ``data``- the generated PDF file encoded as base64 encoded byte string\n\n- ``output`` - the conversion transcript (output of the converter run)\n\n  \nIntrospection API methods\n+++++++++++++++++++++++++\n\nProduce & Publish server version:\n\n    http://host:port/version\n\nreturns:\n\n    {\"version\": \"3.0.0\", \"module\": \"pp.server\"}\n   \nInstalled/available converters:\n\n    http://host:port/converters\n\nreturns:\n\n    {\"pdfreactor\": true, \"phantomjs\": false, \"calibre\": true, \"prince\": true}\n\n\nVersions of installed converter:\n\n    http://host:port/converter-versions\n\nreturns:\n\n    {'prince': 'Version x.y', 'pdfreactor: 'Version a.b.c', ...}\n\n\nOther API methods\n+++++++++++++++++\n\nCleanup of the queue directory (removes conversion data older than one day)\n\n    http://host:port/cleanup\n\nreturns:\n\n    {\"directories_removed\": 22}\n\n\nSource code\n-----------\n\nhttps://bitbucket.org/ajung/pp.server\n\nBug tracker\n-----------\n\nhttps://bitbucket.org/ajung/pp.server/issues\n\nSupport\n-------\n\nSupport for Produce & Publish Server is currently only available on a project\nbasis.\n\nLicense\n-------\n``pp.server`` is published under the GNU Public License V2 (GPL 2).\n\nContact\n-------\n\n| ZOPYX \n| Hundskapfklinge 33\n| D-72074 Tuebingen, Germany\n| info@zopyx.com\n| www.zopyx.com\n| www.produce-and-publish.info\n\n\n3.3.0 (2023/02/07)\n------------------\n- modernized codebase\n- Python 3.9 or higher is now required\n- no features added\n\n3.2.0 (2020/05/12)\n------------------\n- added selftest endpoint \n\n3.1.0 (2020/03/20)\n------------------\n- various minor fixes\n- available_converters() now executed in parallel -> speedup\n\n3.0.0 (2020/02/14)\n------------------\n\n- complete rewrite using FastAPI as REST backend\n- better logging\n- changed API names\n- dropped support for PhantomJS and Unoconv\n- better error handling\n- simplified configuration for further converter support\n\n2.1.0 (2020/08/12)\n------------------\n- support for `pagedjs-cli` and `typeset.sh` added\n\n2.0.4 (2019/02/11)\n------------------\n- minor installation issues with `var` folder gunicorn.log\n- added optional `PP_PDFREACTOR_DOCKER` environment support\n\n2.0.3 (2019/02/11)\n------------------\n- minor installation issues with `var` folder gunicorn.log\n- added optional `PP_SPOOL_DIRECTORY` environment support\n\n2.0.0 (2018/07/14)\n------------------\n- major cleanup\n- removed async functionality\n- switched from waitress to gunicorn\n- switched from subprocess to easyprocess\n- webpage displays installed converters and their versions\n- support for VersaType converter added\n\n1.0.8 (2017/10/23)\n------------------\n- internal release\n\n1.0.7 (2017/08/17)\n------------------\n- fixed a very old bug in cleanup code\n\n1.0.6 (2017/08/08)\n------------------\n- display available converters during startup\n\n1.0.5 (2017/04/06)\n------------------\n- support for WeasyPrint\n\n1.0.3 (2017/02/13)\n------------------\n\n- calling princexml with explicit option -o (Prince 11 compatibility)\n\n1.0.0 (2017/01/08)\n------------------\n- first official release\n- requires Python 3.5 or higher\n\n0.7.13 (2016/08/30)\n-------------------\n\n- added ``circus`` dependency in order to provide daemonizing\n  support out of the box\n\n0.7.12 (2016/08/29)\n-------------------\n- fix for PDFreactor 8\n\n0.7.11 (2016/06/01)\n-------------------\n- updated to Pyramid 1.7\n\n0.7.7 (2016/01/24)\n------------------\n- updated support for latest Vivliostyle formatter\n- added support for Antennahouse Formatter\n\n0.7.6 (2015/11/30)\n------------------\n- support for PDFreactor 8\n\n0.7.5 (2015/11/18)\n------------------\n- fixed race condition while creating directories\n\n0.7.4 (2015/11/14)\n------------------\n- support for nested uploaded ZIP files\n\n0.7.3 (2015/11/14)\n------------------\n- support for Vivliostyle Formatter\n\n0.7.2 (2015/04/20)\n------------------\n- merged https://bitbucket.org/ajung/pp.server/pull-request/1/\n  (improper check for wkhtmltopdf)\n- merged https://bitbucket.org/ajung/pp.server/pull-request/2/\n  (fix for async operations)\n\n0.7.1 (2015/03/13)\n------------------\n- unicode fix in runcmd()\n\n0.7.0 (2015/02/15)\n------------------\n\n- 0.6.x was completely badly packaged\n- changed repo structure\n\n0.6.1 (2015/02/02)\n------------------\n- add /api/converter-versions to webservice API\n\n0.6.0 (2015/01/26)\n------------------\n- dropped Python 2.X support, Python 3.3 or higher \n  is now a mandatory requirement\n\n0.5.5 (2015/01/23)\n------------------\n- UTF8 handling fix\n\n0.5.3 (2014/11/23)\n------------------\n- support for WKHTMLTOPDF\n\n0.5.2 (2014/11/19)\n------------------\n- support for Speedata Publisher \n\n0.5.1 (2014/10/12)\n------------------\n- improved error handling\n\n0.5.0 (2014/10/12)\n------------------\n- official Python 3.3/3.4 support \n\n0.4.7 (25.09.2014)\n------------------\n- fixed documentation bug\n\n0.4.6 (22.08.2014)\n------------------\n- removed PDFreactor --addlog option\n\n0.4.5 (22.08.2014)\n------------------\n- added supplementary commandline options to pdfreactor commandline call\n\n0.4.4 (24.01.2014)\n------------------\n- minor typos fixed\n\n0.4.3 (20.01.2014)\n------------------\n- implemented automatic queue cleanup after one day\n\n0.4.2 (18.01.2014)\n------------------\n- URL fix in index.pt related to virtual hosting\n\n0.4.1 (13.01.2014)\n------------------\n- show Python version and converters on index.pt\n- authorization support added\n\n0.4.0 (17.10.2013)\n------------------\n- Python 3.3 support\n- Pyramid 1.5 support\n\n0.3.5 (05.10.2013)\n------------------\n- added 'cmd_options' to pdf and unoconv API \n  methods for specifying arbitary command line parameters\n  for the external converters\n\n0.3.4 (05.10.2013)\n------------------\n- added 'cleanup' API \n\n0.3.3 (05.10.2013)\n------------------\n- added 'version' and 'converter' API methods\n\n0.3.2 (04.10.2013)\n------------------\n- added support EPUB conversion using ``Calibre``\n\n0.3.1 (03.10.2013)\n------------------\n- updated documentation \n\n0.3.0 (14.07.2013)\n------------------\n- unoconv conversion now returns a ZIP archive\n  (e.g. a HTML file + extracted images)\n\n0.2.7 (06.07.2013)\n------------------\n- added support for Phantom.js converter\n\n0.2.5 (05.07.2013)\n------------------\n- better detecting of prince and pdfreactor binaries\n\n0.2.2 (05.07.2013)\n------------------\n- updated the documentation\n- minor cleanup \n\n0.2.1 (04.07.2013)\n------------------\n- re-added poll API\n\n0.2.0 (03.07.2013)\n------------------\n- converted XML-RPC api to REST api\n\n0.1.9 (01.07.2013)\n------------------\n- monkeypatch pyramid_xmlrpc.parse_xmlrpc_request in order\n  to by-pass its stupid DOS request body check\n\n0.1.7 (29.06.2013)\n------------------\n- more tests\n- fixes\n- updated documentation\n\n0.1.5 (27.06.2013)\n------------------\n- test for synchronous operations\n- fixes\n\n0.1.0 (24.06.2013)\n------------------\n- initial release",
    "bugtrack_url": null,
    "license": "",
    "summary": "pp.server - Produce & Publish Server",
    "version": "3.3.0.2",
    "split_keywords": [
        "web",
        "pyramid",
        "pdf",
        "unoconv",
        "conversion",
        "princexml",
        "pdfreactor"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fe8cdced956ca20a6f7455545bebfaa8c740f2290abf493145ae6190bece5935",
                "md5": "1b0b69ecafccb34c06d513202b2216a9",
                "sha256": "0c8fa0cf3c02740c0aecd158ca13b07fb8dd16254b6dec33cfbc81afdd598be8"
            },
            "downloads": -1,
            "filename": "pp.server-3.3.0.2.zip",
            "has_sig": false,
            "md5_digest": "1b0b69ecafccb34c06d513202b2216a9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1101008,
            "upload_time": "2023-02-07T09:36:29",
            "upload_time_iso_8601": "2023-02-07T09:36:29.036026Z",
            "url": "https://files.pythonhosted.org/packages/fe/8c/dced956ca20a6f7455545bebfaa8c740f2290abf493145ae6190bece5935/pp.server-3.3.0.2.zip",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-02-07 09:36:29",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "pp.server"
}
        
Elapsed time: 0.03714s