{ "info": { "author": "Pascal Chambon", "author_email": "pythoniks@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Filesystems" ], "description": "RSFILE\n================\n\nRSFile provides pure-python drop-in replacements for the classes of the **io** module, and for the **open()** builtin.\n\nIts goal is to provide a cross-platform, reliable, and comprehensive synchronous file I/O API, with advanced features like fine-grained opening modes, shared/exclusive file record locking, thread-safety, cache synchronization, file descriptor inheritability, and handy stat getters (size, inode, times...).\n\nLocking is performed using actual file locking capabilities of the OS, not by using separate files/directories as locking markers, or other fragile gimmicks.\n\n.. END OF PART KINDA SHARED WITH SPHINX DOC INDEX ..\n\nPossible use cases for this library: concurrently writing to logs without ending up with garbled data, manipulating sensitive data like disk-based databases, synchronizing heterogeneous producer/consumer processes when multiprocessing semaphores aren't an option...\n\nTested on python2.7 and python3.5+, on windows and unix-like systems. *Should* work with IronPython/Jython/PyPy too, since it uses stdlib utilities and ctypes bridges.\n\n.. image:: https://travis-ci.org/pakal/rsfile.svg?branch=master\n :target: https://travis-ci.org/pakal/rsfile\n\n**Learn more about RSFile : http://rsfile.readthedocs.io/**\n\n\n\nINSTALL\n------------\n\nUsing pip is recommended, although installing from a checkout of the repository (via setup.py) also works:\n\n::\n\n $ pip install rsfile\n\n\nQUICKSTART\n------------\n\n::\n\n from rsfile import rsopen\n\n with rsopen(\"myfile.txt\", \"w\") as f:\n f.write(u\"This string will be veeeeeryyyyy safely written to file.\")\n\n with rsopen(\"myfile.txt\", \"WANISB\", locking=False, thread_safe=False) as f:\n f.write(b\"See the docs for info on these cool new modes and parameters.\")\n\n\nSee CONTRIBUTING.rst for other cases of the module (testing, benchmarking...)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pakal/rsfile", "keywords": "", "license": "http://www.opensource.org/licenses/mit-license.php", "maintainer": "", "maintainer_email": "", "name": "RSFile", "package_url": "https://pypi.org/project/RSFile/", "platform": "any", "project_url": "https://pypi.org/project/RSFile/", "project_urls": { "Homepage": "https://github.com/pakal/rsfile" }, "release_url": "https://pypi.org/project/RSFile/2.2/", "requires_dist": null, "requires_python": "", "summary": "RSFile advanced I/O file streams", "version": "2.2" }, "last_serial": 4717888, "releases": { "1.0": [ { "comment_text": "Win32 installer for py26 and py27", "digests": { "md5": "3061b4fbdad665051e1498a52e9cc27d", "sha256": "d516236bede865d2917333d5ce7e06b25e51cab598530555b0631ce7c8bccaf5" }, "downloads": -1, "filename": "RSFile-1.0.py2k.win32.exe", "has_sig": false, "md5_digest": "3061b4fbdad665051e1498a52e9cc27d", "packagetype": "bdist_wininst", "python_version": "2.7", "requires_python": null, "size": 777492, "upload_time": "2010-05-19T12:23:59", "url": "https://files.pythonhosted.org/packages/ab/01/bb1cabf94cb1e0f107c1a10e89280d6c8e51bafb6a5f14a2edcdaf65c49e/RSFile-1.0.py2k.win32.exe" }, { "comment_text": "RSFile for py26, py27 and py3k", "digests": { "md5": "16a9b30317adf72148394731026f6ec0", "sha256": "9fb7c77716dd71d1e808f6ac90f6639b9187a8e5d70f34319a37b0ea1652d38a" }, "downloads": -1, "filename": "RSFile-1.0.tar.gz", "has_sig": false, "md5_digest": "16a9b30317adf72148394731026f6ec0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 554552, "upload_time": "2011-02-17T15:55:10", "url": "https://files.pythonhosted.org/packages/45/9b/9d5096f5f7c8f4a94e32b547a660bb9f121b147f9204cdd200db028cfa60/RSFile-1.0.tar.gz" }, { "comment_text": "RSFile for py26, py27 and py3k", "digests": { "md5": "30619d99a7b949b4937daa3afca919c7", "sha256": "7b7cf9edc35dba13ddd0010f1ec49d5da60cb315bb2934014c8d8dce5561bd8f" }, "downloads": -1, "filename": "RSFile-1.0.zip", "has_sig": false, "md5_digest": "30619d99a7b949b4937daa3afca919c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 582140, "upload_time": "2010-05-19T11:48:53", "url": "https://files.pythonhosted.org/packages/6a/a7/b20b8c5d1823657c57ca62e65f640c101970f90a795df8e206aa275ed6dd/RSFile-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "06f53cbcc268039212a853703abcb85a", "sha256": "4e8b969d8c67238f6dac2f9115a38652736941f43010aecf9e00301f4e7df64e" }, "downloads": -1, "filename": "RSFile-1.1.tar.gz", "has_sig": false, "md5_digest": "06f53cbcc268039212a853703abcb85a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 504106, "upload_time": "2011-04-14T21:28:24", "url": "https://files.pythonhosted.org/packages/f6/27/31d616668f402cc1b378c5fd835bca029c22fdc0ff3b5f03283ea8930de5/RSFile-1.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "eebe30976460c1a3e64aff16ed2d688e", "sha256": "0cff42599b21dce6cf4285421d47d8a9fe04e006950cf9f4b5ceb6e78e0d111a" }, "downloads": -1, "filename": "RSFile-1.1.win32.msi", "has_sig": false, "md5_digest": "eebe30976460c1a3e64aff16ed2d688e", "packagetype": "bdist_msi", "python_version": "any", "requires_python": null, "size": 688128, "upload_time": "2011-04-14T21:29:32", "url": "https://files.pythonhosted.org/packages/25/92/2470dc66fcb783c9bce73a55735091e93ecada3cf4518f441db9de0f68dc/RSFile-1.1.win32.msi" }, { "comment_text": "", "digests": { "md5": "9846b2708330a43bdf276286f9d7bd4f", "sha256": "2232552144e8dd4a17e91ad7b2d0e63409e6414ba797c97366fbf3441029a1e0" }, "downloads": -1, "filename": "RSFile-1.1.zip", "has_sig": false, "md5_digest": "9846b2708330a43bdf276286f9d7bd4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 525107, "upload_time": "2011-04-14T21:28:38", "url": "https://files.pythonhosted.org/packages/2c/be/dcd37a2644401b1814e9cf8a9f4ec7ea2e6f5a32c9463952fbef02c8f5fd/RSFile-1.1.zip" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "7f8f158135b4a9db81cf56cb26941653", "sha256": "7678cae7b1a3251678f85951582385222bf8a494fb82fdf07b923366bca7a68e" }, "downloads": -1, "filename": "RSFile-2.1.tar.gz", "has_sig": false, "md5_digest": "7f8f158135b4a9db81cf56cb26941653", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128667, "upload_time": "2016-06-22T20:05:27", "url": "https://files.pythonhosted.org/packages/71/2c/80e3abdc54dec4b3bb133cd307d9b765c1eed7c88bd16b62e1e35effcd0d/RSFile-2.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "9277fcaafbf032dc93901316bf417507", "sha256": "e79d9e778ee32ddc4d5500364dde1a29f9ba3d0d5d19ebec8240adad8c6288be" }, "downloads": -1, "filename": "RSFile-2.1.zip", "has_sig": false, "md5_digest": "9277fcaafbf032dc93901316bf417507", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148297, "upload_time": "2016-06-22T20:05:33", "url": "https://files.pythonhosted.org/packages/bc/eb/b8320aa43dfd6888e92e0bb3ac6202d9149af0c2e22bf94e469920d96e87/RSFile-2.1.zip" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "3937252182e0e19fdc24ae773c5d41df", "sha256": "b05a15af7909f17d1f4e33f0707029e7c2379a076c0d307462a57ce55bbf9856" }, "downloads": -1, "filename": "RSFile-2.2.tar.gz", "has_sig": false, "md5_digest": "3937252182e0e19fdc24ae773c5d41df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 171369, "upload_time": "2019-01-20T09:50:01", "url": "https://files.pythonhosted.org/packages/52/83/6dee3aad872de1894cc0dde21ea350d976ed0890d51d7520df89f5504572/RSFile-2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3937252182e0e19fdc24ae773c5d41df", "sha256": "b05a15af7909f17d1f4e33f0707029e7c2379a076c0d307462a57ce55bbf9856" }, "downloads": -1, "filename": "RSFile-2.2.tar.gz", "has_sig": false, "md5_digest": "3937252182e0e19fdc24ae773c5d41df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 171369, "upload_time": "2019-01-20T09:50:01", "url": "https://files.pythonhosted.org/packages/52/83/6dee3aad872de1894cc0dde21ea350d976ed0890d51d7520df89f5504572/RSFile-2.2.tar.gz" } ] }