Skip to main content

Probed collections

Project description

Probed collections

This project is part of the Pyrustic Open Ecosystem.

Installation . Latest . Documentation

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



Back to top

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

probed-0.0.11.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

probed-0.0.11-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

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

Hashes for probed-0.0.11.tar.gz
Algorithm Hash digest
SHA256 2da4cc175a4d6d7b1baa9fcb313f4d4d61d861f36bd52bb5e4007e517070033c
MD5 cb1c455861f73a5b66ce79b72d7041b1
BLAKE2b-256 93d744f901075cfbf3c2b637d8a6d3931281716f39f38b603e1455231a02d348

See more details on using hashes here.

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

Hashes for probed-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 3bb3c6d9da3712cbffca56340ed637a01619fa53d74887f90b39ada5a36d16c9
MD5 f060a4721eb907f54275e0ca3fdd74ca
BLAKE2b-256 60df9cea354033f125bc63147180afb8a1f7ea66762d49ff4c87f572a3bee65f

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