{ "info": { "author": "Andreas @blackhc Kirsch", "author_email": "blackhc+laaos@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Log as append-only source package\n\n[![Build Status](https://travis-ci.org/BlackHC/laaos.svg?branch=master)](https://travis-ci.org/BlackHC/laaos)\n\nLogs as append-only source: write your ML training results in Python without having to worry about crashes. Loading is a breeze: the logs are native Python code. The package supports unstructured data. The data can easily be imported into Jupyter Notebooks or elsewhere.\n\n## Installation\n\nTo install using pip, use:\n\n```\npip install blackhc.laaos\n```\n\nTo run the tests, use:\n\n```\npython setup.py test\n```\n\n## Append-only source logs\n\nStoring training results as Python dictionaries or JSON files is problematic because the formats are not append-only, \nwhich means that you have to rewrite the file every time something changes. (Or you only write results at the end, \nwhich does not play well with interruptions or intermediate failures.)\n\nAlternatively, we can simply write the operations that create a structure to a file in an append-only fashion.\nIf the data structure itself is growing and not mutated, this only increases file-size by a constant factor.\n\nThe advantage of this library is that the file format is very simple: it's valid Python code.\n\nThe only requirement is that you only store primitive types, lists, sets, dicts and immutable types.\n\nCustom wrappers can be added by registering `TypeHandler`s when creating a `Store`. See `WeakEnumHandler` and `StrEnumHandler`.\n\n## Example\n\n```python\nfrom blackhc.laaos import create_file_store, safe_load_store\nstore = create_file_store('test', suffix='')\n\nstore['losses'] = []\nlosses = store['losses']\n\nfor i in range(1, 10):\n losses.append(1/i)\n\nstore.close()\n```\n\nThe resulting file `laaos/test.py` contains valid Python code:\n\n```python\nstore = {}\nstore['losses']=[]\nstore['losses'].append(1.0)\nstore['losses'].append(0.5)\nstore['losses'].append(0.3333333333333333)\nstore['losses'].append(0.25)\nstore['losses'].append(0.2)\nstore['losses'].append(0.16666666666666666)\nstore['losses'].append(0.14285714285714285)\nstore['losses'].append(0.125)\nstore['losses'].append(0.1111111111111111)\n```\n\nIt can be loaded either with:\n\n```python\nform laaos.test import store\n```\n\nor with the more secure:\n\n```python\nsafe_load('laaos/test.py')\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/blackhc/laaos", "keywords": "logging", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "blackhc.laaos", "package_url": "https://pypi.org/project/blackhc.laaos/", "platform": "", "project_url": "https://pypi.org/project/blackhc.laaos/", "project_urls": { "Homepage": "https://github.com/blackhc/laaos" }, "release_url": "https://pypi.org/project/blackhc.laaos/1.0.0/", "requires_dist": [ "check-manifest; extra == 'dev'", "coverage; extra == 'test'", "pytest; extra == 'test'" ], "requires_python": "", "summary": "\"Log as append-only source\" logger", "version": "1.0.0" }, "last_serial": 5339271, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d04193d801cbbf854953d4e12732197e", "sha256": "0a9688d5aa7b9301fa58950a11b987baa7a78cbd2fbac91f57e352ad66aef947" }, "downloads": -1, "filename": "blackhc.laaos-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d04193d801cbbf854953d4e12732197e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5095, "upload_time": "2018-12-10T22:42:25", "url": "https://files.pythonhosted.org/packages/bd/34/4bd902d5aa4333941983b184f0acb14c8661dc0b016f7dd1183ae86b94d4/blackhc.laaos-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8aa4f698d8f12cdab8bbd92d1fe74cd3", "sha256": "b1b5525e99619d9475366a19899e12a4f493612cbfab5d4ad85d46c689c7de5d" }, "downloads": -1, "filename": "blackhc.laaos-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8aa4f698d8f12cdab8bbd92d1fe74cd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4921, "upload_time": "2018-12-10T22:42:27", "url": "https://files.pythonhosted.org/packages/37/d8/ca157d98232253b6f404939b9e570c4aa332d39e630fb52c099976cc3fa1/blackhc.laaos-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "84886d69c2ea9f5bcf10e2200c88d2ac", "sha256": "3bf3f5e3720f56be8b0296a3a3137c8de6da31e86aac961948bfa81ca9fd9e58" }, "downloads": -1, "filename": "blackhc.laaos-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "84886d69c2ea9f5bcf10e2200c88d2ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5265, "upload_time": "2019-01-04T18:29:13", "url": "https://files.pythonhosted.org/packages/ab/15/528d170ad7ba7131e3b91f9fbc06309bb0418b64a9e96d70e17c3a32a887/blackhc.laaos-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76236e30fa6fe1a27151723078fb506f", "sha256": "5ea79e86f2a825ad380c47d20c2c7a3a3075dd462ac76e2e67661a8d550be74e" }, "downloads": -1, "filename": "blackhc.laaos-0.0.2.tar.gz", "has_sig": false, "md5_digest": "76236e30fa6fe1a27151723078fb506f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5153, "upload_time": "2019-01-04T18:29:15", "url": "https://files.pythonhosted.org/packages/84/63/99de8f4d9adf3104eb6dd374f068951fbe2e4cc5deb0330445f197456595/blackhc.laaos-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "d0d40ac1b96fdd3126afce8874d0f09e", "sha256": "2139ce1f111ffc77be71fcb0122cbe38d8db466c9aff06622f047907aa4694f2" }, "downloads": -1, "filename": "blackhc.laaos-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d0d40ac1b96fdd3126afce8874d0f09e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5483, "upload_time": "2019-03-08T16:31:26", "url": "https://files.pythonhosted.org/packages/56/82/2f395997aae7a37c6357c04b38f8ff94573f3d963d2b9598ab624b1a1f0b/blackhc.laaos-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ccebea68d3661f564c6df2178823facc", "sha256": "06009daa45c91e7b483f16ccf022e626f48f25657087d8dee3644193efc23f73" }, "downloads": -1, "filename": "blackhc.laaos-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ccebea68d3661f564c6df2178823facc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5313, "upload_time": "2019-03-08T16:30:45", "url": "https://files.pythonhosted.org/packages/e7/22/8c7950bd6f4e89a672ac6889bc66268d5e0297b74bb5122422c13ca2dbdc/blackhc.laaos-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "e57a7910368a787ae6c5843ac74a00e2", "sha256": "d91914b14e2b6f7cf8b1d16c8fd2b2a26a8b121edfcc8f134748be9b85807ca9" }, "downloads": -1, "filename": "blackhc.laaos-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e57a7910368a787ae6c5843ac74a00e2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5912, "upload_time": "2019-04-18T20:34:17", "url": "https://files.pythonhosted.org/packages/26/48/8c999d5384102e2b8116152106eb3a834b5376eaf05aa6c4962d5cdf7dfb/blackhc.laaos-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "05b29d0ca903ee54e28fc0d63ec0adb2", "sha256": "1fe84444d8690e67de6da2ba344144e0cf5f24e3a79fc8bccf63f0af00acc581" }, "downloads": -1, "filename": "blackhc.laaos-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "05b29d0ca903ee54e28fc0d63ec0adb2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5956, "upload_time": "2019-04-29T19:35:58", "url": "https://files.pythonhosted.org/packages/1e/1e/5d467d6376b0382d86829bf8b504c638c28e71191b597fd58924eb0295f4/blackhc.laaos-0.1.1-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "adfc02a4bc3b6690fa731e7ef0e21d93", "sha256": "d75147c6b844886a316f1341eeecdad88c6b35614630abeabcda2fa166b30d78" }, "downloads": -1, "filename": "blackhc.laaos-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "adfc02a4bc3b6690fa731e7ef0e21d93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5958, "upload_time": "2019-05-03T09:18:28", "url": "https://files.pythonhosted.org/packages/21/c1/ad13bf214d235b67b761142a38a7593f8173ab5f78defe09de8d89137486/blackhc.laaos-0.1.2-py3-none-any.whl" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "0f38b1e4dff3f1c11272b434891eec42", "sha256": "e6d0dae6c55621c9bc19a8f5f91e98b1b1778f3a5ea6269c5f9f6619a515bbeb" }, "downloads": -1, "filename": "blackhc.laaos-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f38b1e4dff3f1c11272b434891eec42", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5609, "upload_time": "2019-05-30T19:50:33", "url": "https://files.pythonhosted.org/packages/e5/e5/36b2e2e3db89fa167f059cdcb4b36e0ef45429bc4140aea8a20c09ffd3a1/blackhc.laaos-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0904c3924fc6c14652ab62482a93657", "sha256": "18ccce4e0173d72065704a8b76a12d0ec926849d1c75f9c35748e02cba4758d3" }, "downloads": -1, "filename": "blackhc.laaos-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a0904c3924fc6c14652ab62482a93657", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6240, "upload_time": "2019-05-30T19:50:35", "url": "https://files.pythonhosted.org/packages/69/2b/eaccca758febaa9c2a4f45b660e52455ba5584722c2a88794d9e36a6f3ee/blackhc.laaos-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f38b1e4dff3f1c11272b434891eec42", "sha256": "e6d0dae6c55621c9bc19a8f5f91e98b1b1778f3a5ea6269c5f9f6619a515bbeb" }, "downloads": -1, "filename": "blackhc.laaos-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f38b1e4dff3f1c11272b434891eec42", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5609, "upload_time": "2019-05-30T19:50:33", "url": "https://files.pythonhosted.org/packages/e5/e5/36b2e2e3db89fa167f059cdcb4b36e0ef45429bc4140aea8a20c09ffd3a1/blackhc.laaos-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0904c3924fc6c14652ab62482a93657", "sha256": "18ccce4e0173d72065704a8b76a12d0ec926849d1c75f9c35748e02cba4758d3" }, "downloads": -1, "filename": "blackhc.laaos-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a0904c3924fc6c14652ab62482a93657", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6240, "upload_time": "2019-05-30T19:50:35", "url": "https://files.pythonhosted.org/packages/69/2b/eaccca758febaa9c2a4f45b660e52455ba5584722c2a88794d9e36a6f3ee/blackhc.laaos-1.0.0.tar.gz" } ] }