FuncBlock

class imagepypelines.FuncBlock(func, preset_kwargs=None, **block_kwargs)[source]

Bases: imagepypelines.core.Block.Block

Block that will run any function you give it, either unfettered through the __call__ function, or with optional hardcoded parameters for use in a pipeline. Typically the FuncBlock is only used in the blockify decorator method.

func

the function to call internally

Type

function

preset_kwargs

preset keyword arguments, typically used for arguments that are not data to process

Type

dict

Attributes Summary

args

arguments in the order they are expected

id

A unique id for this block

kwargs

dict of key word arguments for bound processing function

n_args

Number of arguments for the process function

Methods Summary

__call__(*args, **kwargs)

returns the exact output of the user defined function without any interference or interaction with the class

check_setup(task_args)

briefly checks setup with the provided task inputs.

copy()

fetches a shallow copy of this block with the UUID updated

deepcopy()

fetches a deep copy of this block with the UUID updated

enforce(arg[, types, shapes, containers])

sets the block up to make sure the given arg is the assigned type and shapes

get_default_node_attrs()

all values must be json serializable

postprocess()

runs after

preprocess()

runs before all batches are processed

process(*args)

rename(name)

renames the block to the given name.

tweak(**kwargs)

Returns a mutated copy of the block instance with the new kwargs

Attributes Documentation

args

arguments in the order they are expected

Type

list of str

id

A unique id for this block

This id is a combination of the block’s non-unique name and part of it’s uuid (last 6 characters by default). The entropy of this id can be increased by increasing ImagePypelines UUID_ORDER variable

Type

str

kwargs

dict of key word arguments for bound processing function

n_args

Number of arguments for the process function

Type

int

Methods Documentation

__call__(*args, **kwargs)[source]

returns the exact output of the user defined function without any interference or interaction with the class

check_setup(task_args)

briefly checks setup with the provided task inputs.

This function can be overloaded to add additional functionality if desired. By default it simply checks if too many or too few arguments were provided.

Parameters

task_args (tuple of str) – Arguments for this task

Note

Be very careful making task-specific modifications to the block setup in this function. It’s called once for every task this block is in. Changes made for one task may not apply to another task.

copy()

fetches a shallow copy of this block with the UUID updated

deepcopy()

fetches a deep copy of this block with the UUID updated

enforce(arg, types=None, shapes=None, containers=None)

sets the block up to make sure the given arg is the assigned type and shapes

Parameters
  • arg (str) – name the process function argument you want to enforce checking on

  • types (tuple of type) – the types to restrict this argument to. If left as None, then no type checking will be done

  • shapes (tuple of type) – the shapes to restrict this argument to. If left as None, then no shape checking will be done

  • containers (tuple of type) – the containers to restrict this argument to. If left as None, then no container checking will be done. if batch_type is “each”, then the container is irrelevant and can be safely ignored!

Returns

self

Return type

Block

Note

This function must be called after the parent block is instantiated!

That is, in your __init__ function, you must call super().__init__ before calling self.enforce

get_default_node_attrs()

all values must be json serializable

postprocess()

runs after

all batches are processed

preprocess()

runs before all batches are processed

process(*args)[source]
rename(name)

renames the block to the given name. The id is reset in this process

tweak(**kwargs)[source]

Returns a mutated copy of the block instance with the new kwargs