Skip to content

Releases: waggle-sensor/pywaggle

0.52.0

03 Jan 22:36
a61794c
Compare
Choose a tag to compare

This release primarily fixes internal details of the plugin package and should not affect most users' code.

The only exception to this is that some accidental exports have been cleaned up. For example, it was possible to import pathlib's Path from waggle.plugin. This is no longer possible.

0.51.1

14 Dec 18:30
Compare
Choose a tag to compare
added backward compatible support for Plugin.timeit

0.51.0

10 Dec 21:53
Compare
Choose a tag to compare

Added Plugin.timeit helper function. This helper can measure and publish the duration of blocks of code using:

from waggle.plugin import Plugin

with Plugin() as plugin:
    # measures duration of input block and publishes to plugin.duration.input
    with plugin.timeit("plugin.duration.input"):
        get_inputs(...)

    # measures duration of inference block and publishes to plugin.duration.inference
    with plugin.timeit("plugin.duration.inference"):
        do_inference(...)

    publish_results(...)

0.50.1

09 Dec 19:40
Compare
Choose a tag to compare

Bug fix: Plugin will attempt to flush queued messages when exiting with block. This helps avoid message loss in the one shot case and on exceptions.

0.50.0

09 Dec 16:46
258f4e1
Compare
Choose a tag to compare

Added context manager support to Plugin. Users are now encourage to move to the following safer alternative to plugin.init:

from waggle.plugin import Plugin

with Plugin() as plugin:
    # do cool stuff here!

0.49.0

06 Dec 18:10
Compare
Choose a tag to compare
added rich html representation of image and audio data when used in j…

0.48.0

29 Nov 19:15
Compare
Choose a tag to compare
  • Camera now support file:// URLs allowing local files to be provided in the same way as other URLs / names. For example:
# for deployment
with Camera("left") as camera:
    # do work

# for testing
with Camera("file://path/to/test.jpg") as camera:
    # do work

This also allows device input to be specified more uniformly when using args. For example:

# pass camera on node
python3 main.py --input left

# pass local file
python3 main.py --input file://path/to/test.jpg

0.47.0

19 Nov 19:44
Compare
Choose a tag to compare

This release allows you to manage Camera in your own context . You can now safely do:

with Camera(device) as camera:
    frame1 = camera.snapshot()
    frame2 = camera.snapshot()
    # ... do something cool with frames ...

This change also fixes the behavior of snapshot returning the same frame when passing Camera a video file.

To maintain resource safety by default, we still support:

camera = Camera(device)

# will safely open / close camera
frame1 = camera.snapshot()

# will safely open / close camera
frame2 = camera.snapshot()

# ... do something cool with frames ...

Breaking change: We have dropped the dropframes flag to snapshot. We recommend using the new context approach and manually taking a few snapshots, if needed.

0.46.4

14 Oct 20:24
Compare
Choose a tag to compare

Bug fix: Non-serializable data types were able to throw exceptions silently in the background thread.

0.46.3

28 Sep 19:13
Compare
Choose a tag to compare
AudioSample and ImageSample accept PathLike path.