Hybrid Set
HybridSet is a MutableSet that stores apart hashable and unashable values.
It's fully compatible with the builtins set and frozenset
>>> from hybridset import HybridSet
>>> hs = HybridSet([3, 'thing', [True], {3, 4}, {1: 'one', 2: 'two'}])
>>> s = {3, 4, 5}
>>> s | hs
HybridSet(hashables={3, 4, 5, 'thing'}, unhashables=[[Ture], {3, 4}, {1: 'one', 2: 'two'}])
>>> s & hs
HybridSet(hashables={3})
Know Issues
Don't pass HybridSet instances to explicit methods of builtins, it may cause a TypeError
because of the unhashable values present in the HybridSet.
>>> hs = HybridSet([[6], [7]])
>>> s.union(hs)
Traceback (most recent call last):
...
TypeError: unhashable type: 'list'
>>> s.isdisjoint(hs)
Traceback (most recent call last):
...
TypeError: unhashable type: 'list'
Always use operators instead.
For isdisjoint(), test the emptiness of the intersection:
>>> if not s & hs:
... print('disjoint')
... else:
... print('not disjoint')
disjoint
For more information, see the class and methods docstrings.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hybridset-1.0.tar.gz
(16.5 kB
view details)
File details
Details for the file hybridset-1.0.tar.gz.
File metadata
- Download URL: hybridset-1.0.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b0ba972dccf02e585d8f75e0b80e17165978b27258a3c5d6b8ef245baa3b457
|
|
| MD5 |
b8872f2bde7fd28682d9192d216f62c1
|
|
| BLAKE2b-256 |
5bed2adf325300b136d542468420f1ce21bd85cf49bf1436326722593320e091
|