{ "info": { "author": "Shunfan Du", "author_email": "i@perry.asia", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Topic :: Software Development :: Build Tools", "Topic :: System :: Filesystems", "Topic :: Utilities" ], "description": "Porter\n------\n\n.. image:: https://travis-ci.org/shunfan/porter.png?branch=master\n :target: https://travis-ci.org/shunfan/porter\n\n.. image:: https://coveralls.io/repos/shunfan/porter/badge.png?branch=master\n :target: https://coveralls.io/r/shunfan/porter?branch=master\n\nPorter provides simple file operations.\n\nLicense\n-------\n\nMIT.\n\nInstallation\n------------\n\nUsing pip::\n\n pip install porter\n\nFile management\n---------------\n\nImport porter::\n\n import porter\n\nCreate a folder::\n\n porter.mkdir('/foo/bar')\n # The new directory 'bar' will be created.\n\nRename a file/directory::\n\n porter.rename('/foo/bar.txt', 'file.txt')\n >>> '/foo/file.txt'\n\n porter.rename('/foo/bar', 'folder')\n >>> '/foo/folder'\n\nRemove a file/directory::\n\n porter.remove('/foo/bar')\n\nCopy a file/directory::\n\n # Two ways same result\n porter.copy('/foo/bar.txt', '/foo1/bar.txt')\n porter.copy_to('/foo/bar.txt', '/foo1')\n\nMove a file/directory::\n\n # Two ways same result\n porter.move('/foo/bar', '/foo1/bar')\n >>> '/foo1/bar'\n\n porter.move_to('/foo/bar', '/foo1')\n >>> '/foo1/bar'\n\nIgnore and force::\n\n porter.mkdir('/foo/bar', ignore=True)\n # If '/foo/bar' exists, porter will not create the folder and no error will occur.\n # Ignore option can ONLY ignore the error of the existing destination file/directory.\n\n porter.move('/foo/bar', '/foo1/bar', force=True)\n # If '/foo1/bar' exists, porter will move the directory anyway.\n\nIgnore and force are both available in 'mkdir', 'copy', 'copy_to', 'move', 'move_to' functions.\n\nArchive::\n\n porter.archive('/foo/bar')\n >>> '/foo/bar.tar'\n\n porter.archive('/foo/bar', 'archive', 'zip')\n >>> '/foo/archive.zip'\n\n porter.archive_to('/foo/bar', '/foo/bar1', 'archive')\n >>> '/foo/bar1/archive.tar'\n\nAll supported archive types: 'gztar', 'bztar', 'tar', 'zip'\n\nclass ``TargetFile``::\n\n bar = porter.TargetFile('/foo/bar.txt')\n\n bar.src\n >>> '/foo/bar.txt'\n\n bar.name\n >>> 'bar'\n\n bar.ext\n >>> 'txt'\n\n bar.move_to('foo1')\n\n bar.src\n >>> '/foo1/bar.txt'\n\n bar.remove()\n # Then it will be removed.\n\nclass ``TargetDirectory``::\n\n \"\"\"\n The structure of the directory:\n - foo\n - bar\n - dir1\n - f1.txt\n - dir2\n - f2.txt\n - foo1\n \"\"\"\n\n bar = porter.TargetDirectory('/foo/bar')\n\n bar.src\n >>> '/foo/bar'\n\n bar.list()\n >>> {'dir1': {'f1.txt': None}, 'dir2': {'f2.txt': None}}\n\n bar.files()\n >>> ['f1.txt', 'f2.txt']\n\n bar.directories()\n >>> ['dir1', 'dir2']\n\n bar.move_to('foo1')\n\n bar.src\n >>> '/foo1/bar'\n\n bar.empty()\n # All of the files in it will be removed\n\n bar.remove()\n # Then it will be removed.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/shunfan/porter", "keywords": "file directory operation tool", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "porter", "package_url": "https://pypi.org/project/porter/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/porter/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/shunfan/porter" }, "release_url": "https://pypi.org/project/porter/0.1.5/", "requires_dist": null, "requires_python": null, "summary": "Porter: Simple File Operations in Python", "version": "0.1.5" }, "last_serial": 807358, "releases": { "0.0.8": [ { "comment_text": "", "digests": { "md5": "6f2fd67c1aabf7e0eb866a665f7577ba", "sha256": "2a52405682cae4ea25ef97d6f1ba763ec98696de71cad9b91ae1ba7b5b64a6f6" }, "downloads": -1, "filename": "porter-0.0.8-py2.7.egg", "has_sig": false, "md5_digest": "6f2fd67c1aabf7e0eb866a665f7577ba", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 4994, "upload_time": "2013-06-14T13:41:50", "url": "https://files.pythonhosted.org/packages/ed/be/b6efdfae08902c8993f14aac5c30ac35c64585ba38fe4f9454f60321044f/porter-0.0.8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "294bbc2d17c8ffd4e91cb81d99ba6cff", "sha256": "7c49956aed82b02dbf2578e05e276dc2eeec250c99399c57120c6907621408e1" }, "downloads": -1, "filename": "porter-0.0.8.tar.gz", "has_sig": false, "md5_digest": "294bbc2d17c8ffd4e91cb81d99ba6cff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3166, "upload_time": "2013-06-14T13:41:47", "url": "https://files.pythonhosted.org/packages/c8/9e/1ad791e464ed788efdd06325791f84e9f444f5c019d7a7d8a6797fb074d8/porter-0.0.8.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "216728c2c7265baef4473d657723a624", "sha256": "7de7df8b569be3b20b8c29ad2cdbc7bdca8e1cd1b60a84332fb7751de021bb51" }, "downloads": -1, "filename": "porter-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "216728c2c7265baef4473d657723a624", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 5778, "upload_time": "2013-06-15T10:55:15", "url": "https://files.pythonhosted.org/packages/32/33/26830febb4c3b983c4d0fb9d1ca9bf8e14974595d93388a3b442e2221e96/porter-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2b9c27467dcb6e91db79647950dd3968", "sha256": "421bf590e9d90093cb268468468d61eb4dd6759763b27750f38dde3df338aedf" }, "downloads": -1, "filename": "porter-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2b9c27467dcb6e91db79647950dd3968", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3569, "upload_time": "2013-06-15T10:55:12", "url": "https://files.pythonhosted.org/packages/b7/8a/ba552b18b62eabfe099df6cc18e789bf113f93fb5f07a0d2227b30dcb834/porter-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d93f042567d5bc873e3ac2211a500e66", "sha256": "6ba0a0b5b7539da30b61e87cd72767b123b6894c542f08b563607f76895993ec" }, "downloads": -1, "filename": "porter-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "d93f042567d5bc873e3ac2211a500e66", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6033, "upload_time": "2013-06-23T03:41:08", "url": "https://files.pythonhosted.org/packages/b8/7a/def276dad71091f4a2907b68c445273bddc98746014728c9623b3a91bec0/porter-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "acca78214f8fee48e3e4d36edb0aa1ca", "sha256": "d0a22dcd8b7c40faa8e5d34ffe43a13d6fe7ef9ddddd960a4544f6d0db3de138" }, "downloads": -1, "filename": "porter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "acca78214f8fee48e3e4d36edb0aa1ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3751, "upload_time": "2013-06-23T03:41:05", "url": "https://files.pythonhosted.org/packages/b9/1a/9c45b684b7228ba31da0c7add95996033cdb5165f0a080e564cb0ef522dd/porter-0.1.1.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "ca962d0652d7119ae56fe276c9f7481f", "sha256": "4500bc2e5c94b703f6d04d3026c552d1778817e4b308bcfbd628f464f22a687a" }, "downloads": -1, "filename": "porter-0.1.5-py2.7.egg", "has_sig": false, "md5_digest": "ca962d0652d7119ae56fe276c9f7481f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6702, "upload_time": "2013-07-03T17:43:57", "url": "https://files.pythonhosted.org/packages/e3/4a/cdfc43a80d26fdc93cc22dc62fe70125a7c11f7488d1643c582a5c54e8c1/porter-0.1.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "42d47582c6d74be934f578d229e4d793", "sha256": "06e879bee63d13f4919cb7682eb58b299e4483c0c312a1f60a5abeb2f2785ea8" }, "downloads": -1, "filename": "porter-0.1.5.tar.gz", "has_sig": false, "md5_digest": "42d47582c6d74be934f578d229e4d793", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4102, "upload_time": "2013-07-03T17:43:55", "url": "https://files.pythonhosted.org/packages/b4/e9/a3b40a574aae27c2bd5504ef9129d5d822bd2b6888e53654f99cf565c194/porter-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ca962d0652d7119ae56fe276c9f7481f", "sha256": "4500bc2e5c94b703f6d04d3026c552d1778817e4b308bcfbd628f464f22a687a" }, "downloads": -1, "filename": "porter-0.1.5-py2.7.egg", "has_sig": false, "md5_digest": "ca962d0652d7119ae56fe276c9f7481f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6702, "upload_time": "2013-07-03T17:43:57", "url": "https://files.pythonhosted.org/packages/e3/4a/cdfc43a80d26fdc93cc22dc62fe70125a7c11f7488d1643c582a5c54e8c1/porter-0.1.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "42d47582c6d74be934f578d229e4d793", "sha256": "06e879bee63d13f4919cb7682eb58b299e4483c0c312a1f60a5abeb2f2785ea8" }, "downloads": -1, "filename": "porter-0.1.5.tar.gz", "has_sig": false, "md5_digest": "42d47582c6d74be934f578d229e4d793", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4102, "upload_time": "2013-07-03T17:43:55", "url": "https://files.pythonhosted.org/packages/b4/e9/a3b40a574aae27c2bd5504ef9129d5d822bd2b6888e53654f99cf565c194/porter-0.1.5.tar.gz" } ] }