{ "info": { "author": "Dan Bradham", "author_email": "danielbradham@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://img.shields.io/github/license/danbradham/fsfs.svg?style=flat-square\n :target: https://github.com/danbradham/fsfs/blob/master/LICENSE\n :alt: License\n\n.. image:: https://img.shields.io/travis/danbradham/fsfs.svg?style=flat-square\n :target: https://travis-ci.org/danbradham/fsfs\n :alt: Travis\n\nfsfs\n====\nRead from and write data to folders on your file system.\n\n----------\n\nTake a peek at how it looks from Python:\n\n.. code-block:: python\n\n >>> import fsfs\n >>> fsfs.write('tmp/project_dir', start_frame=100, end_frame=200)\n >>> fsfs.read('tmp/project_dir') == {'end_frame': 200, 'start_frame': 100}\n True\n >>> import shutil; shutil.rmtree('tmp')\n\nand from the command line:\n\n.. code-block::\n\n $ mkdir tmp/project_dir\n $ cd tmp/project_dir\n $ fsfs write -k start_frame 100 -k end_frame 200\n $ fsfs read\n {\n 'start_frame': 100,\n 'end_frame': 200\n }\n\n\nFeatures\n========\n\n- Read from and write data to folders\n\n - pluggable data encoding with default implementations for json and yaml\n - supports blobs and files\n\n- Tag and Untag folders allowing quick lookup\n\n- Folders wrapped in `Entry` objects allows ORM-like patterns\n- Uses a factory to create `Entry` objects\n- Generates UUIDs for each folder you touch with *fsfs*\n\n - Allows *fsfs* to react to file system changes outside your program\n - Allows *fsfs* to relink `Entry` models\n\n\nWhy use *fsfs* instead of a database\n====================================\n\nCertain types of creative projects rely heavily on binary files output from\ncontent creation software and close management of the file system they reside\nin. In these cases maintaining a separate database to track your files and\nlocations can be tedious and can easily become out of sync.\n\nThis is exactly the problem *fsfs* is designed to address. *fsfs* stores your\ndata alongside your files, so when your files are reorganized their associated\ndata comes along for the ride.\n\n\nInstallation\n============\n\n.. code-block::\n\n $ pip install git+git://github.com/danbradham/fsfs.git\n\n\nTesting\n=======\n\n.. code-block::\n\n $ nosetests -v --with-doctest --doctest-extension=.rst\n\n\nInspiration\n===========\n*fsfs* is directly inspired by Abstract Factory's\n`openmetadata `_. The core\nconcept of fsfs is the same as openmetadata and the api is similar. However,\nfsfs follows a different design pattern allowing you to store data in any\nformat you like, and does not follow the openmetadata specification. fsfs\ncomes with encoders for json and yaml out of the box, and allows the storing\nof blobs and files.\n\n\nMore Documentation!\n===================\n`Visit the Full Documentation for an in depth Guide and API Documentation `_\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/fsfs.git", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "fsfs", "package_url": "https://pypi.org/project/fsfs/", "platform": "", "project_url": "https://pypi.org/project/fsfs/", "project_urls": { "Homepage": "http://github.com/fsfs.git" }, "release_url": "https://pypi.org/project/fsfs/0.3.0/", "requires_dist": [ "click", "fstrings", "scandir", "pyyaml", "bands" ], "requires_python": "", "summary": "Tag filesystem locations and store metadata", "version": "0.3.0" }, "last_serial": 5920723, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "c1f68f8518241907dc0ef177c6043fae", "sha256": "1be354e521a1b0f6b4b5b07885ad1fc448a639eabe7453f8972fde5a9c8cef28" }, "downloads": -1, "filename": "fsfs-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c1f68f8518241907dc0ef177c6043fae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28828, "upload_time": "2018-04-24T16:33:27", "url": "https://files.pythonhosted.org/packages/9e/03/0db6fd32384bcf7d9941bab51d1c31a5aa1ff1b2aeeed8d25e5a842a3606/fsfs-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99ad0fc9607ce67d1bbd788b4eee926a", "sha256": "a0386785946a9066cb845254df7cef2328966753890b67f1b362e71aa1008a29" }, "downloads": -1, "filename": "fsfs-0.2.0.tar.gz", "has_sig": false, "md5_digest": "99ad0fc9607ce67d1bbd788b4eee926a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22149, "upload_time": "2018-04-24T16:33:28", "url": "https://files.pythonhosted.org/packages/f7/2d/d5b80298ef0e4a2b5e446bc26c972f1a99702524e3adcb5bdf3e29e03c2e/fsfs-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "5a5d60b52c25d8b4a27f2601a5e598f8", "sha256": "ac864cb3dbe9f9ef6f9cf59c3b64e3c4b6f9c81017c6239506da48c1be511f22" }, "downloads": -1, "filename": "fsfs-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a5d60b52c25d8b4a27f2601a5e598f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28669, "upload_time": "2018-04-27T12:41:16", "url": "https://files.pythonhosted.org/packages/a2/2e/f4375255dd350e4cfca4c01ce660c439b7870c48ecc7be05af47670395b4/fsfs-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea50ecba9c1d7b10b298a37b95a2fd8d", "sha256": "8c630f0887f023bad541d0ac83c818bfd4358fce64d16c05e70eb87fddcec05b" }, "downloads": -1, "filename": "fsfs-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ea50ecba9c1d7b10b298a37b95a2fd8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22031, "upload_time": "2018-04-27T12:41:17", "url": "https://files.pythonhosted.org/packages/b7/de/570dfadab3ec1fc7ad68b1d2da567789d3d7e09394d5c6fef929227e0e0b/fsfs-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "5bde09cdae26a6344dc7897673910209", "sha256": "1edbae2754064004fdcf881a5e78b34ea1469e295f33b9bcf1b36c693253ac89" }, "downloads": -1, "filename": "fsfs-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5bde09cdae26a6344dc7897673910209", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27199, "upload_time": "2018-05-08T18:08:24", "url": "https://files.pythonhosted.org/packages/da/cb/5234133abaacb54df2115c8de69f59f32c8420e1d3307fdfbb06bcfa5fa5/fsfs-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf000ab1473d2f72c382ce6cfd231a61", "sha256": "76b30f62d942854d3ec76e0c9011d23a1d8d0d1d91050c44634a79c9cbd068c4" }, "downloads": -1, "filename": "fsfs-0.2.2.tar.gz", "has_sig": false, "md5_digest": "bf000ab1473d2f72c382ce6cfd231a61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22648, "upload_time": "2018-05-08T18:08:27", "url": "https://files.pythonhosted.org/packages/f9/eb/dfe2d8f07739a87b992a65d5ad049122f1ed9828edd05e2c721a3870f2c0/fsfs-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "12c146ffd0a7c5366fab3cdd41e6d329", "sha256": "d9744da7f63800b55afa7bc0ab38fb9c71a084373f9bed6151f0d741e3115d01" }, "downloads": -1, "filename": "fsfs-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "12c146ffd0a7c5366fab3cdd41e6d329", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27214, "upload_time": "2018-05-08T20:13:30", "url": "https://files.pythonhosted.org/packages/a4/cc/2dd28289bfce2b3ab9d0252586559c6106b3ac3d545d1e41be62683e02c3/fsfs-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6423f959459f1fd7ace871e6476e7cc", "sha256": "367d02ddc8044d3ebb7d503de78bb24f62ca4a66a4938ad33f7993226e382c03" }, "downloads": -1, "filename": "fsfs-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f6423f959459f1fd7ace871e6476e7cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24327, "upload_time": "2018-05-08T20:13:31", "url": "https://files.pythonhosted.org/packages/43/9f/7f8e24a085df8842ac41e36be752c4828276b1481b014b988ed8eb81b933/fsfs-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "8b03826eea3ccd3e43c0f75372f09c0d", "sha256": "bd71b6763a32fccfb26e53c932c9e389a211978b2549b0f680e192c6d72c8266" }, "downloads": -1, "filename": "fsfs-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b03826eea3ccd3e43c0f75372f09c0d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27277, "upload_time": "2018-05-09T22:31:25", "url": "https://files.pythonhosted.org/packages/ad/a1/1293dcda3f624eac9639b55f3ad8c3974bad1bb087dc564e0eddce74acf7/fsfs-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "101c3452272e958c5660e1eaee639014", "sha256": "861b17eec33ca4203ce7b373238017aed415b83ec083b4a80362ae15ba9c3502" }, "downloads": -1, "filename": "fsfs-0.2.4.tar.gz", "has_sig": false, "md5_digest": "101c3452272e958c5660e1eaee639014", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23635, "upload_time": "2018-05-09T22:31:26", "url": "https://files.pythonhosted.org/packages/12/ed/be0b914f1be57140667cf8d0eb2cbf7cb38263d6075f95014cbb5c91c299/fsfs-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "09f6e23a3ed977656e32478405daf070", "sha256": "84dcea90dde2e74cca90eabbefbe3889268ea6b587bbee42098c0f1058afbdf7" }, "downloads": -1, "filename": "fsfs-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "09f6e23a3ed977656e32478405daf070", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29689, "upload_time": "2018-11-30T13:54:31", "url": "https://files.pythonhosted.org/packages/3a/24/adec43af55d80a0898aab0dc947de37f5013c3d31faf9a942eac77ef9bcd/fsfs-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d15d2d9867088ad7a9510dfeb622ee0c", "sha256": "55d07c2360de45e804784e973ce9d69e11d9f4b2c89080a39b2f81fc5783da41" }, "downloads": -1, "filename": "fsfs-0.2.5.tar.gz", "has_sig": false, "md5_digest": "d15d2d9867088ad7a9510dfeb622ee0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22937, "upload_time": "2018-11-30T13:54:32", "url": "https://files.pythonhosted.org/packages/71/94/3054cf34c588cd6acd1232e68edb4e142f80d68400eaa982dfde592a460c/fsfs-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "b76f930cde13adf4a2acfcf464f940da", "sha256": "ddfaf5e284a289be6ba2820fe9b568c44eb02e7a5e745ed80bd8bd20434ed914" }, "downloads": -1, "filename": "fsfs-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b76f930cde13adf4a2acfcf464f940da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28677, "upload_time": "2019-03-17T23:32:15", "url": "https://files.pythonhosted.org/packages/1c/e9/7bbfa996b3def1e806c8011d43cd83fb005eccc9157eafed44d8b3aabf29/fsfs-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9e68c0d979ee1a1eebd54486d4025ac", "sha256": "6cd17e413b0535dee9209209ed005066d223a2de6e335b3eefebc6bbb0d321c6" }, "downloads": -1, "filename": "fsfs-0.2.6.tar.gz", "has_sig": false, "md5_digest": "a9e68c0d979ee1a1eebd54486d4025ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23457, "upload_time": "2019-03-17T23:32:17", "url": "https://files.pythonhosted.org/packages/f0/c8/f6bebead88d0229a362d39953379365fd3e7ebedcfff58bfd8e8cab33299/fsfs-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "a320b2a20a1b329fcb95ba37b155c7ef", "sha256": "211988d2d4b98ca7126e46ad53da965864bbb700ffc0115e5bf033aae645121f" }, "downloads": -1, "filename": "fsfs-0.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a320b2a20a1b329fcb95ba37b155c7ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28708, "upload_time": "2019-08-19T01:10:34", "url": "https://files.pythonhosted.org/packages/27/f8/0dc534c7009aa91177a2ac5ba4d477e425caec39f91e20e88d3bf97b5f01/fsfs-0.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0a8d8410aa96ad6d516ab0a01b55c4b", "sha256": "23cd5f974f0301fb9889fada553817cf657803c53a708c1d58e08aec712cf183" }, "downloads": -1, "filename": "fsfs-0.2.7.tar.gz", "has_sig": false, "md5_digest": "a0a8d8410aa96ad6d516ab0a01b55c4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23431, "upload_time": "2019-08-19T01:10:36", "url": "https://files.pythonhosted.org/packages/f7/5e/fb263da45c49484d7b1f912a21f11517011bedebadfad67189d001fd1d0b/fsfs-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "f3440beee3514a890f2b22aefb254815", "sha256": "bda3cb04ef59ddf2951d32f02ee0a74030fd95598299c699a59a9b45c1f22ca0" }, "downloads": -1, "filename": "fsfs-0.2.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f3440beee3514a890f2b22aefb254815", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28699, "upload_time": "2019-09-11T21:53:10", "url": "https://files.pythonhosted.org/packages/4c/4c/ca0fee48ddcb57a0c1496c19ed036bc195a9728100de9641461d468e3440/fsfs-0.2.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d17c6ff8a07aa2482ef170d10da43e0a", "sha256": "23366fe40b64fef8d1ac4e90a1284b560fbb19b3068991eed766d2c3f4be488e" }, "downloads": -1, "filename": "fsfs-0.2.8.tar.gz", "has_sig": false, "md5_digest": "d17c6ff8a07aa2482ef170d10da43e0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23385, "upload_time": "2019-09-11T21:53:12", "url": "https://files.pythonhosted.org/packages/f6/3b/9a7d49650f76c4465af9fafadf761336984514cc6ad96df042ff7492b3d8/fsfs-0.2.8.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "c4f71cb4c628a744f62fde573fdd3966", "sha256": "07bdfd70a20adcda98137dd0d2db6ecc273240311fbd05c08cd76d52c049181e" }, "downloads": -1, "filename": "fsfs-0.2.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c4f71cb4c628a744f62fde573fdd3966", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28721, "upload_time": "2019-10-01T19:03:56", "url": "https://files.pythonhosted.org/packages/4b/29/5209b61907b93045b41072dc8cdf916c74874959e50c107b1e8dc62adbfb/fsfs-0.2.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d7d7279f82629a78127f0af30ff621c", "sha256": "3af13d8b43ca0e5b979a452f77a6537a3ce11548bf02113829590ec7fa0cc281" }, "downloads": -1, "filename": "fsfs-0.2.9.tar.gz", "has_sig": false, "md5_digest": "9d7d7279f82629a78127f0af30ff621c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24768, "upload_time": "2019-10-01T19:03:58", "url": "https://files.pythonhosted.org/packages/d2/e8/9ae0ad4546840763a8fc31a611b9590a708111d89eeba84c9bc2f1970407/fsfs-0.2.9.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3bd4356e01b6bf720020bd920320722c", "sha256": "119390ad26302eead1947694c955a28c9ca6ba05ef6f01b0c9b2ef13f3ab9cfc" }, "downloads": -1, "filename": "fsfs-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3bd4356e01b6bf720020bd920320722c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28666, "upload_time": "2019-10-02T21:48:13", "url": "https://files.pythonhosted.org/packages/da/1e/58333c9b9efc59971753e8a23ff68112f5736676df36464575b37fefea64/fsfs-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d25ef70d9004b3ce1dafee931c336cba", "sha256": "0b6bd0ec0f58f0f87452cce8e86011702728daf9f526315c9174e8d4d2e5388d" }, "downloads": -1, "filename": "fsfs-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d25ef70d9004b3ce1dafee931c336cba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24732, "upload_time": "2019-10-02T21:48:14", "url": "https://files.pythonhosted.org/packages/e2/71/7721a8a81cef34c8727681f6864bcd98912bd3c36830a8da78d5ae6208cb/fsfs-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3bd4356e01b6bf720020bd920320722c", "sha256": "119390ad26302eead1947694c955a28c9ca6ba05ef6f01b0c9b2ef13f3ab9cfc" }, "downloads": -1, "filename": "fsfs-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3bd4356e01b6bf720020bd920320722c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28666, "upload_time": "2019-10-02T21:48:13", "url": "https://files.pythonhosted.org/packages/da/1e/58333c9b9efc59971753e8a23ff68112f5736676df36464575b37fefea64/fsfs-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d25ef70d9004b3ce1dafee931c336cba", "sha256": "0b6bd0ec0f58f0f87452cce8e86011702728daf9f526315c9174e8d4d2e5388d" }, "downloads": -1, "filename": "fsfs-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d25ef70d9004b3ce1dafee931c336cba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24732, "upload_time": "2019-10-02T21:48:14", "url": "https://files.pythonhosted.org/packages/e2/71/7721a8a81cef34c8727681f6864bcd98912bd3c36830a8da78d5ae6208cb/fsfs-0.3.0.tar.gz" } ] }