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 Show documentation
Show all versions of jython 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)