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
Attributes Summary
arguments in the order they are expected
A unique id for this block
dict
of key word arguments for bound processing functionNumber 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
all values must be json serializable
runs after
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
-
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
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.
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
oftype
) – the types to restrict this argument to. If left as None, then no type checking will be doneshapes (
tuple
oftype
) – the shapes to restrict this argument to. If left as None, then no shape checking will be donecontainers (
tuple
oftype
) – 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
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
-
rename
(name)¶ renames the block to the given name. The id is reset in this process
-