Probed collections
Project description
Probed collections
This project is part of the Pyrustic Open Ecosystem.
Overview
Sometimes you need to know when the content of a data collection has changed.
Probed is a library that exposes three classes: ProbedDict, ProbedList and ProbedSet.
These classes are containers like the built-in Python containers (dict, list, set) which they subclass but with not a twist but two twists:
- be notified when the content of your data collection changes (if you wish to be notified);
- being able to put a probe into data collection to do more than just be notified.
Let's write a script to see Probed in action:
# script.py
from probed import ProbedList
def on_change(context):
msg = "\nThe {} operation changed the {} collection\n{}"
print(msg.format(context.operation, context.container, context.collection))
plist = ProbedList(on_change=on_change)
plist.append("hi")
plist.insert(1, "friend")
Let's run the script:
$ python3 script.py
The append operation changed the list collection
['hi']
The insert operation changed the list collection
['hi', 'friend']
Now, let's discover what the probe feature does and how to use it:
# script.py
from probed import ProbedSet
def probe(context):
# this probe will lower strings added to the collection
# also, the object None isn't allowed in the collection
if context.operation == "add":
if context.item is None:
context = None
else:
context.item = context.item.lower()
return context
pset = ProbedSet(probe=probe)
# add items
pset.add("RED")
pset.add(None)
pset.add("Green")
# print
print(pset) # {'red', 'green'}
In the last script, the probe was used to control the items added to the data collection.
All operations that change the contents of the built-in containers are covered by probed.
Read the modules documentation !
Related project
The Shared data exchange and persistence library uses Probed to implement the autosave feature !
Discover Shared !
Installation
Probed is cross platform and versions under 1.0.0 will be considered Beta at best. It is built on Ubuntu with Python 3.8 and should work on Python 3.5 or newer.
For the first time
$ pip install probed
Upgrade
$ pip install probed --upgrade --upgrade-strategy eager
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 probed-0.0.11.tar.gz.
File metadata
- Download URL: probed-0.0.11.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.9.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.5.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2da4cc175a4d6d7b1baa9fcb313f4d4d61d861f36bd52bb5e4007e517070033c
|
|
| MD5 |
cb1c455861f73a5b66ce79b72d7041b1
|
|
| BLAKE2b-256 |
93d744f901075cfbf3c2b637d8a6d3931281716f39f38b603e1455231a02d348
|
File details
Details for the file probed-0.0.11-py3-none-any.whl.
File metadata
- Download URL: probed-0.0.11-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.9.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.5.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bb3c6d9da3712cbffca56340ed637a01619fa53d74887f90b39ada5a36d16c9
|
|
| MD5 |
f060a4721eb907f54275e0ca3fdd74ca
|
|
| BLAKE2b-256 |
60df9cea354033f125bc63147180afb8a1f7ea66762d49ff4c87f572a3bee65f
|