{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Utilities", "Typing :: Typed" ], "description": "\nRezip - Repack ZIP Archives\n***************************\n\nRepack ZIP archives with the possibility to update metadata, e.g.,\nUnix access right bits. Rezip can be used to fix Windows generated ZIP\narchives (e.g., Python wheel packages) so that the archives members\nhave suitable access rights for usage on Linux.\n\nGitLab page: `https://gitlab.com/dfritzsche/python-rezip `_\n\n\nUsing rezip\n===========\n\nUsage:\n\n::\n\n rezip [--inplace]\n [--glob|-g]\n [--normalize-access-rights] [--date-time DATETIME]\n [--output|-o OUTPUT]\n INPUT [INPUT]...\n\n``--inplace``\n\n Repack in place. This is done by writing to a temporary file and\n then replace the original input file with the temporary output\n file. On Posix systems an atomic move is used for the replacement\n of the original input file by the temporary output file.\n\n More than one ``INPUT`` file can be specified if ``--inplace`` is\n used.\n\n Note: The ``--inplace`` option is mutual exclusive with the\n ``--output`` option.\n\n``--glob | -g``\n\n Treat the input file names as shell glob patterns.\n\n``--normalize-access-rights``\n\n Normalize the Unix access right bits. Access rights of regular\n non-executable files are modified to ``0o644``. Access rights of\n executable files are modified to be ``0o755``. Rezip considers\n files that already have any executable bit set and files that are\n identified as ELF programs or ELF dynamic libraries as executable.\n\n Identification as an ELF file is done by looking if the file starts\n with the ELF magic bytes ``b\"\\x7fELF\"`` and then reading the\n *e_type* field of the ELF header. As this is in the end only a\n heuristic, wrong executable-identifcations may happen.\n\n``--date-time DATETIME``\n\n Set the date time of all files in the ZIP archive to\n ``DATETIME``. The date time ``DATETIME`` must be a Unix timestamp\n or a date time in ISO format that is understood by\n `fromisoformat() `_.\n\n``INPUT``\n\n The ZIP archive to read\n\n More than one ``INPUT`` file can be specified if ``--inplace`` is\n used. Otherwise, only one ``INPUT`` file is allowed.\n\n``--output | -o``\n\n The ZIP archive to create and write to.\n\n Note: The ``--output`` option is mutual exclusive with the\n ``--inplace`` option.\n\n\nChangelog history\n*****************\n\n\nv0.5.1 (2019-06-21)\n===================\n\n* Use `sphinx-rst-builder `_ to create\n README.rst and CHANGELOG.rst. This way the full Sphinx markup can be\n used in the source files under ``docs/`` while creating rst files\n that can be previewd by online services like GitLab, Github and\n PyPI.\n\n\nv0.5.0 (2019-05-26)\n===================\n\n* Set `create_system `_ (PKZIP 4.4.2 *version\n made by*) to *3* (Unix) when modifying\n `external_attr `_ to set Unix permissions.\n Unix permissions stored in `external_attr `_\n are not correctly restored by `zipfile `_ or Info-ZIP if\n `create_system `_ is *0* (FAT).\n\n\nv0.4.1 (2019-05-21)\n===================\n\n* Updated README.\n\n\nv0.4.0 (2019-05-21)\n===================\n\n* New ``--glob`` (or ``-g``) option to treat input file names as shell\n glob patterns.\n\n* Allow multiple input files when using ``--inplace``.\n\n* New ``--output`` (or ``-o``) option to specify the output file.\n\n\nv0.3.2 (2019-05-19)\n===================\n\n* Documentation improvements\n\n\nv0.3.0 (2019-05-19)\n===================\n\n* New ``--date-time`` option to set file date time in the ZIP file\n\n\nv0.2.2 (2019-05-14)\n===================\n\n* Include LICENSE file in sdist\n\n\nv0.2.1 (2019-05-13)\n===================\n\n* Packaging improvements\n\n\nv0.2.0 (2019-05-13)\n===================\n\n* Updated documentation\n\n\nv0.1.0 (2019-05-13)\n===================\n\n* Initial public release\n\nLicense\n=======\n\nMIT License\n\nCopyright (c) 2019 David Fritzsche\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/dfritzsche/python-rezip", "keywords": "", "license": "MIT", "maintainer": "David Fritzsche", "maintainer_email": "david.fritzsche@mvua.de", "name": "rezip", "package_url": "https://pypi.org/project/rezip/", "platform": "any", "project_url": "https://pypi.org/project/rezip/", "project_urls": { "Homepage": "https://gitlab.com/dfritzsche/python-rezip" }, "release_url": "https://pypi.org/project/rezip/0.5.2/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Repack ZIP archives", "version": "0.5.2" }, "last_serial": 5858155, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "ad05213e39acceee333f9b848eda3fb7", "sha256": "a5ab375e627c9fc014a2b8029b6483ba8b4334c9dda8db97f60831b6083f1efc" }, "downloads": -1, "filename": "rezip-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ad05213e39acceee333f9b848eda3fb7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5344, "upload_time": "2019-05-13T21:05:18", "url": "https://files.pythonhosted.org/packages/51/12/a9edd7b4619684dc0345fde7b21de13b17703e1ec175cd75f80d6d2e64d7/rezip-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "830451978d80c92f52b75fde981e0f84", "sha256": "2e18c46c07cbcf0736b2e52ed2d9694efed263393ece4397ff66ac214b8cf883" }, "downloads": -1, "filename": "rezip-0.2.1.tar.gz", "has_sig": false, "md5_digest": "830451978d80c92f52b75fde981e0f84", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4256, "upload_time": "2019-05-13T21:05:20", "url": "https://files.pythonhosted.org/packages/43/b5/0c3811ef21ee37437d0c9deb776c8a093e7766cee5b9ac3321655ac034f0/rezip-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "bbc471725ea9058f6d215c48bfc473be", "sha256": "1d13eeb0ea30c29eaaffbf35e7fd6aeb37bb5181e86de7491c8ae45383ac92c1" }, "downloads": -1, "filename": "rezip-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "bbc471725ea9058f6d215c48bfc473be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4815, "upload_time": "2019-05-13T21:17:15", "url": "https://files.pythonhosted.org/packages/24/48/90230ec3373da0fd97f2aa161f13532b517abf12cf02923ecd9821e804be/rezip-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10b5cac65c40f742b25b82e9c7ece061", "sha256": "288eaa473a69b2e567350ea5f9212070431b78cf4eb6c1a6135ac78fc75bac4a" }, "downloads": -1, "filename": "rezip-0.2.2.tar.gz", "has_sig": false, "md5_digest": "10b5cac65c40f742b25b82e9c7ece061", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4316, "upload_time": "2019-05-13T21:17:17", "url": "https://files.pythonhosted.org/packages/80/e2/13536b9a487386fc588be850b9ff1720e19b836f3567d62a0623fc5e8666/rezip-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "681030d34f8139936e7518c4d0b1c863", "sha256": "d068820b85f27025861314c7430d509d441ab4026794e6456cfa006b94d37f02" }, "downloads": -1, "filename": "rezip-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "681030d34f8139936e7518c4d0b1c863", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5290, "upload_time": "2019-05-19T11:43:43", "url": "https://files.pythonhosted.org/packages/67/6a/d89e3fd1878b4c5fd6e82662b9bc5387d2db19cdbf16453eb36e11482249/rezip-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43d3a36a48a43728bf0bf7c8123f0efd", "sha256": "c727a9fe5f2776ce115fe12fc4f20fc7a92f5982ae38c06c71f9ac585b97beac" }, "downloads": -1, "filename": "rezip-0.3.0.tar.gz", "has_sig": false, "md5_digest": "43d3a36a48a43728bf0bf7c8123f0efd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4798, "upload_time": "2019-05-19T11:43:44", "url": "https://files.pythonhosted.org/packages/88/f0/f989b99ea786d41fda696f423a6a643389191259778e7eca52934f2bdaf8/rezip-0.3.0.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "df90522cef0f3e484b8f9bba25ff9754", "sha256": "d9f34c2dbe96b9a04ce362afcc3d3cf85e1d3f991e7c601c7e4900bb298fa90d" }, "downloads": -1, "filename": "rezip-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "df90522cef0f3e484b8f9bba25ff9754", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5950, "upload_time": "2019-05-19T18:48:10", "url": "https://files.pythonhosted.org/packages/88/43/bd45aa076bb81e3d451d9209d9c422dc1e7b57f57f63a7308e136fd60973/rezip-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1542d079e9e0eacfd811dd59c5304040", "sha256": "f0e9e7b5e3ccb6337a11f87858608ee95193302bfecd7e265150808126b8b5c8" }, "downloads": -1, "filename": "rezip-0.3.2.tar.gz", "has_sig": false, "md5_digest": "1542d079e9e0eacfd811dd59c5304040", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5564, "upload_time": "2019-05-19T18:48:12", "url": "https://files.pythonhosted.org/packages/8a/2d/c28a3ae2299826ceb9a681b414385776b21942ac5da50dc734659109c0da/rezip-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "dc02044af361f753dba8a4d06fdea3f5", "sha256": "ef7e147b038cf68f53a3a53ea98affbd80bec5ffda23baebbe164858185a0246" }, "downloads": -1, "filename": "rezip-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dc02044af361f753dba8a4d06fdea3f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 6626, "upload_time": "2019-05-21T21:14:33", "url": "https://files.pythonhosted.org/packages/62/f3/407c5cfa60826c561c1dacf13f2cc1b66ba9cb99485b7d8895aede825295/rezip-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "038224c819dea7b91a5fb1759f8f6025", "sha256": "5398947ccae5026dd6fedcdb4038b58f8a2789f49708e7492f4d165bf9c36acd" }, "downloads": -1, "filename": "rezip-0.4.0.tar.gz", "has_sig": false, "md5_digest": "038224c819dea7b91a5fb1759f8f6025", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6224, "upload_time": "2019-05-21T21:14:35", "url": "https://files.pythonhosted.org/packages/26/02/ce7d72ea3a560aa75ccb24b81c59a30e33533d41d26ba5c1113c54551608/rezip-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "73fdae009692cfabfa3e14cf3050b77c", "sha256": "673ccc4ba9471dbada7ea2dfdd6f2a57491a2d1823eab42ccd8f4aa906604bd7" }, "downloads": -1, "filename": "rezip-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "73fdae009692cfabfa3e14cf3050b77c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 6725, "upload_time": "2019-05-21T21:16:32", "url": "https://files.pythonhosted.org/packages/e4/80/e4c97464f87bc2cf75365e2c84a8e79d5dd7d0a61b947781f73a5688cec2/rezip-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca1c6bb519c896a35e09c5ac917e447f", "sha256": "dfe9a977e5433e1f16b65b6a31e18b908fd468899e646bb5c8a420f095540ab7" }, "downloads": -1, "filename": "rezip-0.4.1.tar.gz", "has_sig": false, "md5_digest": "ca1c6bb519c896a35e09c5ac917e447f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6332, "upload_time": "2019-05-21T21:16:34", "url": "https://files.pythonhosted.org/packages/0e/fb/2c4879887448bc90a0e99ceec04da13ce4a15b34425a2b04c3f593d9907e/rezip-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "f485dbdd2616d35982f8c7b8ec2837a7", "sha256": "4b9d956bf4f3cc6e86ccaa89d8e82649678802c450ecc74cc69197501fca5e6f" }, "downloads": -1, "filename": "rezip-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f485dbdd2616d35982f8c7b8ec2837a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7279, "upload_time": "2019-05-26T21:33:24", "url": "https://files.pythonhosted.org/packages/1b/e2/e3614d52beea4cf0861a0de1eae8b5054d3c7c0a2c5f781c630f149b5bff/rezip-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f69f0135f71a0bfd8ecac8094983824", "sha256": "1ded019ed47afd0d8c934a56e3bcc76bbba8a709c8bb51bc5f6fdad5d319f22d" }, "downloads": -1, "filename": "rezip-0.5.0.tar.gz", "has_sig": false, "md5_digest": "5f69f0135f71a0bfd8ecac8094983824", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6909, "upload_time": "2019-05-26T21:33:25", "url": "https://files.pythonhosted.org/packages/1e/8c/45b79328906120da968bad9bbc740287512b863ea35275c1847bace9f4dd/rezip-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "121b49ad8789f645cfbfbf038cb39b8b", "sha256": "43bda43242eb47f12a58f953ae08b34649ea208ad63f354187140edfe6b0f8f6" }, "downloads": -1, "filename": "rezip-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "121b49ad8789f645cfbfbf038cb39b8b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 8248, "upload_time": "2019-06-21T16:17:28", "url": "https://files.pythonhosted.org/packages/d3/68/e5076cc418f58790a30813647d6a2e2163dacfe30e28590172b232825441/rezip-0.5.1-py3-none-any.whl" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "980506d6646ea05dc76411ccfeb58e38", "sha256": "e5aa8dd11963c05a4722340ab61e74d198f4c52ccca2dd38c86bf8dac5775568" }, "downloads": -1, "filename": "rezip-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "980506d6646ea05dc76411ccfeb58e38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 8305, "upload_time": "2019-09-19T18:49:32", "url": "https://files.pythonhosted.org/packages/5f/b4/1549b287bce9beca974eab7791bf20ab76770dbc8d54ee05784db78fe92b/rezip-0.5.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "980506d6646ea05dc76411ccfeb58e38", "sha256": "e5aa8dd11963c05a4722340ab61e74d198f4c52ccca2dd38c86bf8dac5775568" }, "downloads": -1, "filename": "rezip-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "980506d6646ea05dc76411ccfeb58e38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 8305, "upload_time": "2019-09-19T18:49:32", "url": "https://files.pythonhosted.org/packages/5f/b4/1549b287bce9beca974eab7791bf20ab76770dbc8d54ee05784db78fe92b/rezip-0.5.2-py3-none-any.whl" } ] }