{ "info": { "author": "Jonathan Reichelt Gjertsen", "author_email": "jonath.re@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "## Memoizer\n\n### API\n\nA `Memoizer` can be used as a factory for creating objects of a certain class.\nIt exposes a constructor and 2 methods\n\n* `memoizer = Memoizer(SomeClass)`\n* `memoizer.get(*args, **kwargs)`\n * If `memoizer` has never seen the given arguments, it creates `SomeClass(*args, **kwargs)` and returns it.\n * If `memoizer` has seen the given arguments before, it returns the same instance that it returned the last time.\n* `memoizer.forget(*args, **kwargs)`\n * Makes `memoizer` forget that is has seen the given arguments.\n\n### Usage\n\nThe original application was for a `MeasurementQueue` class that processes incoming sensor data from many sensors,\nwhere the sensor ID's were not known ahead of time:\n\n```python\nqueue_manager = Memoizer(MeasurementQueue)\n\nfor sensor_id, data in event_stream():\n queue = queue_manager.get(sensor_id)\n queue.push(data)\n```\n\nWhen the first measurement comes in for a given sensor_id, a new `MeasurementQueue` will be created and returned for\nthat sensor. On subsequent events with the same sensor ID, the same `MeasurementQueue` instance will be\nused to process the data.\n\n## Installation\n\n`pip install classmemo`\n\nThe only dependencies are Python 3.6 and the frozendict package.\n\n## Contributing\n\n* Ensure the tests pass: `pytest .`\n* Format the code with `black . -t py36`\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/jonathangjertsen/classmemo", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "classmemo", "package_url": "https://pypi.org/project/classmemo/", "platform": "", "project_url": "https://pypi.org/project/classmemo/", "project_urls": { "Homepage": "https://github.com/jonathangjertsen/classmemo" }, "release_url": "https://pypi.org/project/classmemo/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Memoizer for classes", "version": "1.0.2" }, "last_serial": 5285682, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "015183345e2a80364d7266ebfcbcd48c", "sha256": "e6b1d2488b7890d589815f7974da76dcf5cc3d23b270df9a44d616ce2928af13" }, "downloads": -1, "filename": "classmemo-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "015183345e2a80364d7266ebfcbcd48c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2875, "upload_time": "2019-05-18T12:38:16", "url": "https://files.pythonhosted.org/packages/ae/43/ad4e5a8a52183540c278673aa8f2aad112580711212a95e7571d85c07516/classmemo-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f93c36fbe71e7cb9319571e45e067551", "sha256": "06365840b274b22bd3cce9e39b84c28448099b3dd852e20f05216ad00e74fc32" }, "downloads": -1, "filename": "classmemo-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f93c36fbe71e7cb9319571e45e067551", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2872, "upload_time": "2019-05-18T12:38:18", "url": "https://files.pythonhosted.org/packages/8b/c3/8c4c36d92a2d4a9ad785392b74f262abc172f2443d12ed9e004f9cfc4f34/classmemo-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2188fd2e16712b52fce24dec3db7f538", "sha256": "8a81c4955e9f0a8ad47050f9a89b0cfccad4ccc99b2ac2c693a0bae69f48e124" }, "downloads": -1, "filename": "classmemo-1.0.tar.gz", "has_sig": false, "md5_digest": "2188fd2e16712b52fce24dec3db7f538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1863, "upload_time": "2019-05-18T12:38:19", "url": "https://files.pythonhosted.org/packages/7a/17/1533066d3430c288ab972acbe733545e2d04104e1caa8ff6f23445fe1cc0/classmemo-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b88016c551c954279fb85fd1948125c4", "sha256": "80fe22440803c4327ab1086cb610986d89241e6a84d79b185e6133c4275bc11b" }, "downloads": -1, "filename": "classmemo-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b88016c551c954279fb85fd1948125c4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3587, "upload_time": "2019-05-18T12:45:07", "url": "https://files.pythonhosted.org/packages/2b/e2/ae2b04d44ef26b2cd9bf8efbcd80ca2a18aa2ffeaecbe573d8cb5b57f098/classmemo-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a68436f0a8db0bf0c8e4c1b41f7dc3f", "sha256": "ecd6abce2ffad7c3f892269050c9a09c890db5dbed5d4d67f66d831bcdaa9974" }, "downloads": -1, "filename": "classmemo-1.0.1.tar.gz", "has_sig": false, "md5_digest": "5a68436f0a8db0bf0c8e4c1b41f7dc3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2120, "upload_time": "2019-05-18T12:45:10", "url": "https://files.pythonhosted.org/packages/2a/33/2b3eef1fbf7c24691b37c65bb106af3248e290999e39bf35750077fda20b/classmemo-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "775f6bf743907f53b745b2c92a576d71", "sha256": "22d6e454d31f92372d0339bdbc94b5deae2b775c6e7942b4cb13c7ffdc2c1716" }, "downloads": -1, "filename": "classmemo-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "775f6bf743907f53b745b2c92a576d71", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3523, "upload_time": "2019-05-18T12:49:00", "url": "https://files.pythonhosted.org/packages/f5/de/2f7a2fd3643b830ecf45e14bf317043c531d5c3ae0f1dda7511ab4d4b68e/classmemo-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a83951991659390d4cc12d0f7795289", "sha256": "9e4004e86b40f674bf25bea03d265d0bddaa20d4798d8eb4e6403c884f069630" }, "downloads": -1, "filename": "classmemo-1.0.2.tar.gz", "has_sig": false, "md5_digest": "8a83951991659390d4cc12d0f7795289", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2047, "upload_time": "2019-05-18T12:49:01", "url": "https://files.pythonhosted.org/packages/dd/53/2fb4feb120f2b29f7205cee13c162a2ceec5e4ce0f26ee76d5d750aecfb4/classmemo-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "775f6bf743907f53b745b2c92a576d71", "sha256": "22d6e454d31f92372d0339bdbc94b5deae2b775c6e7942b4cb13c7ffdc2c1716" }, "downloads": -1, "filename": "classmemo-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "775f6bf743907f53b745b2c92a576d71", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3523, "upload_time": "2019-05-18T12:49:00", "url": "https://files.pythonhosted.org/packages/f5/de/2f7a2fd3643b830ecf45e14bf317043c531d5c3ae0f1dda7511ab4d4b68e/classmemo-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a83951991659390d4cc12d0f7795289", "sha256": "9e4004e86b40f674bf25bea03d265d0bddaa20d4798d8eb4e6403c884f069630" }, "downloads": -1, "filename": "classmemo-1.0.2.tar.gz", "has_sig": false, "md5_digest": "8a83951991659390d4cc12d0f7795289", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2047, "upload_time": "2019-05-18T12:49:01", "url": "https://files.pythonhosted.org/packages/dd/53/2fb4feb120f2b29f7205cee13c162a2ceec5e4ce0f26ee76d5d750aecfb4/classmemo-1.0.2.tar.gz" } ] }