Convert from "print ..." to "print(...)" Also convert "'...' % (...)" to "'...'.format(...)". These bring us up to date with Python 2.7, and will make future porting to Python 3 less painful.
Ran update-copyright.py Changed my drexel address to tremily and added an address for Richard Naud (both read from .mailmap).
Run update-copyright.py.
Ran update_copyright.py.
Adjust NoteIndexList._index in .index() if it falls off the end of the list.
Standardize playlist path expansion in hooke/playlist.py.
Ran update_copyright.py.
Actually, filtering the copy directly is *almost* ok.
Only shallow copy when filtering a playlist. We should iterate through the base playlist, because iterating over a playlist that's having items removed is poorly defined. However, if were iterating through the input playlist and removing items from the copy, we need a shallow copy so the item ids still match. Curves can belong to several playlists, so shallow copies are ok. Another problem with the old version was that the _index was being updated in the copy, not the current curve, so the current_curve_callback() bit was *not* working.
.`_setup_item` -> `._setup_item` in hooke.playlist.Playlist.unload.__doc__.
Adjust playlist curve setup to load curves after YAML restore.
expanduser() in hooke.playlist.load().
Don't save digests in the playlist file. They create dependency loops: digest_{i+1} = checksum(file with digest_i) With the old way, exiting after $ hk.py -c 'new_playlist --output_playlist mylist' -c 'glob_curves_to_playlist ...*.curve' -c 'save_playlist --output mylist' -p would complain of unsaved playlists.
Update hooke.playlist.FilePlaylist doctests for explicit_user_call.
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.
Don't fail if Playlist.unload() is called on an unloaded Curve.
Keep Playlist._loaded up to date on Curve.unload() calls.
Remove debugging printout from hooke.playlist.load.
Cleaned up hooke.playlist.load() and its use in `load playlist`.
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 ;).