{ "info": { "author": "Shoobx, Inc.", "author_email": "dev@shoobx.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Zope Public License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython" ], "description": "================================================\n``shoobx.rml2odt`` -- Conversion of RML to ODT\n================================================\n\n.. image:: https://travis-ci.org/Shoobx/shoobx.rml2odt.png?branch=master\n :target: https://travis-ci.org/Shoobx/shoobx.rml2odt\n\n.. image:: https://coveralls.io/repos/github/Shoobx/shoobx.rml2odt/badge.svg?branch=master\n :target: https://coveralls.io/github/Shoobx/shoobx.rml2odt?branch=master\n\n.. image:: https://img.shields.io/pypi/v/shoobx.rml2odt.svg\n :target: https://pypi.python.org/pypi/shoobx.rml2odt\n\n.. image:: https://img.shields.io/pypi/pyversions/shoobx.rml2odt.svg\n :target: https://pypi.python.org/pypi/shoobx.rml2odt/\n\n.. image:: https://api.codeclimate.com/v1/badges/9c462255ca85b7f77de8/maintainability\n :target: https://codeclimate.com/github/Shoobx/shoobx.rml2odt/maintainability\n :alt: Maintainability\n\nThis library implements a converter from Reportlabs RML format to\nLibreoffices/Open Document Formats ODT format utilizing the ``z3c.rml``\nparser and ``odfpy`` library.\n\nIt's developed by Shoobx (https://shoobx.com) but is open source, and\nwe are happy to accept outside contributions. See DEVELOPMENT.rst for more\ninformation.\n\n\nInstalling\n==========\n\nInstall with::\n\n $ pip install shoobx.rml2odt\n\n\nUsage\n=====\n\nThere is three ways of using shoobx.rml2odt.\n\n\nFrom the command line\n---------------------\n\nInstalling shoobx.rml2odt will install a script that can be used from the\ncommand line::\n\n rml2odt \n\n\nConverting files from Python\n----------------------------\n\nYou can import shoobx.rml2odt as a library and convert files from Python::\n\n >>> from shoobx.rml2odt import rml2odt\n >>> rml2odt.convertFile(infilepath, outfilepath)\n\nwhich will convert the file at infilepath and create the ODT file at\noutfilepath.\n\n\nConverting an RML string in Python\n----------------------------------\n\nIf your RML data isn't in a file, but is held in a string, you can import\nshoobx.rml2odt as a library and convert text data from Python::\n\n >>> from shoobx.rml2odt import rml2odt\n >>> odt_data = rml2odt.convertString(inputstring).read()\n >>> with open(outputfile, 'wb') as output:\n ... output.write(odt_data)\n\n\n\nCHANGES\n=======\n\n0.7.0 (2019-08-19)\n------------------\n\n- Add minor support for `keepTogether` tags, always displaying contents and\n keeping direct child `blockTable` elements on the same page\n\n\n0.6.1 (2019-08-16)\n------------------\n\n- Add support for `spanStyle` tags.\n\n- Add support for `underline` attribute is `paraStyle` and `spanStyle` tags.\n\n\n0.6.0 (2019-04-12)\n------------------\n\n- Complete overhaul of blockTable styling.\n This enables the use blockTableStyle and `td` styling tags.\n Most text, background and border styling is supported.\n\n\n0.5.0 (2019-04-05)\n------------------\n\n- Fix: `img` must be in a Paragraph otherwise LibreOffice will not show the\n Image\n\n- Code cleanup and refactor\n\n- Lots of fixes, cleanup, tests added\n\n- Fix: blockSpan handling was completely broken\n\n- Fix: Removed whitespace from `para` left text,\n removed tail text of `para` tag\n\n- Fix: `NextPage` did not work, it added no page break\n\n- Fix: Do not add tabs to the ODT output, reportlab does not either.\n There's a special `tab` tag that is used by our custom numbering.\n\n- Fix: Do not fail on missing `value` of the `color` tag\n\n- Fix: Support `pre` and `xpre` tags, make sure whitespace is not squashed\n\n- Fix: Copy the `main` or `Main` pageTemplate to `Standard` to make ODT\n at least somehow happy. Reportlab uses `main` as conventional default.\n This is still just a workaround. Supporting custom templates set in a story\n will take more efforts.\n\n- Copied all z3c.rml RML test inputs, blacklisted a lot, listed shortcomings.\n\n0.4.4 (2019-03-26)\n------------------\n\n- Fix: Next paragraph text strip for custom bullets broken by 0.4.3.\n\n\n0.4.3 (2019-03-26)\n------------------\n\n- Fix: bullet numbering ignored `value` as start\n\n- Fix: support all custom `li` bullets (l, L, o, O, r, R)\n\n\n0.4.2 (2019-03-20)\n------------------\n\n- Fix: the `br` tag used a class variable to remember whether it added the\n style `BreakJustify`.\n- Fix `span` tag handling. It literally discarded most text.\n\n\n0.4.1 (2019-03-19)\n------------------\n\n- Fix: Text following a comment tag was discarded.\n\n- Fix: 3+ whitespace was replaced with nothing. Caused text to miss spaces.\n\n\n0.4.0 (2018-01-23)\n------------------\n\n- More indentation fixes.\n\n- Added support for O format lists (First, Second, Third)\n\n- Add support to have bullet lists in number lists and vice versa\n\n- Convert tables in lists to lists in lists\n\n- Support for blockSpan in table styles.\n\n- Handle tail text of comments\n\n- Supporting RML blockSpan styles for tables\n\n- Take the maximum, not the first when calculating the number of columns\n\n\n0.3.0 (2018-01-12)\n------------------\n\n- Many many formatting fixes including an almost complete rewrite of\n list handling and list styles.\n\n\n0.2.0 (2017-12-08)\n------------------\n\n- Cleaned up the public API.\n\n- Added basic docs.\n\n\n0.1.0 (2017-11-21)\n------------------\n\n- Basic Support for:\n\n * Flowables: para, blockTable, hr, ul, ol\n\n * Stylesheets: paraStyle\n\n * Page Layout\n\n- Initial Release", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/shoobx.rml2odt", "keywords": "rml odf odt libreoffice pagetemplate", "license": "ZPL 2.1", "maintainer": "", "maintainer_email": "", "name": "shoobx.rml2odt", "package_url": "https://pypi.org/project/shoobx.rml2odt/", "platform": "", "project_url": "https://pypi.org/project/shoobx.rml2odt/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/shoobx.rml2odt" }, "release_url": "https://pypi.org/project/shoobx.rml2odt/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "A converter from RML to ODT.", "version": "0.7.0" }, "last_serial": 5699850, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c70666ffff38822d189f879573d2d9e6", "sha256": "97ea38decf395a41eb3b59058c19e1c87476699cce27da39598998eabc3bb701" }, "downloads": -1, "filename": "shoobx.rml2odt-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c70666ffff38822d189f879573d2d9e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98916, "upload_time": "2017-11-21T12:56:49", "url": "https://files.pythonhosted.org/packages/3f/bd/998582095f082a6a8e8b31ce3d9cee082d3689bdb8c40950c7758075ffab/shoobx.rml2odt-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a144d4a311f58571864d49cc0e71d2f7", "sha256": "458a5eafb426f6f44c146a997a77a4e3ff7723385637db276866194d853e8774" }, "downloads": -1, "filename": "shoobx.rml2odt-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a144d4a311f58571864d49cc0e71d2f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99020, "upload_time": "2017-12-08T12:26:55", "url": "https://files.pythonhosted.org/packages/1b/5d/d9f38fe8ed4a52ac7fa1827d1ea8a6b3b8ececa471428fcb427dcd2cc541/shoobx.rml2odt-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3070e91694b014f99a9c6efcc80a306a", "sha256": "0b82cea7b1e39d7474ea2ca42c473c59005cc7e47474d5db665e27c1567045ee" }, "downloads": -1, "filename": "shoobx.rml2odt-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3070e91694b014f99a9c6efcc80a306a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104047, "upload_time": "2018-01-12T10:40:34", "url": "https://files.pythonhosted.org/packages/b8/87/476003cdf95bf4fae1b0adae68010986c0f93cbc9f8a01da81b4109bb6ad/shoobx.rml2odt-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "27734e91227048a838c07e876cc9e91f", "sha256": "122f20808caa2fe9e11a4d7743f7e2aad176870d352a5f6eb1a33c9c21bab3d9" }, "downloads": -1, "filename": "shoobx.rml2odt-0.4.0.tar.gz", "has_sig": false, "md5_digest": "27734e91227048a838c07e876cc9e91f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107225, "upload_time": "2018-01-23T10:08:53", "url": "https://files.pythonhosted.org/packages/a2/22/bc026769dbd29b118e14d0b675a7f8ede3f918cdfcdde35d2d78e31f3942/shoobx.rml2odt-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "93273faefad7bd9b19831b4a669b9691", "sha256": "fc9d081759f0816e12d9667033cdda7c87d4545fdb39a2f23aaa6a4a0d3c9371" }, "downloads": -1, "filename": "shoobx.rml2odt-0.4.1.tar.gz", "has_sig": false, "md5_digest": "93273faefad7bd9b19831b4a669b9691", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108173, "upload_time": "2019-03-19T14:49:19", "url": "https://files.pythonhosted.org/packages/52/ce/ad191c8ecab67fcaf00626df3f08f7e441e219af0bf0afc4231b8c596fed/shoobx.rml2odt-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "460c9d76c859aca49e843ff04c7248b9", "sha256": "a18ba8d472ceb0bc322e6b98914c5394fc52374a6abe1d9b10e9e3970397ac7e" }, "downloads": -1, "filename": "shoobx.rml2odt-0.4.2.tar.gz", "has_sig": false, "md5_digest": "460c9d76c859aca49e843ff04c7248b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110787, "upload_time": "2019-03-20T15:36:06", "url": "https://files.pythonhosted.org/packages/ed/56/b9f81b1eff07f066e91466dd28f8c5563984245fc30f5b4c0d6f5eafcb7e/shoobx.rml2odt-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "eb4f1fd4151ced8dabf2306ffbdc3314", "sha256": "14f2bf1356b28759b957659aa7de9f87d48ff1d62d4324b7a7c3aa53b7c5ad58" }, "downloads": -1, "filename": "shoobx.rml2odt-0.4.3.tar.gz", "has_sig": false, "md5_digest": "eb4f1fd4151ced8dabf2306ffbdc3314", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 112882, "upload_time": "2019-03-26T11:03:18", "url": "https://files.pythonhosted.org/packages/43/82/6ecad54c9b16c3430f0f0098093908f6b799e624efcfae98c8617976559b/shoobx.rml2odt-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "67132481fa516fd0b7dbcc8e02e505a9", "sha256": "9964343ffc4fd8ad76999c7b87f0b15248f22c4b7273b3c18cfe60a99d9920d3" }, "downloads": -1, "filename": "shoobx.rml2odt-0.4.4.tar.gz", "has_sig": false, "md5_digest": "67132481fa516fd0b7dbcc8e02e505a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113202, "upload_time": "2019-03-26T13:14:29", "url": "https://files.pythonhosted.org/packages/ce/ea/a09a2b9ee52f6c2d3ac0f6fc4e2e9cd586042a370eca3b9dc1336973afca/shoobx.rml2odt-0.4.4.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "65bc4db0ac16323bbe9976deb636bde4", "sha256": "691bdd71697908d9c0f528d3c6e0727e2d07ff150be861ea0f3d404127127408" }, "downloads": -1, "filename": "shoobx.rml2odt-0.5.0.tar.gz", "has_sig": false, "md5_digest": "65bc4db0ac16323bbe9976deb636bde4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 806950, "upload_time": "2019-04-05T13:11:06", "url": "https://files.pythonhosted.org/packages/6e/d6/facdfb1e249a45ae45f13d2c6a24dab67a45b9c25b1d0e6caf0ce60ea845/shoobx.rml2odt-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "122d61a96396f451301581a9846d92b6", "sha256": "5daf5a1305cfb108b93ab27677d53e756135ed3a433e9ae74561fc5da4c6e86a" }, "downloads": -1, "filename": "shoobx.rml2odt-0.6.0.tar.gz", "has_sig": false, "md5_digest": "122d61a96396f451301581a9846d92b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 839508, "upload_time": "2019-04-12T06:55:56", "url": "https://files.pythonhosted.org/packages/bd/25/25727f1e4b2f8d032a8f1ec6ff8f7ed72e216b3e02396d94540005d6b60d/shoobx.rml2odt-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "3be4653535f69e23f039913a2d165ad4", "sha256": "41d524b2505946ba831f2da413dccadbbfda3e1d4bf36518210321725e400ecb" }, "downloads": -1, "filename": "shoobx.rml2odt-0.6.1.tar.gz", "has_sig": false, "md5_digest": "3be4653535f69e23f039913a2d165ad4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 840512, "upload_time": "2019-08-16T20:42:33", "url": "https://files.pythonhosted.org/packages/14/61/fb0e424a665852a0722ad73c49c54fed1299df2dccae3c4e1b01a87e87db/shoobx.rml2odt-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "b145dc36adb9e07ea709fa7dc6f2d14b", "sha256": "556198112a387fc6820842d0faa41d48208dff5239dfbe4753e12cc064e70c36" }, "downloads": -1, "filename": "shoobx.rml2odt-0.7.0.tar.gz", "has_sig": false, "md5_digest": "b145dc36adb9e07ea709fa7dc6f2d14b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 845480, "upload_time": "2019-08-19T18:55:43", "url": "https://files.pythonhosted.org/packages/52/d2/e6f99dd33e49d68c1e849f55ad79393042db48fa1e5e22db45d9f8ccc81d/shoobx.rml2odt-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b145dc36adb9e07ea709fa7dc6f2d14b", "sha256": "556198112a387fc6820842d0faa41d48208dff5239dfbe4753e12cc064e70c36" }, "downloads": -1, "filename": "shoobx.rml2odt-0.7.0.tar.gz", "has_sig": false, "md5_digest": "b145dc36adb9e07ea709fa7dc6f2d14b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 845480, "upload_time": "2019-08-19T18:55:43", "url": "https://files.pythonhosted.org/packages/52/d2/e6f99dd33e49d68c1e849f55ad79393042db48fa1e5e22db45d9f8ccc81d/shoobx.rml2odt-0.7.0.tar.gz" } ] }