Package that manages a state using memento design pattern
Project description
Brackette
A simple state manager implementing the memento design pattern and heavily based on the tutorial from refactoring.guru.
The brackette (a bracket-cassette) logo was scribbled by @PostSin on slatepacks.com marketplace for which I paid 2ツ (ツ is grin cryptocurrency) and it was best deal ever!
from brackette.memento import Originator, Caretaker
originator = Originator()
caretaker = Caretaker(originator)
originator.do_stuff('hello')
print(originator._state)
print(originator._hash)
caretaker.backup()
originator.do_stuff('meoreo')
print(originator._state)
print(originator._hash)
caretaker.backup()
originator.do_stuff('kinda')
print(originator._state)
print(originator._hash)
caretaker.backup()
caretaker.undo()
print(originator._state)
print(originator._hash)
caretaker.undo()
print(originator._state)
print(originator._hash)
caretaker.redo()
print(originator._state)
print(originator._hash)
caretaker.undo()
print(originator._state)
print(originator._hash)
caretaker.show_history()
outputs
hello
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
meoreo
bbba0753c25637757dd58e943bf8089f66aa5a408cc1764458230e3112ab41e1
kinda
29f0e99be96b1bf5bfb5902b10171f4b7d8135fe205fc8c94b81754c0d661513
meoreo
bbba0753c25637757dd58e943bf8089f66aa5a408cc1764458230e3112ab41e1
hello
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
meoreo
bbba0753c25637757dd58e943bf8089f66aa5a408cc1764458230e3112ab41e1
hello
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Caretaker: Here's the list of past mementos:
2021-04-27 14:25:43 UTC 6411ee087bfe7ce14043d451748b5199ef7ccaa42aa6e0f8ab2c63de94281c7d
Caretaker: Here's the list of future mementos:
2021-04-27 14:25:43 UTC 2783de246149f2cfec85bf718a938ddcb0c1bdad249afc56f53882c6de3f8475
2021-04-27 14:25:43 UTC 0a14b4c21ac263fe47312f688975fc1022feb531db396dca9eb9ed0571f862ee
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file brackette-0.2.1.tar.gz.
File metadata
- Download URL: brackette-0.2.1.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f15423d948ae659c33a481f14fab5b6adb0005ed751dec52af618dcb7d6d2ed
|
|
| MD5 |
f864396c915ea44062b4af8b2b3dd8c4
|
|
| BLAKE2b-256 |
a147f360c52524fab64bf1d789d67d012b03a17921d6384b8dbf50be5c23c13e
|
File details
Details for the file brackette-0.2.1-py3-none-any.whl.
File metadata
- Download URL: brackette-0.2.1-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd18e56487018b5f8bbd9bd614171e4d05b6ab50913cd23f800d7d8d27ad9ce3
|
|
| MD5 |
b3e40fe35bb3b6462ff3c8dae882738a
|
|
| BLAKE2b-256 |
ff822ff259de9f0a22ba06ba84e8a06d8390c1fa3e525ef9f5cfa63ad864dce9
|