{ "info": { "author": "Aaron Schumacher", "author_email": "ajschumacher@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "====\ntset\n====\n\ntime set: all the states of a Python ``set`` data structure over time,\nwithout storing every complete version, and with nice 'as-of' (``at``)\naccess.\n\nImplementation: Currently stores the most recent version completely,\nso accessing the most recent version is not too slow. Accessing older\nversions is slower because it walks through the history. The whole\nthing will eventually slow down when there are tons of versions\nbecause it goes through all the version times fairly naively.\n\n\nUsage\n-----\n\n::\n\n > from tset import Tset\n > from datetime import datetime\n\n > beginning = datetime.now()\n > t = Tset(range(1,5))\n > middle = datetime.now()\n > t.value(range(3,8))\n\n > t.value()\n # {3, 4, 5, 6, 7}\n\n > t.value(at=middle)\n # {1, 2, 3, 4}\n\n > t.value(at=beginning)\n # {}\n\n\nTests\n-----\n\nRun the tests with ``nosetests`` or ``python -m test``.\n\n\nContext\n-------\n\nThe idea of preserving data history is not unique. There is a\nconsiderable work on `persistent data structures`_ (which is quite\ndistinct from the idea of persisting data to disk). Interesting\nrelated (and more comprehensive) implementations include `ZODB`_'s\n`Generational Sets`_, `dat`_, and `Datomic`_.\n\n.. _persistent data structures: http://en.wikipedia.org/wiki/Persistent_data_structure\n.. _ZODB: http://www.zodb.org/\n.. _Generational Sets: https://bitbucket.org/zc/generationalset\n.. _dat: http://dat-data.com/\n.. _Datomic: http://www.datomic.com/", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/ajschumacher/tset/tarball/0.1.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ajschumacher/tset", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "tset", "package_url": "https://pypi.org/project/tset/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tset/", "project_urls": { "Download": "https://github.com/ajschumacher/tset/tarball/0.1.1", "Homepage": "https://github.com/ajschumacher/tset" }, "release_url": "https://pypi.org/project/tset/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "time sets for Python", "version": "0.1.1" }, "last_serial": 1367120, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "cc8b04ced6d3c04a0c3f30f3a03fce01", "sha256": "541a1f13beec2d304e0a63968441dafb80e4e8dd839e03734a48af4e935ed4cf" }, "downloads": -1, "filename": "tset-0.1.tar.gz", "has_sig": false, "md5_digest": "cc8b04ced6d3c04a0c3f30f3a03fce01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1680, "upload_time": "2014-10-16T15:38:48", "url": "https://files.pythonhosted.org/packages/11/14/6876d7a71d94b80a887bfb84f9eff62615f14645da398627729764906caa/tset-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5bd18d9ed2e5e45b873c71141174ce13", "sha256": "7af737b201fed19fbe6606c335f2c6ecf0e41015e6fbe4606ea64ad8bccd9bac" }, "downloads": -1, "filename": "tset-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5bd18d9ed2e5e45b873c71141174ce13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3167, "upload_time": "2015-01-01T20:17:25", "url": "https://files.pythonhosted.org/packages/86/ea/63b86f917478fbee56fd38d730cff936e5e30b95f8012f7b535f408a042d/tset-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5bd18d9ed2e5e45b873c71141174ce13", "sha256": "7af737b201fed19fbe6606c335f2c6ecf0e41015e6fbe4606ea64ad8bccd9bac" }, "downloads": -1, "filename": "tset-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5bd18d9ed2e5e45b873c71141174ce13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3167, "upload_time": "2015-01-01T20:17:25", "url": "https://files.pythonhosted.org/packages/86/ea/63b86f917478fbee56fd38d730cff936e5e30b95f8012f7b535f408a042d/tset-0.1.1.tar.gz" } ] }