hooke.git
8 years agoStore a copy of params in CurveCommand._add_to_command_stack.
W. Trevor King [Mon, 30 Aug 2010 17:56:49 +0000 (13:56 -0400)]
Store a copy of params in CurveCommand._add_to_command_stack.

We may modify the parameter dict later during the command's execution,
and we want future runs via the command stack to replicate the first
run from the raw initial parameters.  If you don't do this, you'll get
errors like

    $ ./bin/hk.py
        -c 'load_playlist test/data/vclamp_picoforce/playlist'
        -c 'start_command_capture'
        -c 'zero_surface_contact_point --block approach'
        -c 'zero_surface_contact_point --block retract'
        -c 'stop_command_capture'
        -c 'apply_command_stack_to_playlist --enable-evaluate'
        -c 'flat_filter_playlist --block retract --min_points 1'
    Success
    ...
    Failure
    Expected a list of Peaks, not <class 'hooke.command.Failure'>:
      surface distance (m) not in retract (['z piezo (m)', 'deflection (m)',
      'surface distance (m) (m)', 'surface deflection (m) (m)']):...

where the units '(m)' were appended twice, once during the initial
command run, and again during the reload's command stack exectution.

8 years agoMaintain Curve._hooke setting during copy and deepcopy.
W. Trevor King [Mon, 30 Aug 2010 17:22:27 +0000 (13:22 -0400)]
Maintain Curve._hooke setting during copy and deepcopy.

8 years agoFlesh out command line help messages.
W. Trevor King [Sun, 29 Aug 2010 00:47:43 +0000 (20:47 -0400)]
Flesh out command line help messages.

8 years ago.__setup_params() -> ._setup_params() in hooke/plugin/*.py.
W. Trevor King [Sat, 28 Aug 2010 23:35:49 +0000 (19:35 -0400)]
.__setup_params() -> ._setup_params() in hooke/plugin/*.py.

Methods starting with '__' get special name mangling.
  http://docs.python.org/reference/expressions.html#atom-identifiers
We don't want any of that.

8 years agoDon't distinguish between ASCII unicode and strings in YAML output.
W. Trevor King [Sat, 28 Aug 2010 22:58:38 +0000 (18:58 -0400)]
Don't distinguish between ASCII unicode and strings in YAML output.

8 years agoDocument fit parameter extraction via PyYAML.
W. Trevor King [Sat, 28 Aug 2010 12:42:19 +0000 (08:42 -0400)]
Document fit parameter extraction via PyYAML.

8 years agoDocument --ui in doc/gui.txt.
W. Trevor King [Sat, 28 Aug 2010 11:38:47 +0000 (07:38 -0400)]
Document --ui in doc/gui.txt.

8 years agoAdded convenience --ui option to hooke.hooke.main().
W. Trevor King [Sat, 28 Aug 2010 11:34:27 +0000 (07:34 -0400)]
Added convenience --ui option to hooke.hooke.main().

8 years agoTrivial fixes to test/command_stack.py. Now test/ passes again.
W. Trevor King [Fri, 27 Aug 2010 23:00:21 +0000 (19:00 -0400)]
Trivial fixes to test/command_stack.py.  Now test/ passes again.

8 years agoDon't load curves becore clearing their command stack.
W. Trevor King [Fri, 27 Aug 2010 22:44:01 +0000 (18:44 -0400)]
Don't load curves becore clearing their command stack.

Loading a curve (which would happen if it had been unloaded before
being summoned by current_curve_callback) executes its command stack.
Since 'clear curve command stack' is only trying to remove the stack,
that stack execution is a waste of time.  With the unloaded callback,
we can remove the command stack without ever loading the curve.

8 years agoFix 'flat filter peaks' CommandMessage declaration in test/apply_command_stack_to_pla...
W. Trevor King [Fri, 27 Aug 2010 22:39:44 +0000 (18:39 -0400)]
Fix 'flat filter peaks' CommandMessage declaration in test/apply_command_stack_to_playlist.py

8 years agoDon't fail if Playlist.unload() is called on an unloaded Curve.
W. Trevor King [Fri, 27 Aug 2010 21:36:35 +0000 (17:36 -0400)]
Don't fail if Playlist.unload() is called on an unloaded Curve.

8 years agoDouble initial guess for the surface kink position.
W. Trevor King [Fri, 27 Aug 2010 21:31:39 +0000 (17:31 -0400)]
Double initial guess for the surface kink position.

The previous algorithm would fail for curves if
1) They didn't have many tension features to stretch out the range.
2) The contact slope "softened" a bit in the kink region.

For example, try it on most of the test/vclamp_picoforce data ;).

The new algorithm works perfectly on the ideal, boring curve:
    _______
   /
  /

8 years agoKeep Playlist._loaded up to date on Curve.unload() calls.
W. Trevor King [Fri, 27 Aug 2010 20:14:25 +0000 (16:14 -0400)]
Keep Playlist._loaded up to date on Curve.unload() calls.

8 years agoAdd 'command stack' to list of ignored commands in propertyeditor.py
W. Trevor King [Fri, 27 Aug 2010 19:46:21 +0000 (15:46 -0400)]
Add 'command stack' to list of ignored commands in propertyeditor.py

8 years agoAdded logging to hooke.util.callback's callback routines.
W. Trevor King [Fri, 27 Aug 2010 19:25:01 +0000 (15:25 -0400)]
Added logging to hooke.util.callback's callback routines.

8 years agoOops, the CommandMessage.explicit_user_call, not Command.explicit_user_call.
W. Trevor King [Fri, 27 Aug 2010 19:20:22 +0000 (15:20 -0400)]
Oops, the CommandMessage.explicit_user_call, not Command.explicit_user_call.

Fixes bug from daf1c9f9c8e1.

8 years agoAdded hooke.util.caller.caller_names() for minimal stack traces.
W. Trevor King [Fri, 27 Aug 2010 15:29:30 +0000 (11:29 -0400)]
Added hooke.util.caller.caller_names() for minimal stack traces.

8 years agoAdded CommandStack.explicit_user_call to distinguish user- from UI-generated calls.
W. Trevor King [Fri, 27 Aug 2010 11:03:36 +0000 (07:03 -0400)]
Added CommandStack.explicit_user_call to distinguish user- from UI-generated calls.

8 years agoMore robust guess for `zero surface contact point` + fit check arguments
W. Trevor King [Tue, 24 Aug 2010 11:32:35 +0000 (07:32 -0400)]
More robust guess for `zero surface contact point` + fit check arguments

8 years agoAdd PyYAML to doc/install.txt and doc/hacking.txt dependency lists.
W. Trevor King [Mon, 23 Aug 2010 15:46:26 +0000 (11:46 -0400)]
Add PyYAML to doc/install.txt and doc/hacking.txt dependency lists.

8 years agoExtend JPK v0.5 parsing back to 0.3 and 0.4 file formats.
W. Trevor King [Mon, 23 Aug 2010 14:29:14 +0000 (10:29 -0400)]
Extend JPK v0.5 parsing back to 0.3 and 0.4 file formats.

On Mon, Aug 23, 2010 at 02:15:08PM +0200, Michael Haggerty wrote:
> The fundamentals of our file format has not changed much since it was
> introduced.  Most of the changes involve metadata, such as how we
> describe force spectroscopy scanning patterns, that are not even
> described in the document that I sent you.

8 years agoRemove ._on_notebook_page_close binding for the removed notebook GUI panel.
W. Trevor King [Mon, 23 Aug 2010 13:19:51 +0000 (09:19 -0400)]
Remove ._on_notebook_page_close binding for the removed notebook GUI panel.

8 years agoRestore HookeFrame.select_plugin (was removed in 29866287a21e).
W. Trevor King [Mon, 23 Aug 2010 13:14:30 +0000 (09:14 -0400)]
Restore HookeFrame.select_plugin (was removed in 29866287a21e).

8 years agoCleaned non-folders-panel cruft methods out of hooke.ui.gui.HookeFrame
W. Trevor King [Sun, 22 Aug 2010 19:26:07 +0000 (15:26 -0400)]
Cleaned non-folders-panel cruft methods out of hooke.ui.gui.HookeFrame

8 years agoUpdate view menu checkbox on pane-close button activity.
W. Trevor King [Sun, 22 Aug 2010 19:13:03 +0000 (15:13 -0400)]
Update view menu checkbox on pane-close button activity.

8 years agoShift function key accelerators down by one (from F5 and up to F4 and up).
W. Trevor King [Sun, 22 Aug 2010 18:41:24 +0000 (14:41 -0400)]
Shift function key accelerators down by one (from F5 and up to F4 and up).

Despite the stated range of F1 through F12
  http://docs.wxwidgets.org/2.8/wx_wxmenu.html#wxmenuappend
F10 seems to open the &File menu instead of toggling its panel's
visibility.  This is possibly related to
  http://trac.wxwidgets.org/ticket/2404

8 years agoAdd menu title hotkeys to the GUI.
W. Trevor King [Sun, 22 Aug 2010 18:10:02 +0000 (14:10 -0400)]
Add menu title hotkeys to the GUI.

From
  http://wiki.wxwidgets.org/Beech:Using_controls#Adding_a_Menu_Bar
we have
  "Note how the ampersand ("&") is used in strings like "E&xit" and
  "&File". This indicates which character in a menubar or menu will be
  the menu hotkey."

8 years agoSave dtypes to YAML (now we only drop ndarrays).
W. Trevor King [Sun, 22 Aug 2010 13:59:00 +0000 (09:59 -0400)]
Save dtypes to YAML (now we only drop ndarrays).

8 years agoAdd hooke.util.yaml.data_constructor to rebuild hooke.curve.Data.info.
W. Trevor King [Sun, 22 Aug 2010 13:34:37 +0000 (09:34 -0400)]
Add hooke.util.yaml.data_constructor to rebuild hooke.curve.Data.info.

8 years agoSave nicely scaled WLC parameters to the fit dict in polymer_fit.py.
W. Trevor King [Sun, 22 Aug 2010 06:18:52 +0000 (02:18 -0400)]
Save nicely scaled WLC parameters to the fit dict in polymer_fit.py.

8 years agoUpdated test/ to match the new explicit YAML format.
W. Trevor King [Sun, 22 Aug 2010 05:54:12 +0000 (01:54 -0400)]
Updated test/ to match the new explicit YAML format.

And other minor tweaks to get things passing again.
  $ nosetests --with-doctest --doctest-tests -vv test/ 2>&1 | less
  ...
  Ran 27 tests in 43.349s

  OK

Note that the tutorial.py and note.py tests were going so slowly
before (but are fast again now) because I was (re)loading
playlist/curve/etc. items in .__setstate__, when they are supposed to
be set with `listitems`.  If you're going to go messing around with
__getstate__ or __setstate__, it would be a good idea to read
  http://www.python.org/dev/peps/pep-0307/
(especially Case 2 and Case 3) *carefully* before wasting a bunch
of time and confusion bungling around like I did ;).

8 years agoAdd `name playlist' command.
W. Trevor King [Sun, 22 Aug 2010 05:49:02 +0000 (01:49 -0400)]
Add `name playlist' command.

To avoid collisions if you load the same playlist twice, etc.

8 years agoUpgrade test/data/ playlists to new explicit YAML format.
W. Trevor King [Sun, 22 Aug 2010 05:23:35 +0000 (01:23 -0400)]
Upgrade test/data/ playlists to new explicit YAML format.

8 years agoStay on top of Curve.set_hooke() so we can run CommandStacks.
W. Trevor King [Sun, 22 Aug 2010 05:13:43 +0000 (01:13 -0400)]
Stay on top of Curve.set_hooke() so we can run CommandStacks.

8 years agoRemove debugging printout from hooke.playlist.load.
W. Trevor King [Sun, 22 Aug 2010 05:08:27 +0000 (01:08 -0400)]
Remove debugging printout from hooke.playlist.load.

8 years agoCleaned up hooke.playlist.load() and its use in `load playlist`.
W. Trevor King [Sun, 22 Aug 2010 05:03:28 +0000 (01:03 -0400)]
Cleaned up hooke.playlist.load() and its use in `load playlist`.

8 years agoAdjust Hooke internals to use unsafe YAML (not just builtin Python types).
W. Trevor King [Sun, 22 Aug 2010 04:44:16 +0000 (00:44 -0400)]
Adjust Hooke internals to use unsafe YAML (not just builtin Python types).

Pros:
* More explicit YAML.
* Simple, robust code.
* Easily (de)serialize everything, regardless of nesting, etc.
Cons:
* Uglier YAML.

After wrestling with a yaml.safe_dump()able representation, I've given
up and shifted to yaml.dump().  Now we can dump anything easily, which
is great :).  For example, this will allow you to access polymer fit
parameters.  However, there will be things like
  !!python/object/new:hooke.playlist.FilePlaylist
in the output YAML files.  Such is life.

While I was at it, I ran
  $ nosetests --with-doctest --doctest-tests hooke/ 2>&1 | log
and cleaned up a number of the doctests.  Now the only things that
fail in there are the yet-to-be-upgraded submods left over from before
my rewrite.

I haven't checked test/ recently, that's next ;).

8 years agoFix hooke.util.yaml handling of assorted numpy.dtypes.
W. Trevor King [Sat, 21 Aug 2010 22:22:50 +0000 (18:22 -0400)]
Fix hooke.util.yaml handling of assorted numpy.dtypes.

8 years agoFix polymer fit info name
W. Trevor King [Sat, 21 Aug 2010 22:21:57 +0000 (18:21 -0400)]
Fix polymer fit info name

8 years agoDon't ignore Curve.data in playlist serialization (now that we have hooke.util.yaml).
W. Trevor King [Sat, 21 Aug 2010 20:25:54 +0000 (16:25 -0400)]
Don't ignore Curve.data in playlist serialization (now that we have hooke.util.yaml).

8 years agoAdded command_stack option to all' default.
W. Trevor King [Sat, 21 Aug 2010 20:11:12 +0000 (16:11 -0400)]
Added command_stack option to all' default.

8 years agoClear NoteIndexList in .__setstate__ to avoid doubling items during engine->UI passing.
W. Trevor King [Sat, 21 Aug 2010 19:05:41 +0000 (15:05 -0400)]
Clear NoteIndexList in .__setstate__ to avoid doubling items during engine->UI passing.

8 years agoFix to plugin experiment checks after 8687bbf30e87.
W. Trevor King [Sat, 21 Aug 2010 18:47:02 +0000 (14:47 -0400)]
Fix to plugin experiment checks after 8687bbf30e87.

8 years agoFix item -> items() bug in command_stack.py (now loaded curve playlist serialization...
W. Trevor King [Sat, 21 Aug 2010 18:40:03 +0000 (14:40 -0400)]
Fix item -> items() bug in command_stack.py (now loaded curve playlist serialization works!)

8 years agoAdded hooke.util.yaml fixing YAML/NumPy type issues (by dropping data).
W. Trevor King [Sat, 21 Aug 2010 18:37:20 +0000 (14:37 -0400)]
Added hooke.util.yaml fixing YAML/NumPy type issues (by dropping data).

8 years agoTracked down problems saving playlists with loaded curves to numpy.dtype
W. Trevor King [Sat, 21 Aug 2010 17:44:05 +0000 (13:44 -0400)]
Tracked down problems saving playlists with loaded curves to numpy.dtype

8 years agoDemonstrate issue 1062277 if you serialize the command stack first
W. Trevor King [Sat, 21 Aug 2010 17:25:44 +0000 (13:25 -0400)]
Demonstrate issue 1062277 if you serialize the command stack first

8 years agoAdd doctests proving recursive curve->command_stack->arguments->curve serializing...
W. Trevor King [Sat, 21 Aug 2010 17:18:34 +0000 (13:18 -0400)]
Add doctests proving recursive curve->command_stack->arguments->curve serializing works

8 years agoRemove CommandStack.__getstate__ to avoid type ambiguity for command arguments.
W. Trevor King [Sat, 21 Aug 2010 16:53:54 +0000 (12:53 -0400)]
Remove CommandStack.__getstate__ to avoid type ambiguity for command arguments.

8 years agoOops, store the serialized Experiment in state not self.info.
W. Trevor King [Sat, 21 Aug 2010 16:01:19 +0000 (12:01 -0400)]
Oops, store the serialized Experiment in state not self.info.

8 years agoSerialize hooke.experiment.Experiment instances in Curves.
W. Trevor King [Sat, 21 Aug 2010 15:33:46 +0000 (11:33 -0400)]
Serialize hooke.experiment.Experiment instances in Curves.

Also use singleton instances of the classes rather than the classes
themselves.  This will allow usage of isinstance() rather than
.__mro__ to determine experiment type.

8 years agoAdd hooke.playlist.Playlists for better playlist serialization.
W. Trevor King [Sat, 21 Aug 2010 14:37:21 +0000 (10:37 -0400)]
Add hooke.playlist.Playlists for better playlist serialization.

8 years agoRemove trailing blank lines from vclamp_picoforce/README
W. Trevor King [Sat, 21 Aug 2010 14:36:18 +0000 (10:36 -0400)]
Remove trailing blank lines from vclamp_picoforce/README

8 years agoTransition from v0.1 XML playlists to v0.2 YAML playlists.
W. Trevor King [Sat, 21 Aug 2010 13:57:08 +0000 (09:57 -0400)]
Transition from v0.1 XML playlists to v0.2 YAML playlists.

All test/ tests pass except for tutorial.py and note.py, which take
forever to run.  I'm going to figure out what's going on there next.

Anyone with old playlist files can either upgrade by hand (the new
syntax is pretty simple, see the playlists under test/data/ for
examples), or use the automatic script
  contrib/upgrade_playlist_0p1.py
which converts the playlists automatically.  The output from the
upgrade script is, like most auto-generated files, less concise
than a hand coded playlist, but it will work just fine.

For an introduction to YAML, see
  http://www.yaml.orlg/
which contains links YAML libraries in a number of languages.  The
playlists are generated with PyYAML
  http://pyyaml.org/
which handles YAML 1.1
  http://yaml.org/spec/1.1/
The Hooke playlist format is pretty simple, so it shouldn't be too
strongly tied to any particular version of YAML, although I haven't
actually tested it with a 1.0 or 1.2 parser.

8 years agoName Hemingway data blocks so they may be viewed in the GUI.
W. Trevor King [Fri, 20 Aug 2010 14:24:03 +0000 (10:24 -0400)]
Name Hemingway data blocks so they may be viewed in the GUI.

8 years agoUse 'Indexes' to split MFP3D curves into blocks.
W. Trevor King [Fri, 20 Aug 2010 13:49:31 +0000 (09:49 -0400)]
Use 'Indexes' to split MFP3D curves into blocks.

8 years agoFirst attempt at temperature extraction for MFP3D (+ convert spring constant to float).
W. Trevor King [Fri, 20 Aug 2010 13:14:11 +0000 (09:14 -0400)]
First attempt at temperature extraction for MFP3D (+ convert spring constant to float).

8 years agoAttach raw info etc. to curve in MFP3D driver (used to be just data blocks).
W. Trevor King [Fri, 20 Aug 2010 12:12:22 +0000 (08:12 -0400)]
Attach raw info etc. to curve in MFP3D driver (used to be just data blocks).

8 years agoConvert JPK deflection sign to follow Hooke convention.
W. Trevor King [Fri, 20 Aug 2010 11:03:50 +0000 (07:03 -0400)]
Convert JPK deflection sign to follow Hooke convention.

8 years agoFast curve review seems to be a GUI-specific feature.
W. Trevor King [Fri, 20 Aug 2010 10:44:31 +0000 (06:44 -0400)]
Fast curve review seems to be a GUI-specific feature.

8 years agoCommand line UI now handles EOF during request/response interactions.
W. Trevor King [Fri, 20 Aug 2010 10:43:17 +0000 (06:43 -0400)]
Command line UI now handles EOF during request/response interactions.

For example
  $ echo | ./bin/hk.py -c 'new_playlist'
                       -c 'glob_curves_to_playlist test/data/*' --persist
used to loop forever thinking it was getting invalid responses to
  Exit? [y/N]

Also, change str() to unicode() in DoCommand.__call__ to handle
non-ascii messages (e.g. ยต (micro) from SI units).

8 years agoRemove debugging printout from JPK driver
W. Trevor King [Fri, 20 Aug 2010 09:02:08 +0000 (05:02 -0400)]
Remove debugging printout from JPK driver

8 years agoConvert all channels to their default calibration in the JPK driver.
W. Trevor King [Fri, 20 Aug 2010 08:59:05 +0000 (04:59 -0400)]
Convert all channels to their default calibration in the JPK driver.

The previous implementation only scaled height and vDeflection, which
meant that the other unscaled (and therefore unitless) columns broke
distance formatting commands (e.g. 'point info').

8 years agoSet filetype and experiment fields in JPK driver.
W. Trevor King [Fri, 20 Aug 2010 08:13:26 +0000 (04:13 -0400)]
Set filetype and experiment fields in JPK driver.

8 years agoPush GUI config setting changes to the engine process' Hooke.
W. Trevor King [Fri, 20 Aug 2010 07:45:00 +0000 (03:45 -0400)]
Push GUI config setting changes to the engine process' Hooke.

8 years agoRan update_copyright.py, which fixed some spellcheck errors in hooke/plugin/curve.py
W. Trevor King [Fri, 20 Aug 2010 06:39:00 +0000 (02:39 -0400)]
Ran update_copyright.py, which fixed some spellcheck errors in hooke/plugin/curve.py

8 years agoFlesh out command stack execution.
W. Trevor King [Fri, 20 Aug 2010 01:37:44 +0000 (21:37 -0400)]
Flesh out command stack execution.

8 years ago'new playlist' now puts the new playlist into outqueue (see fafab694b2dc)
W. Trevor King [Thu, 19 Aug 2010 19:16:48 +0000 (15:16 -0400)]
'new playlist' now puts the new playlist into outqueue (see fafab694b2dc)

8 years agoSet Curve._hooke after joining engine in HookeRunner (see f2bdd7aa2269)
W. Trevor King [Thu, 19 Aug 2010 19:13:06 +0000 (15:13 -0400)]
Set Curve._hooke after joining engine in HookeRunner (see f2bdd7aa2269)

8 years agoRemove duplicate Command arguments (e.g. help, stack) from FlatFilterCommand
W. Trevor King [Thu, 19 Aug 2010 18:52:47 +0000 (14:52 -0400)]
Remove duplicate Command arguments (e.g. help, stack) from FlatFilterCommand

8 years agoLog the troublesome command for command line option conflicts.
W. Trevor King [Thu, 19 Aug 2010 18:36:48 +0000 (14:36 -0400)]
Log the troublesome command for command line option conflicts.

8 years agoPatch GUI to handle 'new playlist' and 'glob curves to playlist'
W. Trevor King [Thu, 19 Aug 2010 17:47:56 +0000 (13:47 -0400)]
Patch GUI to handle 'new playlist' and 'glob curves to playlist'

8 years agoAllow flattening of path-less playlists for command.
W. Trevor King [Thu, 19 Aug 2010 16:58:40 +0000 (12:58 -0400)]
Allow flattening of path-less playlists for  command.

8 years agoPoint out in doc/gui.txt that the folders panel is still unimplemented
W. Trevor King [Thu, 19 Aug 2010 16:52:44 +0000 (12:52 -0400)]
Point out in doc/gui.txt that the folders panel is still unimplemented

8 years agoCopy spring constant into block info in JPK driver.
W. Trevor King [Thu, 19 Aug 2010 11:56:41 +0000 (07:56 -0400)]
Copy spring constant into block info in JPK driver.

Although JPK's curve-level spring constant makes more sense.  Perhaps
I will convert all drivers to store it there in the future.

8 years agoAdded 'Command stack' section to doc/tutorial.txt
W. Trevor King [Tue, 17 Aug 2010 13:21:18 +0000 (09:21 -0400)]
Added 'Command stack' section to doc/tutorial.txt

8 years agoUpdate WLC/FJC fitting section of doc/tutorial.txt
W. Trevor King [Tue, 17 Aug 2010 13:05:24 +0000 (09:05 -0400)]
Update WLC/FJC fitting section of doc/tutorial.txt

8 years agoUpdate distance-measurement sections of doc/tutorial.txt and doc/gui.txt
W. Trevor King [Tue, 17 Aug 2010 10:57:44 +0000 (06:57 -0400)]
Update distance-measurement sections of doc/tutorial.txt and doc/gui.txt

8 years agoRemove export and distance sections from test/tutorial.py (they duplicate other test...
W. Trevor King [Tue, 17 Aug 2010 10:56:23 +0000 (06:56 -0400)]
Remove export and distance sections from test/tutorial.py (they duplicate other test/*s).

8 years agoUse UUID in test/config.py's output file name.
W. Trevor King [Tue, 17 Aug 2010 10:38:18 +0000 (06:38 -0400)]
Use UUID in test/config.py's output file name.

8 years agoBroke config section of test/tutorial.py out into test/config.py
W. Trevor King [Tue, 17 Aug 2010 10:29:34 +0000 (06:29 -0400)]
Broke config section of test/tutorial.py out into test/config.py

8 years agoAdded 'save config'. Adjusted test/tutorial.py (and test/ in general) passes.
W. Trevor King [Tue, 17 Aug 2010 04:02:33 +0000 (00:02 -0400)]
Added 'save config'.  Adjusted test/tutorial.py (and test/ in general) passes.

8 years agoUpdate test/flat_filter_playlist.py to explicitly specify input columns.
W. Trevor King [Tue, 17 Aug 2010 02:56:48 +0000 (22:56 -0400)]
Update test/flat_filter_playlist.py to explicitly specify input columns.

8 years agoUse 'simple' conversion handler to process 'file'-type JPK conversions.
W. Trevor King [Tue, 17 Aug 2010 02:17:26 +0000 (22:17 -0400)]
Use 'simple' conversion handler to process 'file'-type JPK conversions.

Michael Haggerty at JPK pointed out that the information from the
external file was already stored in the curve file.  He also confirmed
that my interpretation of the external calibration file format was
correct, although that no longer matters now that I've just removed
the 'file'-specific conversion code.

8 years agoMake file-format-version=0.5 support explicit in JPKDriver
W. Trevor King [Tue, 17 Aug 2010 01:47:25 +0000 (21:47 -0400)]
Make file-format-version=0.5 support explicit in JPKDriver

8 years agoConfirm big-endian binary data format for JPK files.
W. Trevor King [Tue, 17 Aug 2010 01:20:42 +0000 (21:20 -0400)]
Confirm big-endian binary data format for JPK files.

Michael Haggerty, JPK's head of software development, sent me their
file specs.  I'll add the specs themselves to our version control if I
get permission from them.

8 years agoAdd test/note.py and adjust playlist handling so NoteFilterCommand works again.
W. Trevor King [Tue, 17 Aug 2010 01:07:30 +0000 (21:07 -0400)]
Add test/note.py and adjust playlist handling so NoteFilterCommand works again.

8 years agoAdded hooke.util.itertools with reverse_enumerate
W. Trevor King [Mon, 16 Aug 2010 19:16:05 +0000 (15:16 -0400)]
Added hooke.util.itertools with reverse_enumerate

8 years agoDon't save Curve._hooke when pickling or deepcopying.
W. Trevor King [Mon, 16 Aug 2010 18:59:27 +0000 (14:59 -0400)]
Don't save Curve._hooke when pickling or deepcopying.

Two reasons:
1) It crashes because hooke.config._comment_textwrap contains a
   compiled regexp, and these cannot be deepcopied.  See
     http://mail.python.org/pipermail/python-dev/2008-November/083348.html
     http://bugs.python.org/issue416670
2) We don't want to copy Hooke instances anyway, since we need them to stay
   in sync.  Anything copying curves (e.g. Playlist.filter) should shallow
   copy Hooke instances between the curves.
If this turns up anywhere else, we should think about adding a
Curve.copy method to get the "just right" copy depth ;).

8 years agoAdjust test/tutorial.py to account for 4f4640207a50
W. Trevor King [Mon, 16 Aug 2010 18:53:06 +0000 (14:53 -0400)]
Adjust test/tutorial.py to account for 4f4640207a50

8 years agoAdjust test/polynomial_flatten.py to account for 01ff9349a0c6
W. Trevor King [Mon, 16 Aug 2010 18:51:28 +0000 (14:51 -0400)]
Adjust test/polynomial_flatten.py to account for 01ff9349a0c6

8 years agoAdjust test/flat_filter_peaks.py to account for 01ff9349a0c6
W. Trevor King [Mon, 16 Aug 2010 18:50:43 +0000 (14:50 -0400)]
Adjust test/flat_filter_peaks.py to account for 01ff9349a0c6

8 years agoUpgraded hooke.plugin.polymer_fit commands to ColumnAddingArgument subclasses.
W. Trevor King [Mon, 16 Aug 2010 16:33:39 +0000 (12:33 -0400)]
Upgraded hooke.plugin.polymer_fit commands to ColumnAddingArgument subclasses.

Now the following command works:

    $ bin/hk.py
        -c 'load_playlist test/data/test'
        -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 'export_block --block retract --output myblock.dat'
        --persist

See related commands in 725a18055518 and 27bf3c1e98e1.

8 years agoPoint to config.txt rather than hardcoding hooke.cfg in doc/gui.txt
W. Trevor King [Mon, 16 Aug 2010 16:29:27 +0000 (12:29 -0400)]
Point to config.txt rather than hardcoding hooke.cfg in doc/gui.txt

8 years agoRewrap a line in test/zero_surface_contact_point.py
W. Trevor King [Mon, 16 Aug 2010 16:01:44 +0000 (12:01 -0400)]
Rewrap a line in test/zero_surface_contact_point.py

8 years agoApply constant offset to contact region in 'polynomial flatten' to avoid discontinuity
W. Trevor King [Mon, 16 Aug 2010 16:00:43 +0000 (12:00 -0400)]
Apply constant offset to contact region in 'polynomial flatten' to avoid discontinuity

8 years agoFix playlist filename preservation for 'load playlist' and 'new playlist'
W. Trevor King [Mon, 16 Aug 2010 14:48:19 +0000 (10:48 -0400)]
Fix playlist filename preservation for 'load playlist' and 'new playlist'

8 years agoMove NoteFilterCommand from plugin.playlist to plugin.note.
W. Trevor King [Sun, 15 Aug 2010 22:17:40 +0000 (18:17 -0400)]
Move NoteFilterCommand from plugin.playlist to plugin.note.

8 years agoAdded test/tutorial.py. Works until you get to note_filter_playlist
W. Trevor King [Sun, 15 Aug 2010 14:41:18 +0000 (10:41 -0400)]
Added test/tutorial.py.  Works until you get to note_filter_playlist