{ "info": { "author": "Stefan Eletzhofer, Ramon Bartl", "author_email": "stefan.eletzhofer@inquant.de", "bugtrack_url": null, "classifiers": [ "Framework :: Zope2", "Framework :: Zope3", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "collective.plone.gsxml\n======================\n\nAn XML import/export add-on for Plone_.\n\n.. _Plone: http://www.plone.org\n\nInstallation\n============\n\n**collective.plone.gsxml** is a egg, so installation is easy\nif you use buildout. You just need to add **collective.plone.gsxml**\nto your plone part's *eggs* AND *zcml* option.\n\nA example buildout is available here:\n\nhttps://svn.plone.org/svn/collective/gsxml/buildout/trunk\n\nThis package needs lxml_, see the buildout example.\n\n.. _lxml: http://www.codespeak.net/lxml\n\n\nUsage\n=====\n\nAfter installation, you'll get two new items in Plone's **action**\nmenu, one for *import*, and one for *export*. For additional stuff,\nplease see the detailled documentation below.\n\nFeatures\n========\n\n- Exports virtually all Archetypes-based documents\n- exports and keeps references\n- exports binary data as separate file\n- works with ZOPE blobs\n- sends custom events which you can subscribe to prior and after\n import/export\n- uses the ZCA to fetch a serializer for a content type -- the default\n adapter uses the Plone Marshaller\n\nCaveats\n=======\n\nThis package relies pretty much on the **Marshall** product for plone\n(which is shipped with Plone). This product, is, while offering great\nfunctionality, a bit convoluted and does not allow to hook in using\nthe ZCA.\n\nAlso, this package tries to export **references**, and this is\ncurrently done using pickles, which is not safe. References should be\nexported by using adapters defined by those who actually use the\nreferences and know how to export them (it's impossible to do this in\na generic way IMHO).\n\nBugs\n----\n\n- exports references using pickles\n- messes with the internals of the Marshal product due to lack of\n hooks\n- uses pickles, this is not secure\n- manifest XML is not yet parsed\n\nAnnoyances\n----------\n\n- convoluted code. The code of this package needs cleanup. This will\n be done in due course.\n\nCaveats\n-------\n\n- This package out-of-the-box export AT based content only, but you\n can provide your own serializer as adapter\n- This package does NOT export dynamically marked interfaces\n- This package does NOT export annotations on content\n\nProducts.Poi\n------------\n\nYou need the branch version of Products.Marshall to handle the DataGridFields\n\nhttps://svn.plone.org/svn/archetypes/Products.Marshall/branches/use-zca-in-atns\n\nProducts.eXtremeManagement\n--------------------------\n\nchange line 44 of Products.eXtremeManagement.content.PoiTask to::\n\n def getAssignees(self):\n managers = set()\n try:\n for issue in self.getRefs('task_issues'):\n managers.add(issue.getResponsibleManager())\n except:\n pass\n return sorted(list(managers))\n\nbecause the references to the POI issues are fixed on the end of import and are\n*not* available when the object is recreated\n\n::\n vim: set ft=rst ts=4 sw=4 expandtab tw=78 :\n\nChange history\n==============\n\nHEAD\n----\n\n0.4.7 (2008-12-19)\n------------------\n\n- Fixed reference handling after import [ramonski]\n\n0.4.6 (2008-12-16)\n------------------\n\n- Fixed tests and moved them into the source package. [seletz]\n\n- Added fix for ``PloneArticle``.\n Thanks to Freshmilk Entertainment GmbH for sponsoring this.\n [seletz]\n\n- Added a events notified for ``ObjectWillBeExportedEvent``, ``ObjectExportedEvent``,\n ``ObjectWillBeImportedEvent`` and ``ObjectImportedEvent``.\n [seletz]\n\n- Added ``lxml`` and ``libxml2-python`` to the buildout. Added ZOPE-enabled\n ipython to the buildout. [seletz]\n\n- Changes package layout to have the sources under ``src`` -- this\n allows to have the buildout include development packages during\n development [seletz]\n\n- Fix bug wrt. handling of blob fields. These are now treated like the file\n fields. [seletz]\n\n- Added ``plone.app.blob`` to buildout to test for #10 [seletz]\n\n- Switched buildout to plone 3.2a1 [seletz]\n\n0.4.5 (2008-06-23)\n------------------\n\n- More importview work. [seletz]\n\n- Added missing file. [seletz]\n\n- Fix typo [seletz]\n\nDetailed Documentation\n======================\n\nExporting content\n-----------------\n\nTo test exporting some content, we'll create content::\n\n >>> _ = self.folder.invokeFactory(\"Folder\", \"content\")\n >>> folder = self.folder[\"content\"]\n >>> _ = folder.invokeFactory(\"Document\", \"doc1\", title=\"A Document\")\n >>> _ = folder.invokeFactory(\"Document\", \"doc2\", title=\"A second Document\")\n >>> folder.keys()\n ['doc1', 'doc2']\n\nNow we create a ``export context`` -- this will act like a container\nholding the exported data. We'll use the ``TarballExportContext``\nhere::\n\n >>> from collective.plone.gsxml.context import TarballExportContext\n >>> export_context = TarballExportContext()\n\nNow we create a exporter object, which will use the export context\ncreated above to store the export data, and use the Marshaller to\nactually marshall content. We initialize the exporter with the\n``root`` folder which we want to export::\n\n >>> from collective.plone.gsxml.content import XMLContentFSExporter\n >>> exporter = XMLContentFSExporter(folder)\n\nNow we're able to start the export. We supply the **export context**\nand a folder *inside the export context* (thus, one export context can\nbe used multiple times by supplying different root folders). We also\nspecify that this is a root-level export::\n\n >>> exporter.export(export_context, \"structure\", True)\n\nOk, that's it. The archive stream may now be fetched from the export\ncontext::\n\n >>> archive = export_context.getArchiveStream()\n >>> archive.seek(0)\n\nImporting content\n-----------------\n\nTo test importing, we'll delete the objects exported above::\n\n >>> folder.manage_delObjects(['doc1', 'doc2'])\n >>> folder.keys()\n []\n\nNow we create a ``import context``, which will hold our exported\nstream, and a importer, which will use that import context to read\nmarshalled data from::\n\n >>> from collective.plone.gsxml.context import TarballImportContext\n >>> import_context = TarballImportContext(archive)\n\nThe importer -- we initialize the importer with the *target* folder::\n\n >>> from collective.plone.gsxml.content import XMLContentFSImporter\n >>> importer = XMLContentFSImporter(folder)\n\nNow we start the import. We supply the **import context** and the root\nfolder *within* the import context. Also, we indicate that this is\nindeed a root-level import::\n\n >>> importer.import_(import_context, \"structure\", True)\n\nWe're now able to get the documents again::\n\n >>> folder.keys()\n ['doc1', 'doc2']\n >>> folder.doc1.Title()\n 'A Document'\n\n\nContributors\n============\n\n(in no particular order. These are the nicks on #plone)\n\n- fschulze\n- magnon\n- ramonski\n- seletz\n- hannosch\n- witsch\n\nDownload\n========", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://svn.plone.org/svn/collective/gsxml/releases/0.4.7", "keywords": "Plone import export XML", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "collective.plone.gsxml", "package_url": "https://pypi.org/project/collective.plone.gsxml/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.plone.gsxml/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://svn.plone.org/svn/collective/gsxml/releases/0.4.7" }, "release_url": "https://pypi.org/project/collective.plone.gsxml/0.4.7/", "requires_dist": null, "requires_python": null, "summary": "A package for importing and exporting content from Plone", "version": "0.4.7" }, "last_serial": 788015, "releases": { "0.4.3": [ { "comment_text": "", "digests": { "md5": "40613dd7fab09e063f6429ca3fb22790", "sha256": "3d640c0b7c80e4e5f2d2114326168f1eef10bd31febf1cb6a0b94eaa86f31804" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.3-py2.4.egg", "has_sig": false, "md5_digest": "40613dd7fab09e063f6429ca3fb22790", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 64711, "upload_time": "2008-06-19T13:04:39", "url": "https://files.pythonhosted.org/packages/11/fb/d2218be073a01de96de4914074775de3bb42bdd76d95bb3646e7f4135d72/collective.plone.gsxml-0.4.3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "f1eaf5c3a743bf4149ec448a09ca4945", "sha256": "e6c8c7f58bf6a62fe6835165564546cb926456fa7c938fcdfb9f2653ab70a77c" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.3.tar.gz", "has_sig": false, "md5_digest": "f1eaf5c3a743bf4149ec448a09ca4945", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34470, "upload_time": "2008-06-19T13:04:39", "url": "https://files.pythonhosted.org/packages/5b/52/fe7990215118b6aa409abe0396842ab84bc36442be4b1e34fd502b953432/collective.plone.gsxml-0.4.3.tar.gz" } ], "0.4.3.1": [ { "comment_text": "", "digests": { "md5": "3e812a7a50acf85bd4200f20a68ed9aa", "sha256": "6444f4ab55f2ab2bf33d8d301115e5b363a86fcacfc014c8838994ee34d7fa25" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.3.1-py2.4.egg", "has_sig": false, "md5_digest": "3e812a7a50acf85bd4200f20a68ed9aa", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 64742, "upload_time": "2008-06-19T13:08:52", "url": "https://files.pythonhosted.org/packages/b6/b3/d133d1cecb791688bf677afd31477e1266f85cf6b7e26ade8ae93c7ea3ca/collective.plone.gsxml-0.4.3.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "ddcc05e0b6ab0505dbbf2056a751da3b", "sha256": "1f3e94ffdcc2414ee02ddc2d8178ea41478072ef2fd3ed44f6b08c0cd975286a" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.3.1.tar.gz", "has_sig": false, "md5_digest": "ddcc05e0b6ab0505dbbf2056a751da3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34535, "upload_time": "2008-06-19T13:08:52", "url": "https://files.pythonhosted.org/packages/39/6c/722bab3ce72f1f2bf9e359d31c9e506bf975e9a773dfaca6ab75707b641a/collective.plone.gsxml-0.4.3.1.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "bd72bc4d4343d6628ed1670d9f72e73b", "sha256": "2d0359dfffe86bea508ac56e3bf36b7feff044c4378ec7f606080c7dde3ccb57" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.4-py2.4.egg", "has_sig": false, "md5_digest": "bd72bc4d4343d6628ed1670d9f72e73b", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 65215, "upload_time": "2008-06-20T13:28:15", "url": "https://files.pythonhosted.org/packages/3f/c7/367e2a9078cdd1bd202c9050ec7d9a00250a4f8fcd50679fe123bc5833c8/collective.plone.gsxml-0.4.4-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "514a9cd9ebf584b11d1401dd94bf7c9c", "sha256": "b8ed3ba910366a72d6067b3decd6f2f3a32a0377d77b93436159d25e8eec0b0b" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.4.tar.gz", "has_sig": false, "md5_digest": "514a9cd9ebf584b11d1401dd94bf7c9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34835, "upload_time": "2008-06-20T13:28:14", "url": "https://files.pythonhosted.org/packages/71/61/be5a3494e74fd6ab9c974f98c7cbb86d42a87754b6e70e91165273077e4c/collective.plone.gsxml-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "fe4d95c337351b892d8c11417e52643d", "sha256": "e69929d8d211659c67a7b6b9f0dab748b77ba7129ca16f7895a20ea705064442" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.5-py2.4.egg", "has_sig": false, "md5_digest": "fe4d95c337351b892d8c11417e52643d", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 68179, "upload_time": "2008-06-24T09:19:00", "url": "https://files.pythonhosted.org/packages/cd/6f/a56db3a75e7d3215aab8c9cdadb0696e9f2c6a20384706085df7daed9bf7/collective.plone.gsxml-0.4.5-py2.4.egg" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "39fcc1f11e9a7459008ec038fca1d547", "sha256": "17998974b310464636e3afb078be438ac93c8b598ce9b322bf12fb608641e2c7" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.6.tar.gz", "has_sig": false, "md5_digest": "39fcc1f11e9a7459008ec038fca1d547", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38904, "upload_time": "2008-12-16T10:44:48", "url": "https://files.pythonhosted.org/packages/ba/64/d3a622bf44ceba58af462eff88ee5fdc76c860179f8f56a1e3873d6d208d/collective.plone.gsxml-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "3ee79eff4b14b6e00a5cf718cf61cbb0", "sha256": "f13335bde13a19789fee8c4cb18608577e01b9501503e0917d9e16b015795420" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.7.tar.gz", "has_sig": false, "md5_digest": "3ee79eff4b14b6e00a5cf718cf61cbb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40674, "upload_time": "2009-01-12T09:47:25", "url": "https://files.pythonhosted.org/packages/97/90/2a37a8270332a0f7b3ce0336dbf2a84ce95aaa2bb57c0f3fd8a39d907bd4/collective.plone.gsxml-0.4.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3ee79eff4b14b6e00a5cf718cf61cbb0", "sha256": "f13335bde13a19789fee8c4cb18608577e01b9501503e0917d9e16b015795420" }, "downloads": -1, "filename": "collective.plone.gsxml-0.4.7.tar.gz", "has_sig": false, "md5_digest": "3ee79eff4b14b6e00a5cf718cf61cbb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40674, "upload_time": "2009-01-12T09:47:25", "url": "https://files.pythonhosted.org/packages/97/90/2a37a8270332a0f7b3ce0336dbf2a84ce95aaa2bb57c0f3fd8a39d907bd4/collective.plone.gsxml-0.4.7.tar.gz" } ] }