A Set implementation that tracks added and removed elements.
Project description
A Set implementation that tracks added and removed elements.
Usage
>>> from history_set import HistorySet
>>> history_set = HistorySet([1, 2, 3])
>>> history_set.add(4)
>>> history_set # Prints: {1, 2, 3, 4}
>>> history_set.added() # Prints: {4}
>>> history_set.remove(1)
>>> history_set # Prints: {2, 3, 4}
>>> history_set.removed() # Prints: {1}
>>> history_set.reset()
>>> history_set.added() # Prints: set()
>>> history_set.removed() # Prints: set()
Special case
By default, if an element is added and later removed, it will not be tracked in history
>>> history_set = HistorySet([1, 2, 3])
>>> history_set.add(4)
>>> history_set.remove(4)
>>> history_set.added() # Prints: set()
>>> history_set.removed() # Prints: set()
If you require these elements to be tracked, you can construct the object with the eidetic keyword argument
>>> history_set = HistorySet([1, 2, 3], eidetic=True)
>>> history_set.add(4)
>>> history_set.remove(4)
>>> history_set.added() # Prints: {4}
>>> history_set.removed() # Prints: {4}
By default, the reset() method will clear the entire history
>>> history_set = HistorySet([1, 2, 3])
>>> history_set.add(4)
>>> history_set.added() # Prints: {4}
>>> history_set.remove(2)
>>> history_set.removed() # Prints: {2}
>>> history_set.reset()
>>> history_set.added() # Prints: set()
>>> history_set.removed() # Prints: set()
If you require reseting only the added() or removed() history, you can call the reset method with added or removed booleans values to specify which history you with to reset
>>> history_set = HistorySet([1, 2, 3])
>>> history_set.add(4)
>>> history_set.added() # Prints: {4}
>>> history_set.remove(2)
>>> history_set.removed() # Prints: {2}
>>> history_set.reset(added=True)
>>> history_set.added() # Prints: set()
>>> history_set.removed() # Prints: {2}
Test
You can run the tests using tox
tox
Publish
To publish a new version of this package your Pypi user needt to be added to the project. (Ask Tjaart to give you access)
# Update version number in setup.py
python setup.py sdist
twine upload dist/*
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file history-set-0.1.5.tar.gz
.
File metadata
- Download URL: history-set-0.1.5.tar.gz
- Upload date:
- Size: 2.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8e163e2ae0f709fca0f19f6b0211349e34ec5b30ea82dd40d94acd388996795 |
|
MD5 | beebf1305b44a39f7e0310a3de0cd884 |
|
BLAKE2b-256 | 81beaa2167da61f7191580235fd55fea6a488a24eccf1ab84058e4a3bc59ee8a |