{ "info": { "author": "Wichert Akkerman", "author_email": "repoze-dev@lists.repoze.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4" ], "description": "``repoze.filesafe`` README\n==========================\n\nrepoze.filesafe provides utilities methods to handle creation\nof files on the filesystem safely by integrating with the ZODB package's\ntransaction manager. It can be used in combination with repoze.tm (or\nrepoze.tm2) for use in WSGI environments.\n\n\nSee ``docs/index.rst`` for documentation.\n\n\nChangelog\n=========\n\n2.2 - (2015-05-01)\n------------------\n\n- Add a new ``repoze.filesafe.rename_file`` function to move files.\n\n- Add additional ``recursive`` parameter to allow ``repoze.filesafe.rename_file``\n to use ``os.renames``, i.e. recursively create/remove intermediate directories.\n\n\n2.1 - (2014-05-06)\n------------------\n\n- Fix OSError exceptions raised when deleting a non-existing file to have the\n right errno value.\n\n\n2.0 - (2013-12-20)\n------------------\n\n- Update dummy datamanger to create BytesIO mock files if the file is\n opened in binary mode.\n\n- Update internal function naming to PEP8.\n\n\n2.0b2 (2013-03-20)\n------------------\n\n- Add support for Python 3.2 / 3.3.\n\n- Note explicit support for Python 2.6 / 2.7.\n\n- Drop support for Python < 2.6.\n\n2.0b1 (2011-08-31)\n------------------\n\n- Remove the need for a middleware. Instead the current transaction is\n automatically joined if needed.\n [wichert]\n\n- PEP8.\n [wichert]\n\n- Restructure package to faciliate automated testing.\n [wichert]\n\n1.1 (2011-01-13)\n----------------\n\n- Added deleteFile function/method.\n [fschulze]\n\n1.0 (2010-06-29)\n----------------\n\n- Made DummyDataManager transaction aware.\n [fschulze]\n\n1.0a6 (2009-12-09)\n------------------\n\n- Fix packaging error.\n [wichert]\n\n1.0a5 (2009-12-09)\n------------------\n\n- Add a MockFile class to help with handling of files when using the\n DummyDataManager.\n [fschulze]\n\n\n1.0a4 (2009-11-12)\n------------------\n\n- Add a new openFile method to facilitate opening of files that have not been\n commited yet.\n [wichert]\n\n\n1.0a3 (2009-11-10)\n------------------\n\n- Add method to facilitate unit testing of code using repoze.filesafe.\n [wichert]\n\n1.0a2 (2009-09-25)\n------------------\n\n- Add support for Python 2.4 and 2.5. [wichert]\n\n\n1.0a1 (2009-09-25)\n------------------\n\n- Initial Release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://docs.repoze.org/filesafe/", "keywords": "transaction wsgi repoze", "license": "BSD-derived (http://www.repoze.org/LICENSE.txt)", "maintainer": null, "maintainer_email": null, "name": "repoze.filesafe", "package_url": "https://pypi.org/project/repoze.filesafe/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/repoze.filesafe/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://docs.repoze.org/filesafe/" }, "release_url": "https://pypi.org/project/repoze.filesafe/2.2/", "requires_dist": null, "requires_python": null, "summary": "Transaction-aware file creation", "version": "2.2" }, "last_serial": 1529795, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "d5501286fbf6f97872a4813203112dab", "sha256": "e0b3c0e38df8b2c7b93256989afd1a3ebebabcb3c7ca34b079d75e5133ba3faf" }, "downloads": -1, "filename": "repoze.filesafe-1.0.zip", "has_sig": false, "md5_digest": "d5501286fbf6f97872a4813203112dab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25046, "upload_time": "2010-06-29T09:17:02", "url": "https://files.pythonhosted.org/packages/36/7e/239829ed8f02d439d8afdcebdbea1ca1f175187f1719adbf982fedd2a5e8/repoze.filesafe-1.0.zip" } ], "1.0a1": [ { "comment_text": "", "digests": { "md5": "f26ed13d0c164fe34de6f5c910ddf8b4", "sha256": "73d6c27a3e9b2c6a9cb1ca159fb336c22214f8885454f94afac5e3f2df0239c3" }, "downloads": -1, "filename": "repoze.filesafe-1.0a1.tar.gz", "has_sig": false, "md5_digest": "f26ed13d0c164fe34de6f5c910ddf8b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17308, "upload_time": "2009-09-25T16:39:15", "url": "https://files.pythonhosted.org/packages/f3/0c/c763781ab903fc7697d871d59812b70a4905a542226ebda183de992e7053/repoze.filesafe-1.0a1.tar.gz" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "253115b6d225dc58b3977606a4563f36", "sha256": "0f48117d5664070067c8d771fa2bfb21a4553cc53a1d1a6f37643fb890992337" }, "downloads": -1, "filename": "repoze.filesafe-1.0a2.tar.gz", "has_sig": false, "md5_digest": "253115b6d225dc58b3977606a4563f36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17454, "upload_time": "2009-09-25T18:39:26", "url": "https://files.pythonhosted.org/packages/7d/47/8c6c34f0e6268ea7f546f9dfbde07e7739cd34e51f3c8d5eef4ae0fb3d3c/repoze.filesafe-1.0a2.tar.gz" } ], "1.0a3": [ { "comment_text": "", "digests": { "md5": "4ba666d364ded8d0838e9d9f3ee39982", "sha256": "83f174c09d993e009ec676df54ff095a18e14de3751da15cf66f827073992098" }, "downloads": -1, "filename": "repoze.filesafe-1.0a3.tar.gz", "has_sig": false, "md5_digest": "4ba666d364ded8d0838e9d9f3ee39982", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17970, "upload_time": "2009-11-10T12:10:43", "url": "https://files.pythonhosted.org/packages/25/6e/2c1eac70b518e1841b56a86e97baa9ce0febbe0eaa83e366b40c0a122646/repoze.filesafe-1.0a3.tar.gz" } ], "1.0a4": [ { "comment_text": "", "digests": { "md5": "11c0b9903f0058c3363a34cdfcafc86d", "sha256": "5ba661f41a038a697f0e05bd6e339872f7d18a47f80d0e1dfd54b0d4666f3035" }, "downloads": -1, "filename": "repoze.filesafe-1.0a4.tar.gz", "has_sig": false, "md5_digest": "11c0b9903f0058c3363a34cdfcafc86d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18328, "upload_time": "2009-11-12T19:08:20", "url": "https://files.pythonhosted.org/packages/b3/76/18855c60863ee5ef8f01732b170c264a927460ba6bb52103716a8ec4a7ae/repoze.filesafe-1.0a4.tar.gz" } ], "1.0a5": [ { "comment_text": "", "digests": { "md5": "8633240bb936fbcdd42e75b7f3c8d19f", "sha256": "4f5ac9a695aad6ed053b6d1e4583beaa5ddf6b4475f23fe346de37dc271ecd55" }, "downloads": -1, "filename": "repoze.filesafe-1.0a5.tar.gz", "has_sig": false, "md5_digest": "8633240bb936fbcdd42e75b7f3c8d19f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4230, "upload_time": "2009-12-09T10:23:14", "url": "https://files.pythonhosted.org/packages/1c/cd/84700b6a8a5180bfe4fb7da4c79f83896ed77b64e0af315cbeee33bc1236/repoze.filesafe-1.0a5.tar.gz" } ], "1.0a6": [ { "comment_text": "", "digests": { "md5": "10d734de8f18e260baa33107c8e05b60", "sha256": "3e3712722a22a93a45d56eda000786e6db8d1f3dfd38edb5afa0e8c8d1038e7f" }, "downloads": -1, "filename": "repoze.filesafe-1.0a6.tar.gz", "has_sig": false, "md5_digest": "10d734de8f18e260baa33107c8e05b60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18692, "upload_time": "2009-12-09T10:27:38", "url": "https://files.pythonhosted.org/packages/3d/02/0d3927fbd7e669e3b36a33c22096454f180a51252910dc9499611ae814fb/repoze.filesafe-1.0a6.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "a3d14abdec1ca1c6aecfaa2d48b15d28", "sha256": "1aeeea15b0196c5219873c371c50abf541652ca954967fd4759322b6f4442428" }, "downloads": -1, "filename": "repoze.filesafe-1.1.zip", "has_sig": false, "md5_digest": "a3d14abdec1ca1c6aecfaa2d48b15d28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25775, "upload_time": "2011-01-13T15:35:43", "url": "https://files.pythonhosted.org/packages/0c/92/87b13739a522a629d00ed388af3c92bdb89671e5cde482f73d5adbf8f6bd/repoze.filesafe-1.1.zip" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "cbf3aac6b5daf4adc0cdf8379194d6ff", "sha256": "35d7968a47532b70ea431b122ec38db614c84b877e1348e6d2bf8e37d0f462ba" }, "downloads": -1, "filename": "repoze.filesafe-2.0.tar.gz", "has_sig": false, "md5_digest": "cbf3aac6b5daf4adc0cdf8379194d6ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20215, "upload_time": "2013-12-20T08:23:17", "url": "https://files.pythonhosted.org/packages/8c/ed/38b61242c96a10fbc84c9147a4b18c0ab4a5e4fb1048ee30d91fbaebd3ad/repoze.filesafe-2.0.tar.gz" } ], "2.0b1": [ { "comment_text": "", "digests": { "md5": "3fc5262ad8e44c34a3edc578ff820f46", "sha256": "ab6c079d4983da459760db370db881bd992325c66f577789b8a1329840f598c9" }, "downloads": -1, "filename": "repoze.filesafe-2.0b1.tar.gz", "has_sig": false, "md5_digest": "3fc5262ad8e44c34a3edc578ff820f46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18523, "upload_time": "2011-08-31T17:03:04", "url": "https://files.pythonhosted.org/packages/7c/cd/65d1c1a57501463be3db32e0111ce07140ad06848782ef92809f59b59410/repoze.filesafe-2.0b1.tar.gz" } ], "2.0b2": [ { "comment_text": "", "digests": { "md5": "4b52a2ed4e1a72f9365fcc21c068346f", "sha256": "c7c231f9316a7f64fdb0854b0bd25c698ed51fada02643c1600037bace037133" }, "downloads": -1, "filename": "repoze.filesafe-2.0b2.tar.gz", "has_sig": false, "md5_digest": "4b52a2ed4e1a72f9365fcc21c068346f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23692, "upload_time": "2013-12-19T21:06:13", "url": "https://files.pythonhosted.org/packages/50/ff/bdb0007df323c1b5d7109cea3e4ad84b329b34a4aa24cca8d834ce7061cb/repoze.filesafe-2.0b2.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "dfad78546ea2f6c211a3dbd687074c10", "sha256": "c9bd4ca2b8338f11f8f8cd68552699f31325e0f278b597f488effe75740b0e60" }, "downloads": -1, "filename": "repoze.filesafe-2.1.tar.gz", "has_sig": false, "md5_digest": "dfad78546ea2f6c211a3dbd687074c10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20687, "upload_time": "2014-05-06T12:35:43", "url": "https://files.pythonhosted.org/packages/74/1d/ac38c85cf11a47ca2b72be88d209c2fcb9dbad0a9ff486150158c190c174/repoze.filesafe-2.1.tar.gz" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "e5eb950267335281494b0f8c3aaf7565", "sha256": "a867ce8b0236cf342a125d3e76b002e5ed0f7201b72da8bc10bc2d20da876f0b" }, "downloads": -1, "filename": "repoze.filesafe-2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e5eb950267335281494b0f8c3aaf7565", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 11074, "upload_time": "2015-05-01T20:03:12", "url": "https://files.pythonhosted.org/packages/08/a9/ecd2eac9f84a9e801d69b252147e9825feef6d23eecdfc4dc9f168b1a2d3/repoze.filesafe-2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62423e2670c81e5e7a19e7fbacae51a7", "sha256": "b05d9cc2386c58cc6bd4dea79f737115a1c370d75d11dbb1cb7cac202fe7c600" }, "downloads": -1, "filename": "repoze.filesafe-2.2.tar.gz", "has_sig": false, "md5_digest": "62423e2670c81e5e7a19e7fbacae51a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21499, "upload_time": "2015-05-01T20:03:09", "url": "https://files.pythonhosted.org/packages/55/7a/de63694ea21de0f5e5f50d692e5cfaa6071a531af212b57bcb7de5080378/repoze.filesafe-2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e5eb950267335281494b0f8c3aaf7565", "sha256": "a867ce8b0236cf342a125d3e76b002e5ed0f7201b72da8bc10bc2d20da876f0b" }, "downloads": -1, "filename": "repoze.filesafe-2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e5eb950267335281494b0f8c3aaf7565", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 11074, "upload_time": "2015-05-01T20:03:12", "url": "https://files.pythonhosted.org/packages/08/a9/ecd2eac9f84a9e801d69b252147e9825feef6d23eecdfc4dc9f168b1a2d3/repoze.filesafe-2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62423e2670c81e5e7a19e7fbacae51a7", "sha256": "b05d9cc2386c58cc6bd4dea79f737115a1c370d75d11dbb1cb7cac202fe7c600" }, "downloads": -1, "filename": "repoze.filesafe-2.2.tar.gz", "has_sig": false, "md5_digest": "62423e2670c81e5e7a19e7fbacae51a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21499, "upload_time": "2015-05-01T20:03:09", "url": "https://files.pythonhosted.org/packages/55/7a/de63694ea21de0f5e5f50d692e5cfaa6071a531af212b57bcb7de5080378/repoze.filesafe-2.2.tar.gz" } ] }