{ "info": { "author": "4teamwork AG", "author_email": "mailto:info@4teamwork.ch", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. contents:: Table of Contents\n\n\nIntroduction\n============\n\nThis package is used to extract files and directories\nfrom a zip file and add them to a Plone application.\n\nThe module provides a view showing the contents of the\nzip file and the associated file sizes. From the view you\ncan extract everything from the file or select a subset of elements\nto extract.\n\nThe extraction itself is designed to be as safe as possible, notably:\n\n* Safe against zip bombs\n\n * Checks announced size of files to extract (from zip file header) and stops extracting if that size is exceeded.\n * We can also set a total maximum data volume allowed to be extracted.\n\n* Safe against extraction outside of destination folder.\n\n* Controlled RAM usage. Uses a buffer to write to a temporary file.\n\n* Handles things like zip file containing several files with the same name.\n\nCompatibility\n-------------\n\nPlone 4.3.x\n\nImplementation\n==============\n\n- The ``ftw.zipextract.zipextracter.ZipExtracter`` class handles the extraction from the zip file.\n- The ``ftw.zipextract.browser.zipextract_view.ZipExtractView`` is used for the rendering of the extraction view. It is registered as ``zipextract`` and will be applied on its context.\n\nHandling and creation of files and folders depends on the context and the content types. To handle this, 4 interfaces are used:\n\n- ``ftw.zipextract.interfaces.IFile`` defines a few methods for file handling and notably an `is_zip` method used to determine whether the extraction can be used on a given file or not.\n- ``ftw.zipextract.interfaces.IFactoryTypeDecider`` decides which factory type information to use for creating folders or files from the zip within a specific container.\n\n - defines a ``get_file_fti`` method\n - defines a ``get_folder_fti`` method\n\n- ``ftw.zipextract.interfaces.IFileCreator`` defines a ``create`` method to create a new file\n- ``ftw.zipextract.interfaces.IFolderCreator`` defines a ``create`` method to create a new folder\n\nAdapting the package to your application\n----------------------------------------\n\nTo adapt this package to other applications you might need to write adapters for the 4 interfaces described above. ``ftw.zipextract`` provides default implementations for Dexterity types and Archetypes for all 4 interfaces.\n\n\nInstallation\n============\n\n- Add the package to your buildout configuration:\n\n::\n\n [instance]\n eggs +=\n ...\n ftw.zipextract\n\nInstall the generic setup profile of ``ftw.zipextract``.\n\n\nDevelopment\n===========\n\n1. Fork this repo\n2. Clone your fork\n3. Shell: ``ln -s development.cfg buildout.cfg``\n4. Shell: ``python bootstrap.py``\n5. Shell: ``bin/buildout``\n\nRun ``bin/test`` to test your changes.\n\nOr start an instance by running ``bin/instance fg``.\n\n\nLinks\n=====\n\n- Github: https://github.com/4teamwork/ftw.zipextract\n- Issues: https://github.com/4teamwork/ftw.zipextract/issues\n- Pypi: http://pypi.python.org/pypi/ftw.zipextract\n\n\nCopyright\n=========\n\nThis package is copyright by `4teamwork `_.\n\n``ftw.zipextract`` is licensed under GNU General Public License, version 2.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/4teamwork/ftw.zipextract", "keywords": "ftw zip extract", "license": "GPL2", "maintainer": "", "maintainer_email": "", "name": "ftw.zipextract", "package_url": "https://pypi.org/project/ftw.zipextract/", "platform": "", "project_url": "https://pypi.org/project/ftw.zipextract/", "project_urls": { "Homepage": "https://github.com/4teamwork/ftw.zipextract" }, "release_url": "https://pypi.org/project/ftw.zipextract/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "Zip file extracter for Plone", "version": "1.1.1" }, "last_serial": 5823468, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "bed06031834fc9601bf9bd4822c5d650", "sha256": "37117b720fceb4b845a8d426242783a1713a40763ba5f1cbb0e2e44eacc2ab92" }, "downloads": -1, "filename": "ftw.zipextract-1.0.0.tar.gz", "has_sig": false, "md5_digest": "bed06031834fc9601bf9bd4822c5d650", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20838, "upload_time": "2018-06-21T07:11:05", "url": "https://files.pythonhosted.org/packages/6e/be/4e70e287d9633fb742d9d824998dc7ec31663f5a3bc84ab9521dffd2b8bc/ftw.zipextract-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3062ab6955de2dbd671493583d250aba", "sha256": "aa42036423689cd3bc79c43dcb33e9001e57f06a0183bda44dd84fa054ff046c" }, "downloads": -1, "filename": "ftw.zipextract-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3062ab6955de2dbd671493583d250aba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20907, "upload_time": "2018-06-21T15:21:44", "url": "https://files.pythonhosted.org/packages/f5/ba/89722677abfd5fa0b4d1d06452f2699d1562069690723082d8ce48ea1282/ftw.zipextract-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "d03ac3b642e7add68ce5ff77dac4f14b", "sha256": "d97e7aec4919932dc04f7aa49af3672f9b915de29ba9278316f4390a44e99ab3" }, "downloads": -1, "filename": "ftw.zipextract-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d03ac3b642e7add68ce5ff77dac4f14b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22633, "upload_time": "2018-07-24T18:21:19", "url": "https://files.pythonhosted.org/packages/70/2a/2e5533750a3f7562d9537c85c562772e724469810b4439232e5145a8fc08/ftw.zipextract-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "37d9ef8b12150b66941a551396e06d7e", "sha256": "ba5af74e9f0c302a3e2fccfef18e4a7e9ed9bc1d0237c4a6d820aa46e949f1e0" }, "downloads": -1, "filename": "ftw.zipextract-1.1.1.tar.gz", "has_sig": false, "md5_digest": "37d9ef8b12150b66941a551396e06d7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22698, "upload_time": "2018-07-24T19:51:54", "url": "https://files.pythonhosted.org/packages/62/5d/4a77ac151bdef6e4bad883de2539c19e2af65c46b1e1967e395b936034bc/ftw.zipextract-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "37d9ef8b12150b66941a551396e06d7e", "sha256": "ba5af74e9f0c302a3e2fccfef18e4a7e9ed9bc1d0237c4a6d820aa46e949f1e0" }, "downloads": -1, "filename": "ftw.zipextract-1.1.1.tar.gz", "has_sig": false, "md5_digest": "37d9ef8b12150b66941a551396e06d7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22698, "upload_time": "2018-07-24T19:51:54", "url": "https://files.pythonhosted.org/packages/62/5d/4a77ac151bdef6e4bad883de2539c19e2af65c46b1e1967e395b936034bc/ftw.zipextract-1.1.1.tar.gz" } ] }