{ "info": { "author": "Christoph Koerner", "author_email": "office@chaosmail.at", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Filesystems", "Topic :: System :: Operating System", "Topic :: Utilities" ], "description": "Python FS - a pythonic file system wrapper for humans\n=====================================================\n\n|Build Status| |Coverage Status| |License|\n\nAn easy to use file system wrapper for Python that aims to simplify os,\nos.path, os.walk, shutils, fnmatch, etc.\n\nInstallation\n------------\n\nInstall with the Python Package Manager *pip* with the following\ncommand:\n\n.. code:: bash\n\n pip install pyfs\n\nOr install from source:\n\n.. code:: bash\n\n git clone https://github.com/chaosmail/python-fs.git\n cd python-fs\n python setup.py install\n\nDocumentation\n-------------\n\nFirst, import the python-fs module.\n\n.. code:: python\n\n import fs\n\nfs.exists(path)\n~~~~~~~~~~~~~~~\n\nReturns True if the *path* exists. Returns False if *path* does not\nexist.\n\n.. code:: python\n\n >>> fs.exists('test.txt')\n True\n >>> fs.exists('some_directory')\n True\n\nfs.isfile(path)\n~~~~~~~~~~~~~~~\n\nReturns True if the *path* exists and is a file. Returns False if *path*\nis a directory or does not exist.\n\n.. code:: python\n\n >>> fs.isfile('test.txt')\n True\n >>> fs.isfile('some_directory')\n False\n\nfs.isdir(path)\n~~~~~~~~~~~~~~\n\nReturns True if the *path* exists and is a directory. Returns False if\n*path* is a file or does not exist.\n\n.. code:: python\n\n >>> fs.isdir('test.txt')\n False\n >>> fs.isdir('some_directory')\n True\n\nfs.stat(path)\n~~~~~~~~~~~~~\n\nReturns a `stats\nobject `__ that\ncontains meta data of *path* where path can be either a file or\ndirectory. Raises *OSError* exception if *path* does not exist.\n\n.. code:: python\n\n >>> s = fs.stat('test.txt')\n >>> s.st_atime\n 1428162423.839133\n >>> s.st_mtime\n 1427919315.960152\n >>> s.st_ctime\n 1427919315.960152\n\nfs.ctime(path)\n~~~~~~~~~~~~~~\n\nPlatform dependent; returns time of most recent metadata change on Unix,\nor the time of creation on Windows of *path* where path can be either a\nfile or directory. Raises *OSError* exception if *path* does not exist.\n\n.. code:: python\n\n >>> fs.ctime('test.txt')\n 1427919315.960152\n\nfs.atime(path)\n~~~~~~~~~~~~~~\n\nReturns time of most recent access of *path* where path can be either a\nfile or directory. Raises *OSError* exception if *path* does not exist.\n\n.. code:: python\n\n >>> fs.atime('test.txt')\n 1428162423.839133\n\nfs.mtime(path)\n~~~~~~~~~~~~~~\n\nReturns time of most recent content modification of *path* where path\ncan be either a file or directory. Raises *OSError* exception if *path*\ndoes not exist.\n\n.. code:: python\n\n >>> fs.mtime('test.txt')\n 1427919315.960152\n\nfs.mode(path)\n~~~~~~~~~~~~~\n\nReturns permission mode of *path* where path can be either a file or\ndirectory. Raises *OSError* exception if *path* does not exist.\n\n.. code:: python\n\n >>> fs.mode('test.txt')\n 33252\n\nfs.rename(oldPath, newPath)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nRenames *oldPath* to new *newPath* where *oldPath* can be either a file\nor directory. Raises *OSError* exception if *oldPath* does not exist.\n\n.. code:: python\n\n >>> fs.rename('old_test.txt', 'new_test.txt')\n >>> fs.rename('old_directory', 'new_directory')\n\nfs.truncate(path)\n~~~~~~~~~~~~~~~~~\n\nRemoves all files from the *path* directory.\n\n.. code:: python\n\n >>> fs.truncate('some_directory')\n\nfs.chdir(path)\n~~~~~~~~~~~~~~\n\nChanges the current directory to *path*.\n\n.. code:: python\n\n >>> fs.chdir('some_directory')\n\nfs.chown(path, user=None, group=None)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nChanges the ownership of a path *path* to the owner *user* and group\n*group*. If *user* or *group* is *None*, the permission for this user or\ngroup stays unchanged. Raises *PermissionError* exception if the current\nuser is not allowed to change the permission. Raises *KeyError*\nexception if the user or group don't exist. Raises *FileNotFoundError*\nif *path* does not exist.\n\n.. code:: python\n\n >>> fs.chown('some_directory', user='ckoerner')\n >>> fs.chown('/var/www', group='www-data')\n\nfs.chmod(path, mode, op='+')\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSets the permissions *mode* of a path *path*.\n\n.. code:: python\n\n >>> fs.chmod('some_directory', 0o755)\n\nExample: *Add exectuable permission to a script run.sh*\n\n.. code:: python\n\n >>> import stat\n >>> fs.chmod('run.sh', fs.mode('run.sh') | stat.S_IEXEC)\n\nExample: *Set a 644 permission for a file keys.pem*\n\n.. code:: python\n\n >>> fs.chmod('keys.pem', 0o644)\n\nfs.addpath(path)\n~~~~~~~~~~~~~~~~\n\nAdds path *path* to the system path, so that modules can be imported\nfrom this path.\n\n.. code:: python\n\n >>> fs.addpath('/foo/bar')\n >>> import foo\n\nfs.link(srcPath, destPath)\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCreates a hard link from *srcPath* to *destPath*.\n\n.. code:: python\n\n >>> fs.link('/some/dir', 'linkhere')\n\nfs.symlink(srcPath, destPath)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCreates a symbolic link from *srcPath* to *destPath*.\n\n.. code:: python\n\n >>> fs.symlink('/some/dir/file', 'symlinkhere')\n\nfs.cwd()\n~~~~~~~~\n\nGet the current working directory.\n\n.. code:: python\n\n >>> fs.cwd()\n '/path/to/directory'\n\nfs.home()\n~~~~~~~~~\n\nGet the current home directory.\n\n.. code:: python\n\n >>> fs.home()\n '/home/ckoerner'\n\nfs.abspath(path)\n~~~~~~~~~~~~~~~~\n\nReturns the absolute path from a relative *path* where *path* can be\neither file or directory. Raises a *ValueError* if the directory *path*\ndoes not exist.\n\n.. code:: python\n\n >>> fs.abspath('test.txt')\n '/path/to/file/test.txt'\n >>> fs.abspath('some_directory')\n '/path/to/file/some_directory'\n\nfs.normalize(path)\n~~~~~~~~~~~~~~~~~~\n\nReturns the normalized path from a *path* where *path* can be either\nfile or directory.\n\n.. code:: python\n\n >>> fs.normalize('test_dir/../test/test.txt')\n 'test/test.txt'\n\nfs.rm(path)\n~~~~~~~~~~~\n\nDeletes the file *path*. Raises an *OSError* exception if the file does\nnot exist or *path* is a directory.\n\n.. code:: python\n\n >>> fs.rm('test.txt')\n\nThe Unix-like *fs.unlink* is the same as *fs.rm*.\n\nfs.rmdir(path, recursive=True)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDeletes the directory *path* with all containing files and directories.\nRaises an *OSError* exception if the directory does not exist or *path*\nis a file.\n\n.. code:: python\n\n >>> fs.rmdir('some_directory')\n\nfs.rmfiles(paths)\n~~~~~~~~~~~~~~~~~\n\nDeletes an array of files *paths*. Raises an *OSError* exception if a\nfile does not exist or an element of *paths* is a directory.\n\n.. code:: python\n\n >>> fs.rmfiles(['test.txt', 'another_file.txt'])\n\nExample: *Remove all files from the current directory*:\n\n.. code:: python\n\n >>> fs.rmfiles( fs.list() )\n\nExample: *Remove all .pyc files from a directory*:\n\n.. code:: python\n\n >>> fs.rmfiles( fs.find('*.pyc') )\n\nfs.rmdirs(paths, recursive=True)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDeletes an array of directories *paths* with all containing files and\ndirectories. Raises an *OSError* exception if a directory does not exist\nor an element of *paths* is a file.\n\n.. code:: python\n\n >>> fs.rmdirs(['some_directory', 'some_other_dir'])\n\nExample: *Remove all directories from the current directory*:\n\n.. code:: python\n\n >>> fs.rmdirs( fs.listdirs() )\n\nExample: *Remove all directories that start with local\\_*:\n\n.. code:: python\n\n >>> fs.rmdirs( fs.finddirs('local_*') )\n\nfs.touch(path)\n~~~~~~~~~~~~~~\n\nSets the modification timestamp of *path* to the current time or creates\nthe file if *path* does not exist. Directories not supported on Windows.\n\n.. code:: python\n\n >>> fs.touch('test.txt')\n\nfs.list(path='.')\n~~~~~~~~~~~~~~~~~\n\nGenerator that returns all files that are contained in the directory\n*path*. Raises an *OSError* exception if the directory *path* does not\nexist.\n\n.. code:: python\n\n >>> files = fs.list()\n >>> list(files)\n ['test.txt']\n >>> files = fs.list('some_directory')\n >>> list(files)\n ['/path/to/dir/some_directory/another_test.txt']\n\nExample: *Loop over all files in the current directory*:\n\n.. code:: python\n\n >>> for filename in fs.list():\n pass\n\nfs.listdirs(path='.')\n~~~~~~~~~~~~~~~~~~~~~\n\nGenerator that returns all directories that are contained in the\ndirectory *path*. Raises an *OSError* exception if the directory *path*\ndoes not exist.\n\n.. code:: python\n\n >>> dirs = fs.listdirs()\n >>> list(dirs)\n ['some_directory']\n >>> dirs = fs.listdirs('some_directory')\n >>> list(dirs)\n []\n\nExample: *Loop over all directories in the current directory*:\n\n.. code:: python\n\n >>> for dirname in fs.listdirs():\n pass\n\nfs.find(pattern, path='.', exclude=None, recursive=True)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nGenerator that returns all files that match *pattern* and are contained\nin the directory *path*. Both *pattern* and *exclude* can be `Unix\nshell-style\nwildcards `__ or\narrays of wildcards. Raises an *OSError* exception if the directory\n*path* does not exist.\n\n.. code:: python\n\n >>> files = fs.find('*.txt')\n >>> list(files)\n ['/path/to/file/test.txt', '/path/to/file/some_directory/another_test.txt']\n >>> files = fs.find('*.txt', exclude='another*')\n >>> list(files)\n ['/path/to/file/test.txt']\n\nExample: *Loop over all .csv files in the current directory*:\n\n.. code:: python\n\n >>> for filename in fs.find('*.csv', recursive=False):\n pass\n\nExample: *Loop over all .xls and .xlsx files in the current directory\nand all sub-directories*:\n\n.. code:: python\n\n >>> for filename in fs.find(['*.xls', '*.xlsx']):\n pass\n\nExample: *Loop over all .ini files in the config directory and all\nsub-directories except the ones starting with local\\_*:\n\n.. code:: python\n\n >>> for filename in fs.find('*.ini', path='config', exclude='local_*'):\n pass\n\nExample: *Find and get the Vagrantfile in the config directory*:\n\n.. code:: python\n\n >>> filename = next( fs.find('Vagrantfile', path='config'), None)\n\nExample: *Find the latest SQL file in the backups directory*:\n\n.. code:: python\n\n >>> filename = max( fs.find('*.sql', path='backup'), key=fs.ctime)\n\nfs.finddirs(pattern, path='.', exclude=None, recursive=True)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nGenerator that returns all directories that match *pattern* and are\ncontained in the directory *path*. Both *pattern* and *exclude* can be\n`Unix shell-style\nwildcards `__ or\narrays of wildcards. Raises an *OSError* exception if the directory\n*path* does not exist.\n\n.. code:: python\n\n >>> dirs = fs.finddirs('some*')\n >>> list(dirs)\n ['/path/to/file/some_directory']\n >>> dirs = fs.finddirs('some*', exclude='*directory')\n >>> list(dirs)\n []\n\nExample: *Loop over all .git directories in the current directory and\nall subdirectories*:\n\n.. code:: python\n\n >>> for dir in fs.finddirs('.git'):\n pass\n\nfs.open(path, mode='r')\n~~~~~~~~~~~~~~~~~~~~~~~\n\nReturns a `file\nobject `__\nof a file *path*. Raises an *IOError* exception if the file *path* does\nnot exist.\n\n.. code:: python\n\n >>> file = fs.open('text.txt')\n\nExample: *Loop through the lines of a file*\n\n.. code:: python\n\n >>> file = fs.open('config.ini', 'r')\n >>> for line in file:\n pass\n\nfs.write(path, content, encoding='UTF-8', append=False, raw=False)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWrites the content *content* of a file *path*.\n\n.. code:: python\n\n >>> fs.write('text.txt', 'test')\n\nExample: *Append content to a file*\n\n.. code:: python\n\n >>> fs.write('text.txt', 'test', append=True)\n\nExample: *Download an image from an url using\n`requests `__ and save it to\nlocal disc*:\n\n.. code:: python\n\n >>> import requests\n >>> res = requests.get(url, stream=True)\n >>> fs.write(path, res.raw, raw=True)\n\nfs.read(path, encoding='UTF-8')\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nReads and returns the content of a file *path*. Raises an *IOError*\nexception if the file *path* does not exist.\n\n.. code:: python\n\n >>> fs.read('text.txt')\n u'test'\n\nfs.put(path, obj)\n~~~~~~~~~~~~~~~~~\n\nWrites an object *obj* to a file *path*. Raises an *IOError* exception\nif the file *path* does not exist.\n\n.. code:: python\n\n >>> fs.put('array.dat', [1,2,3,4])\n\nExample: *Save a trained SVM classifier using\n`sklearn `__ to local disc*:\n\n.. code:: python\n\n >>> from sklearn import svm\n >>> X = [[0, 0], [1, 1]]\n >>> y = [0, 1]\n >>> clf = svm.SVC()\n >>> clf.fit(X, y)\n SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,\n kernel='rbf', max_iter=-1, probability=False, random_state=None,\n shrinking=True, tol=0.001, verbose=False)\n >>> fs.put('svm.dat', clf)\n\nfs.get(path, encoding='UTF-8')\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nReads and returns an object from a file *path*. Raises an *IOError*\nexception if the file *path* does not exist.\n\n.. code:: python\n\n >>> fs.get('array.dat')\n [1,2,3,4]\n\nExample: *Read a trained SVM classifier using\n`sklearn `__ from local disc*:\n\n.. code:: python\n\n >>> clf = fs.get('svm.dat')\n >>> clf.predict([[2., 2.]])\n array([1])\n\nfs.sep\n~~~~~~\n\nThe character used by the operating system to separate pathname\ncomponents. This is '/' for POSIX and '\\\\\\\\' for Windows.\n\n.. code:: python\n\n >>> fs.sep\n '/'\n\nfs.join(paths)\n~~~~~~~~~~~~~~\n\nJoins an array of *parts* with *fs.sep*.\n\n.. code:: python\n\n >>> fs.join([fs.sep, 'path', 'to', 'directory'])\n '/path/to/directory'\n\nAdditionally, you can also pass the path elements as arguments\n*fs.join(path, path, ...)*.\n\n.. code:: python\n\n >>> fs.join(fs.sep, 'path', 'to', 'directory')\n '/path/to/directory'\n\nfs.extname(path)\n~~~~~~~~~~~~~~~~\n\nReturns the extension name of a file *path*.\n\n.. code:: python\n\n >>> fs.extname('/path/to/file/test.txt')\n '.txt'\n\nfs.basename(path, ext=\"\")\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nReturns the base name of a file *path*.\n\n.. code:: python\n\n >>> fs.basename('/path/to/file/test.txt')\n 'test.txt'\n >>> fs.basename('/path/to/file/test.txt', '.txt')\n 'test'\n\nfs.dirname(path)\n~~~~~~~~~~~~~~~~\n\nReturns the directory name of a file *path*.\n\n.. code:: python\n\n >>> fs.dirname('/path/to/file/test.txt')\n '/path/to/file'\n\nfs.add\\_suffix(path, suffix=\"\")\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdds suffix to filename *path* and returns the new filename.\n\n.. code:: python\n\n >>> fs.add_suffix('/path/to/file/test.txt', suffix='_new')\n '/path/to/file/test_new.txt'\n\nfs.add\\_prefix(path, prefix=\"\")\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdds prefix to filename *path* and returns the new filename.\n\n.. code:: python\n\n >>> fs.add_prefix('/path/to/file/test.txt', prefix='new_')\n '/path/to/file/new_test.txt'\n\nChangelog\n---------\n\n0.0.8\n~~~~~\n\n- Added fs.add\\_suffix() and fs.add\\_prefix()\n\n0.0.7\n~~~~~\n\n- Added fs.addpath() to add a path to the system path\n- Added fs.basename(path, ext=False) to automatically return filename\n without extension\n\n0.0.6\n~~~~~\n\n- Added fs.home() to retrieve the home directory\n- Added fs.chown(), fs.chmod(), fs.link() and fs.symlink()\n- Added fs.mode() as shortcut for fs.stat(path).st\\_mode\n- Added fs.cd() alias for fs.chdir()\n\n0.0.5\n~~~~~\n\n- Added fs.put() to store object to disc\n- Added fs.get() to load object from disc\n\n0.0.4\n~~~~~\n\n- Fixed errors with fs.find() for recurive=False\n- Added tests for fs.find() and fs.finddirs()\n- Added coverage badge\n\n0.0.3\n~~~~~\n\n- Fixed python3 error with fs.read()\n- Added tests for fs.write() and fs.read()\n\n0.0.2\n~~~~~\n\n- Fixed installation error from missing README.md file\n\n0.0.1\n~~~~~\n\n- Initial upload to PyPi\n\nLicense\n-------\n\nThis software is provided under the MIT License.\n\n.. |Build Status| image:: https://travis-ci.org/chaosmail/python-fs.svg?branch=master\n :target: https://travis-ci.org/chaosmail/python-fs\n.. |Coverage Status| image:: https://coveralls.io/repos/chaosmail/python-fs/badge.svg\n :target: https://coveralls.io/r/chaosmail/python-fs\n.. |License| image:: http://img.shields.io/:license-mit-blue.svg\n :target: https://raw.githubusercontent.com/chaosmail/python-fs/master/LICENSE", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/chaosmail/python-fs/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/chaosmail/python-fs", "keywords": "fs,file system,filesystem,wrapper", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "pyfs", "package_url": "https://pypi.org/project/pyfs/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyfs/", "project_urls": { "Download": "https://github.com/chaosmail/python-fs/releases", "Homepage": "https://github.com/chaosmail/python-fs" }, "release_url": "https://pypi.org/project/pyfs/0.0.8/", "requires_dist": null, "requires_python": null, "summary": "a pythonic file system wrapper for humans", "version": "0.0.8" }, "last_serial": 1978149, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "31cf91a0178801b65a92d9536ab485b1", "sha256": "46db9438f13e9a3b76d620e2a25cc57350c77e107c6090d7642fd9929da4d240" }, "downloads": -1, "filename": "pyfs-0.0.1.tar.gz", "has_sig": false, "md5_digest": "31cf91a0178801b65a92d9536ab485b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4969, "upload_time": "2015-04-06T15:09:47", "url": "https://files.pythonhosted.org/packages/79/02/31399fcf0c169566d672af6ae2e81e59c48b138858c4a45615c9cc94f310/pyfs-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "656beb438e82c1b99029b47b7141f0dd", "sha256": "f8be4491b38c8d25add3ae9dd21032b95f4b959e658639089af7e2fa591c42b3" }, "downloads": -1, "filename": "pyfs-0.0.2.tar.gz", "has_sig": false, "md5_digest": "656beb438e82c1b99029b47b7141f0dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7253, "upload_time": "2015-04-06T15:17:59", "url": "https://files.pythonhosted.org/packages/08/ca/77f89cd039caaa593e768866e572c749e6823a0ba318ae3adf7ec53f6f6d/pyfs-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "41910f1ef39ca35bd18ae72274b07f20", "sha256": "2a458421dde3659ba998f68b47f018ab0c4d08b5e139f1ee3677c65de2aee660" }, "downloads": -1, "filename": "pyfs-0.0.3.tar.gz", "has_sig": false, "md5_digest": "41910f1ef39ca35bd18ae72274b07f20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7506, "upload_time": "2015-04-06T15:48:44", "url": "https://files.pythonhosted.org/packages/76/d2/06eff4eaf15ba1b5553d027034cb9033bd19199e5d076db44e87460ce91b/pyfs-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "e7d6ff88ba94ce0d0d94e02ebe7ec756", "sha256": "902f2577125826d4f3d8ea73d67abab88bdee9f50e91c4e8bc90fd930ea06b28" }, "downloads": -1, "filename": "pyfs-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e7d6ff88ba94ce0d0d94e02ebe7ec756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7729, "upload_time": "2015-04-12T10:19:58", "url": "https://files.pythonhosted.org/packages/90/a5/ef8acd40a1f168ce7f945d947c2b40f586fefb357fe78fca68e78cdfbfaf/pyfs-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "389e81ce39e88b495ed71c2f27fd7980", "sha256": "889d7da27f1a13f3d11fff056e1e076466faebc869aa075cb5ca78662adc2267" }, "downloads": -1, "filename": "pyfs-0.0.5.tar.gz", "has_sig": false, "md5_digest": "389e81ce39e88b495ed71c2f27fd7980", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8441, "upload_time": "2015-04-24T12:48:11", "url": "https://files.pythonhosted.org/packages/eb/7a/5f3e0c612f8e362562340127d25425411e293441b1b9203b01f08cd7d968/pyfs-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "7547f8590bd107720f6300bbe6680e56", "sha256": "f2e652361c8d013a2e9038c73b8ceb1d269e3b56f6a119b0c31101b6922c6c2c" }, "downloads": -1, "filename": "pyfs-0.0.6.tar.gz", "has_sig": false, "md5_digest": "7547f8590bd107720f6300bbe6680e56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9681, "upload_time": "2015-06-02T10:34:57", "url": "https://files.pythonhosted.org/packages/67/77/0be0c0511d1d751cfdc6969b3abda0256bf16a06eb244b8702534091f225/pyfs-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "910e8ad3c6fdab86597efb81c50a3a63", "sha256": "2a62e168e2db687f5a848bca7ae4caa7633881c62b32a4eb5060399fd109c03c" }, "downloads": -1, "filename": "pyfs-0.0.7.tar.gz", "has_sig": false, "md5_digest": "910e8ad3c6fdab86597efb81c50a3a63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9954, "upload_time": "2016-02-14T18:12:39", "url": "https://files.pythonhosted.org/packages/c8/8f/9606e6c43ec2024b71b9f414c249b5a8f8c3f2d9386152e9b8c12808d899/pyfs-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "da34d09bffa21c97920f65a2a70b8349", "sha256": "b7cfcc62f7afc9bb2b24d2582d74ab10b6c6062d394a04a87f3e6425123110a3" }, "downloads": -1, "filename": "pyfs-0.0.8.tar.gz", "has_sig": false, "md5_digest": "da34d09bffa21c97920f65a2a70b8349", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10250, "upload_time": "2016-02-26T14:41:15", "url": "https://files.pythonhosted.org/packages/77/5e/11b91835784f96ed184c71b28c3e2c9d45c3319728c80f9818d6e2596ed9/pyfs-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "da34d09bffa21c97920f65a2a70b8349", "sha256": "b7cfcc62f7afc9bb2b24d2582d74ab10b6c6062d394a04a87f3e6425123110a3" }, "downloads": -1, "filename": "pyfs-0.0.8.tar.gz", "has_sig": false, "md5_digest": "da34d09bffa21c97920f65a2a70b8349", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10250, "upload_time": "2016-02-26T14:41:15", "url": "https://files.pythonhosted.org/packages/77/5e/11b91835784f96ed184c71b28c3e2c9d45c3319728c80f9818d6e2596ed9/pyfs-0.0.8.tar.gz" } ] }