{ "info": { "author": "Victor Wagner", "author_email": "vitus@wagner.pp.ru", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 3" ], "description": "# fstrans - Python module for filesystem transactions\n\nDescription\n-----------\n\nThis module allows to manipulate some directory tree in safe way,\nmaking sure that in case of error tree would left intact, and \nno other process such as webserver would access partially modified tree\n(although you can use external programs from your script to work with\ntree)\n\nIt also serializes write tree access - if one program starts transaction\nwith some directory, other one, if started, would wait for some time for it to\ncomplete.\n\nModule is Unix-only. It heavily relies on hard links to quickly make\ncopies of big trees.\n\nAs working tree is populated with symlinks from final tree, user\nshould make sure that file is different in local copy before modifying\nit.\n\nFor this module provides following methods:\n\n1. **open** - works just like builtin function **open**, but makes sure\nthat original file would not be clobbered before commit.\n2. **putfile** - safely replaces file in tree with other file\n3. **clonefile**, **clonetree** - make exact copy of original file with\n link count = 1.\n\nInstallation\n------------\n\nYou can install released version with `pip3 install fstrans`.\nIf you prefer cutting age software, recommended way is\n\n```\npython3 setup.py sdist\npip3 install ./dist/fstrans-1.0.tar.gz\n```\n\nOf course, you can install system-wide build your OS packages and so on.\nBut if you are planning to do so, you probably don't need special\ninstructions.\n\nTesting\n-------\n\nThere is unittest-based test suite in the test directory.\n\n\nRun\n\n```\npython3 setup.py test\n```\n\nto run test suite.\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vbwagner/fstrans", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "fstrans", "package_url": "https://pypi.org/project/fstrans/", "platform": "", "project_url": "https://pypi.org/project/fstrans/", "project_urls": { "Homepage": "https://github.com/vbwagner/fstrans" }, "release_url": "https://pypi.org/project/fstrans/1.0.1/", "requires_dist": null, "requires_python": ">=3.5", "summary": "Performs transactional modification on directory trees", "version": "1.0.1", "yanked": false, "yanked_reason": null }, "last_serial": 6006745, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "c6677a10c9ced73232e18a71fa20f2d9", "sha256": "858f61695357141126c38592ccb63dbe5b764e3bf5f0cc956906272cdf21aefb" }, "downloads": -1, "filename": "fstrans-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6677a10c9ced73232e18a71fa20f2d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 17369, "upload_time": "2019-10-18T19:48:17", "upload_time_iso_8601": "2019-10-18T19:48:17.369999Z", "url": "https://files.pythonhosted.org/packages/b2/f6/032a337167081d4ffd218d6f07f3b2961df8ddec7c1d7c10d80f51a493d9/fstrans-1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "41ccded2661bf54315a6b0c04c4b9070", "sha256": "3d062e0e63af846c0528ac5c982e9d173a6f4dcdfdeac9f330c46fb1586a530e" }, "downloads": -1, "filename": "fstrans-1.0.tar.gz", "has_sig": false, "md5_digest": "41ccded2661bf54315a6b0c04c4b9070", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4855, "upload_time": "2019-10-18T19:48:20", "upload_time_iso_8601": "2019-10-18T19:48:20.003702Z", "url": "https://files.pythonhosted.org/packages/89/e2/0ef1a641834aa4efe3b7444810fb1dd700d0310f039fb2920a170f1c7d9e/fstrans-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "553a120e71a3e224249798a3601a87d8", "sha256": "7e3ccfdcdbdbad624267e0236fb6c331929abf484fde1ad19f2f9fe290e2b3fb" }, "downloads": -1, "filename": "fstrans-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "553a120e71a3e224249798a3601a87d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19655, "upload_time": "2019-10-21T10:57:27", "upload_time_iso_8601": "2019-10-21T10:57:27.250776Z", "url": "https://files.pythonhosted.org/packages/39/ef/7b936a2cd88877d614131acc99ec9cf6a191abb014fc31182bfa7fd1b675/fstrans-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a0ac622aaddbdb27808c54eba2a169ba", "sha256": "8fc664dd583db403cb0150aa7f928b481e1e26214d373caca68fc3dcdfa7f170" }, "downloads": -1, "filename": "fstrans-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a0ac622aaddbdb27808c54eba2a169ba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19370, "upload_time": "2019-10-21T10:57:36", "upload_time_iso_8601": "2019-10-21T10:57:36.534778Z", "url": "https://files.pythonhosted.org/packages/a9/81/186945eb92a341fd772ab1b644d5b2a77ab50431f3411d22b3f6302d6fbe/fstrans-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "553a120e71a3e224249798a3601a87d8", "sha256": "7e3ccfdcdbdbad624267e0236fb6c331929abf484fde1ad19f2f9fe290e2b3fb" }, "downloads": -1, "filename": "fstrans-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "553a120e71a3e224249798a3601a87d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19655, "upload_time": "2019-10-21T10:57:27", "upload_time_iso_8601": "2019-10-21T10:57:27.250776Z", "url": "https://files.pythonhosted.org/packages/39/ef/7b936a2cd88877d614131acc99ec9cf6a191abb014fc31182bfa7fd1b675/fstrans-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a0ac622aaddbdb27808c54eba2a169ba", "sha256": "8fc664dd583db403cb0150aa7f928b481e1e26214d373caca68fc3dcdfa7f170" }, "downloads": -1, "filename": "fstrans-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a0ac622aaddbdb27808c54eba2a169ba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19370, "upload_time": "2019-10-21T10:57:36", "upload_time_iso_8601": "2019-10-21T10:57:36.534778Z", "url": "https://files.pythonhosted.org/packages/a9/81/186945eb92a341fd772ab1b644d5b2a77ab50431f3411d22b3f6302d6fbe/fstrans-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }