Skip to main content

Package that manages a state using memento design pattern

Project description

Brackette

project logo

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brackette-0.2.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

brackette-0.2.1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

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

Hashes for brackette-0.2.1.tar.gz
Algorithm Hash digest
SHA256 5f15423d948ae659c33a481f14fab5b6adb0005ed751dec52af618dcb7d6d2ed
MD5 f864396c915ea44062b4af8b2b3dd8c4
BLAKE2b-256 a147f360c52524fab64bf1d789d67d012b03a17921d6384b8dbf50be5c23c13e

See more details on using hashes here.

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

Hashes for brackette-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd18e56487018b5f8bbd9bd614171e4d05b6ab50913cd23f800d7d8d27ad9ce3
MD5 b3e40fe35bb3b6462ff3c8dae882738a
BLAKE2b-256 ff822ff259de9f0a22ba06ba84e8a06d8390c1fa3e525ef9f5cfa63ad864dce9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page