Lib._weakrefset.py Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jython-installer Show documentation
Show all versions of jython-installer Show documentation
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
# Access WeakSet through the weakref module.
# This code is separated-out because it is needed
# by abc.py to load everything else at startup.
from java.util import WeakHashMap
from java.util.Collections import newSetFromMap, synchronizedMap
from jythonlib import set_builder, MapMaker
__all__ = ['WeakSet']
class WeakSet(set):
def __new__(cls, data=None):
def _build():
# Although not specified in the docs, WeakSet supports equality on
# keys, as seen in test_weakset and its use of testing class
# SomeClass. Therefore we cannot use MapMaker in this case.
return newSetFromMap(synchronizedMap(WeakHashMap()))
return set_builder(_build, cls)(data)