Block Library
- class reip.blocks.misc.Iterator(iterator, **kw)[source]
Yield each element in an iterator one at a time.
- class reip.blocks.misc.Glob(*paths, recursive=True, atonce=False, **kw)[source]
Outputs files matching glob patterns.
- class reip.blocks.misc.AsDict(*columns, prepare=<function AsDict.<lambda>>, meta=None, **kw)[source]
Merge block outputs into a dict.
- class reip.blocks.misc.Increment(start=None, stop=None, step=1, **kw)[source]
Yield an incrementing (or decrementing) value.
- class reip.blocks.misc.Debug(message=None, level=None, convert=None, value=False, compact=False, summary=False, period=None, name=None, border=False, log_level=None, **kw)[source]
Debug the output of a block.
- class reip.blocks.misc.Results(squeeze=True, **kw)[source]
Gather the results in lists as self.results and self.meta
- class reip.blocks.misc.Lambda(func=None, name=None, init=None, finish=None, n_inputs=None, **kw)[source]
An inline way to create a block from a regular function. Input and output formats are the same.
- class reip.blocks.misc.Interleave(sort_key=None, **kw)[source]
Interleave the block inputs to a single output.
- class reip.blocks.misc.Separate(bins, **kw)[source]
Separate out a single input into multiple outputs based on a condition per output.
Buffering
- class reip.blocks.buffer.Rebuffer(size=None, duration=None, *a, sr_key='sr', **kw)[source]
Collect numpy arrays and convert them to a different resolution
- class reip.blocks.buffer.GatedRebuffer(sampler, size=10, **kw)[source]
Rebuffer while also sampling sparsely in time. For example, sampling audio files while leaving gaps between them for privacy reasons.
- reip.blocks.buffer.temporal_coverage(clip_duration=10, coverage=0.5, min_silence=5.0, sampling='normal')[source]
Given a clip_duration and desired coverage fraction, compute how long the silence between clips needs to be to satisfy the desired coverage and add some random variance to the silence based so that it gives values sampled from the distribution specified by sampling.
- Parameters
clip_duration (float) – Duration of non-silent clip in seconds
coverage (float) – Fraction of time to be recorded (non-silence), must be in range (0,1].
min_silence (float) – Minimum silence allowed between clips, in seconds
sampling (str) – The distribution from which silence durations will be sampled, must be ‘uniform’ or ‘normal’.
- Returns
- The amount of silence to insert between the current
and next clip, in seconds.
- Return type
silence (float)
Shell
- class reip.blocks.shell.Shell(cmd, astype=<class 'str'>, **kw)[source]
Run a shell command on the input data. See
reip.util.shell.run()for information about command formatting.
File Watching
File System Events
Watchdog API Reference: https://pythonhosted.org/watchdog/api.html
Note
from experience, I’ve found file watchers can be a bit unreliable - (potentially due to my own misuse !).
Additionally, many times (for example file upload) watching file events may not actually be what you want, and you may be better off polling file lists using glob as that will reduce the number of missed files and is resilient to reboots.
- class reip.blocks.os_watch.Watch(*patterns, path='./', event_types=None, recursive=False, **kw)[source]
A Generic File Watcher
- class reip.blocks.os_watch.Created(*patterns, path='./', event_types=None, recursive=False, **kw)[source]
Outputs any created files.
- class reip.blocks.os_watch.Modified(*patterns, path='./', event_types=None, recursive=False, **kw)[source]
Outputs any modified files.
File Postprocessing
- class reip.blocks.archive.Tar(filename='{time}.tar', remove_files=False, gz=None, **kw)[source]
Archive files in a .tar file.
Audio
Video
- class reip.blocks.video.effects.OpticalFlow(pyr_scale=0.5, levels=3, winsize=15, iterations=3, poly_n=5, poly_sigma=1.2, flags=0, resize=(256, 256), draw_mag_scale=10, draw=None, **kw)[source]
Video Machine Learning
Machine Learning
Disk Monitor
- class reip.blocks.diskmonitor.DiskMonitor(root='/', deleter=None, threshold=0.95, padding=0.1, interval=60, **kw)[source]
Monitors the disk usage in a certain directory and will selectively delete files from that directory.
# define the file deleter @B.diskmonitor.Diskmonitor.deleter def Diskmon(block, offset=1, skip=3, chunksize=5): # select some subset of the files files = block.get_files('audio')[offset::skip] # randomly delete files in chunks of 5 until # under the desired storage limit block.delete_while_full(files, chunksize) # instantiate the block with reip.Graph(): Diskmon('/data')
Dummy
- reip.blocks.dummy.SomeArray
alias of
reip.blocks.dummy.Array
- reip.blocks.dummy.SomeTransform
alias of
reip.blocks.dummy.Op