{ "info": { "author": "Gr\u00e9gory Salvan", "author_email": "apieum@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Other Environment", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "***********\nweakreflist\n***********\n\n.. image:: https://pypip.in/v/weakreflist/badge.png\n :target: https://pypi.python.org/pypi/weakreflist\n\n---------------------------------------------------------------------\nA WeakList class for storing objects using weak references in a list.\n---------------------------------------------------------------------\n\n\n**Table of Contents**\n\n\n.. contents::\n :local:\n :depth: 1\n :backlinks: none\n\n\n=============\nInstallation\n=============\n\nInstall it from pypi::\n\n pip install weakreflist\n\nor from sources::\n\n git clone git@github.com:apieum/weakreflist.git\n cd weakreflist\n python setup.py install\n\n=====\nUsage\n=====\nSame as a *list* except that when a weakref-able variable is deleted, it is removed from the list.\n\n**Example for CPython:**\n\n .. code-block:: python\n\n from weakreflist import WeakList\n\n class A(object):\n \"\"\"weakrefs don't function directly on object()\"\"\"\n objectA = A()\n my_list = WeakList([objectA])\n assert len(my_list) == 1\n del objectA\n assert len(my_list) == 0 # objectA removed from list\n\n\n*Note:*\n Pypy (probably jython, cython...) have a different implementation of garbage collector and it is known that weakrefs doesn't function the same way.\n\n You need to explicitly call gc.collect() which has an impact on performance.\n\n**Example for other python implementations**\n\n .. code-block:: python\n\n from weakreflist import WeakList\n import gc\n\n class A(object):\n \"\"\"weakrefs don't function directly on object()\"\"\"\n objectA = A()\n my_list = WeakList([objectA])\n assert len(my_list) == 1\n del objectA\n\n assert len(my_list) == 1 # gc not done\n gc.collect() # must be called\n assert len(my_list) == 0\n\n\n===========\nDevelopment\n===========\n\nYour feedback, code review, improvements or bugs, and help to document is appreciated.\nYou can contact me by mail: apieum [at] gmail [dot] com\n\nTest recommended requirements::\n\n pip install -r dev-requirements.txt\n\nSometimes --spec-color doesn't function. Uninstall nosespec and nosecolor then reinstall nosecolor and nosespec separatly in this order (nosecolor first).\n\nLaunch tests::\n\n git clone git@github.com:apieum/weakreflist.git\n cd weakreflist\n nosetests --with-spec --spec-color ./weakreflist\n # or with watch\n # nosetests --with-spec --spec-color --with-watch ./weakreflist\n\n\n\n============\nContributors\n============\n\nThanks to `BoonsNaibot `_ to have contributed to:\n * extended slicing support\n * \\_\\_reversed\\_\\_, count, extend, insert methods.\n\n\n\n.. image:: https://secure.travis-ci.org/apieum/weakreflist.png?branch=master\n :target: https://travis-ci.org/apieum/weakreflist", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.python.org/pypi/weakreflist", "keywords": "", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "weakreflist", "package_url": "https://pypi.org/project/weakreflist/", "platform": "", "project_url": "https://pypi.org/project/weakreflist/", "project_urls": { "Homepage": "http://www.python.org/pypi/weakreflist" }, "release_url": "https://pypi.org/project/weakreflist/0.4/", "requires_dist": null, "requires_python": "", "summary": "A WeakList class for storing objects using weak references in a list.", "version": "0.4" }, "last_serial": 2761435, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d4151d611f8c9f3ddf89e499719cec0f", "sha256": "ed546f10dbcfcf6c25298a28c5b6ab22ad83a1125247f017dcca4bdeeb7b46db" }, "downloads": -1, "filename": "weakreflist-0.1.tar.gz", "has_sig": false, "md5_digest": "d4151d611f8c9f3ddf89e499719cec0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2299, "upload_time": "2012-11-21T08:51:03", "url": "https://files.pythonhosted.org/packages/30/27/6119e8d1e7ca7592b8962edc372357a14f85fc049371e4db96990567f3d9/weakreflist-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "581f089d292dfeb12bdc02737c3b0005", "sha256": "9cfc33a6a205bb9310e9dc9a1c5ffaf85c9850d7ceacabc3b937bde427074cfa" }, "downloads": -1, "filename": "weakreflist-0.2.tar.gz", "has_sig": false, "md5_digest": "581f089d292dfeb12bdc02737c3b0005", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2563, "upload_time": "2013-02-10T16:21:55", "url": "https://files.pythonhosted.org/packages/0d/a1/46a8d5422c1e152ff98fdeddc0d80f0304ebd5de8d69a0707bf8bdcc835c/weakreflist-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "4d6df7867f46a62a874827bb00ac39ba", "sha256": "253ff045bceb7d4c081cfd9989c75f691d726921b95bd8340c23fe3fce0d8664" }, "downloads": -1, "filename": "weakreflist-0.3.tar.gz", "has_sig": false, "md5_digest": "4d6df7867f46a62a874827bb00ac39ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6460, "upload_time": "2014-08-30T14:14:37", "url": "https://files.pythonhosted.org/packages/b3/83/1890eac65f309e6df9b75178ebda759df5e55080887ecad20e48824ff9c1/weakreflist-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "deea3d9c1f95c1c91cd21ab62336259d", "sha256": "16fd6d8c81a0b264c436df91cf19e37a3f8162a0b1e140f94c8a1e460d6ed1af" }, "downloads": -1, "filename": "weakreflist-0.3.1.tar.gz", "has_sig": false, "md5_digest": "deea3d9c1f95c1c91cd21ab62336259d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6490, "upload_time": "2014-08-31T01:18:49", "url": "https://files.pythonhosted.org/packages/28/c8/1eab20c31f22ebc9fa2f7ee4ebf657e2c154712900838bf7254cbcea3e2f/weakreflist-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "fb424b900f67e2ad2584c4af29c24498", "sha256": "28bb41d87b8d4ae9ca9c388ef322c6f4473346d54985863d41ba4f29ba797a09" }, "downloads": -1, "filename": "weakreflist-0.4.tar.gz", "has_sig": false, "md5_digest": "fb424b900f67e2ad2584c4af29c24498", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7545, "upload_time": "2017-04-07T23:03:05", "url": "https://files.pythonhosted.org/packages/22/1b/d4716e0f52f026c8620a0c973a64907934068c41195cf18a9e123eae3066/weakreflist-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fb424b900f67e2ad2584c4af29c24498", "sha256": "28bb41d87b8d4ae9ca9c388ef322c6f4473346d54985863d41ba4f29ba797a09" }, "downloads": -1, "filename": "weakreflist-0.4.tar.gz", "has_sig": false, "md5_digest": "fb424b900f67e2ad2584c4af29c24498", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7545, "upload_time": "2017-04-07T23:03:05", "url": "https://files.pythonhosted.org/packages/22/1b/d4716e0f52f026c8620a0c973a64907934068c41195cf18a9e123eae3066/weakreflist-0.4.tar.gz" } ] }