util_file.fast_copy added, in windows uses windows' robocopy to copy many folders/files faster
util_file.copy_dir now uses fast_copy when no ignore_patterns are given.
process auto completion now uses AST like the other code, making it much easier to see what's available and how to set process functions.
pre and post process.run_script are now using decorators for cleaner code and to ensure that the right code runs
When running code through process.run_script the selection no longer clears automatically. This allows option scripts (buttons) to work on selected
Added
core.viewport_off to toggle the viewport 2 on and off
core.delete_set_contents added, deletes everything in a set
core.get_hierarchy_by_depth will get the hierarchy in order of how deep it is in the hierarchy. First children returned first, followed by second children, etc.
core.get_hierarchy does cmds.listRelatives ad = True and then does a reverse on the result. This makes the result reflect depth order a bit better.
attr.clear_multi resets a multi attribute to no indices
attr.append_multi_message appends an input to the end of a multi attribute
rigs_util.create_distance_reader now has the option to go negative for when its moving in the opposite direction. The weight value it creates will then from -1 to 1 instead of 0 to 1.
space.get_longest_aligned_vectors given a mesh this will return 2 vectors that can be used to create 2 joints at the to farthest ends of a piece of geo. Good for rigging props
attr.set_color_value sets the value component (hsv) but given an rgb color. This is meant to help modulating rgb control colors
Rigs
scaleConstraint is being used with targetParentMatrix disconnected. This works similarly to how it was working before with scale channels connected directly. However the scaleConstraint does a bit of extra work that deals better with joints being scaled in different ways. It solves a couple of use cases but not everything.
In some cases SparseRig now respects scaleCompensate being off. It may not work if the scale is negative though.
Fixes
space.scale_constraint_to_local now keeps offsets better
deform.smooth_skin_weights now has the option to use the api. Not using the api is more reliable and has undoability. This is also reflected in the ui.
sometimes process that were current in the ui were not updating in the Data and Code tabs
Data widgets now expand contract like they used to ages ago.
qApp wasn't loading properly in Maya 2020
rigs_util.Control.set_curve_type fix when color is rgb. It will keep the rgb on the new curve instead of erroring.
deform.find_all_deformers is now fixed when a mesh has no history