Minor tweaks to Hooke's command stacks. I can now execute the GUI alternative of

./bin/hk.py 
    -c 'new_playlist'
    -c 'glob_curves_to_playlist *'
    -c 'start_command_capture'
    -c 'zero_surface_contact_point --block retract'
    -c 'stop_command_capture'
    -c 'apply_command_stack_to_playlist'
    -c 'curve_info'
    -p

Issues resolved today:

  • GUI-generated commands clogging the command stack instead of being executed. Fixed with CommandMessage.explicit_user_call.
  • Playlist._loaded desyncronization from old 'apply command stack to playlist'. Fixed with Playlist.unload().

Update:

After fixing up a few more bugs, I successfully ran:

./bin/hk.py 
    -c 'new_playlist'
    -c 'glob_curves_to_playlist *'
    -c 'start_command_capture'
    -c 'zero_surface_contact_point --block retract'
    -c 'flat_filter_peaks --block retract --min_points 1'
    -c 'zero_surface_contact_point --block retract --ignore_after_last_peak_info_name "flat filter peaks"'
    -c 'convert_distance_to_force --block retract --deflection_column "surface deflection (m)"'
    -c 'remove_cantilever_from_extension --block retract'
    -c 'flat_peaks_to_polymer_peaks --block retract'
    -c 'polymer_fit_peaks --block retract'
    -c 'stop_command_capture'
    -c 'apply_command_stack_to_playlist --enable-evaluate'
    -c 'save_playlist --output o.hkp'

on 2400 curves with the command line UI. Tomorrow I'll run through those with the GUI.

Update:

I ran through with the above command with the GUI. Same results :D. It did, however turn up a couple of outstanding issues:

  • lots of useless !!python/unicode 'retract' tags. If the strings are all in ASCII, I don't really care if they are loaded as unicode or string objects. (fixed)
  • surface distance (m) (m) column. Obviously someone is adding units twice. I need to figure out who it is ;). (Reproduced)