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"
}