Socket
Socket
Sign inDemoInstall

weakreflist

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

weakreflist

A WeakList class for storing objects using weak references in a list.


Maintainers
1

weakreflist


.. image:: https://pypip.in/v/weakreflist/badge.png :target: https://pypi.python.org/pypi/weakreflist


A WeakList class for storing objects using weak references in a list.

Table of Contents

.. contents:: :local: :depth: 1 :backlinks: none

============= Installation

Install it from pypi::

pip install weakreflist

or from sources::

git clone git@github.com:apieum/weakreflist.git cd weakreflist python setup.py install

===== Usage

Same as a list except that when a weakref-able variable is deleted, it is removed from the list.

Example for CPython:

.. code-block:: python

  from weakreflist import WeakList

  class A(object):
      """weakrefs don't function directly on object()"""
  objectA = A()
  my_list = WeakList([objectA])
  assert len(my_list) == 1
  del objectA
  assert len(my_list) == 0 # objectA removed from list

Note: Pypy (probably jython, cython...) have a different implementation of garbage collector and it is known that weakrefs doesn't function the same way.

You need to explicitly call gc.collect() which has an impact on performance.

Example for other python implementations

.. code-block:: python

  from weakreflist import WeakList
  import gc

  class A(object):
      """weakrefs don't function directly on object()"""
  objectA = A()
  my_list = WeakList([objectA])
  assert len(my_list) == 1
  del objectA

  assert len(my_list) == 1 # gc not done
  gc.collect() # must be called
  assert len(my_list) == 0

=========== Development

Your feedback, code review, improvements or bugs, and help to document is appreciated. You can contact me by mail: apieum [at] gmail [dot] com

Test recommended requirements::

pip install -r dev-requirements.txt

Sometimes --spec-color doesn't function. Uninstall nosespec and nosecolor then reinstall nosecolor and nosespec separatly in this order (nosecolor first).

Launch tests::

git clone git@github.com:apieum/weakreflist.git cd weakreflist nosetests --with-spec --spec-color ./weakreflist

or with watch

nosetests --with-spec --spec-color --with-watch ./weakreflist

============ Contributors

Thanks to BoonsNaibot <https://github.com/BoonsNaibot>_ to have contributed to:

  • extended slicing support
  • __reversed__, count, extend, insert methods.

.. image:: https://secure.travis-ci.org/apieum/weakreflist.png?branch=master :target: https://travis-ci.org/apieum/weakreflist

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc