v0.6.0¶
The big new features in this release are:
Improved support for input and output file transfer (inputs/outputs can come from/be sent to remote locations, i.e., not the submit machine).
A new delivery method,
shared, where HTMap will use the same Python executable detected submit-side when executing (this supports HTCondor pools that use shared filesystems to make a Python installation universally available).
New Features/Improvements¶
Add the
shareddelivery method, which supports HTCondor pools that use shared filesystems to make Python installations available universally. Suggested by Duncan Macleod. Issues/PRs: #195, #198, #200HTMap now supports getting input files from remote destinations (i.e., not from the submit machine) via existing input file auto-discovery. Just use the revised
TransferPathin your mapped function arguments, and HTMap will arrange for the file to be transferred to your map component! PR: #216HTMap now supports sending output files to destinations that are not the submit machine via HTCondor’s
transfer_output_remapsmechanism. Output files can be sent to various locations, such as an S3 service. See the newoutput_remapsargument ofMapOptionsand the revisedTransferPath, as well as the new tutorial Transferring Output to Other Places for more details on how to use this feature. PR: #216Massive documentation upgrades courtesy of Scott Sievert! Issues/PRs: #208, #191, #202, #221
The HTMap CLI (normally accessed by running
htmap) can now also be accessed by runningpython -m htmap. Issue: #190The HTMap CLI now supports autocompletion on commands and tags. Run
htmap autocompletionfrom the command line to add the necessary setup to your shell startup script.The HTMap CLI
logscommand now has a--viewoption which, instead of just printing the path to the HTMap log file, displays its contents.
Changed/Deprecated Features¶
htmap.Map.existshas replacedhtmap.Map.is_removed. It has exactly the opposite semantics (it is onlyTrueif the map has not been successfully removed). PR: #221htmap.ComponentStatusis now a subclass ofstr, so (for example)"COMPLETED"can be used in place ofhtmap.ComponentStatus.COMPLETED.Item access (
[]) onMap.stdout,Map.stderr, andMap.output_filesis now non-blocking and will raiseFileNotFoundexceptions if accessed before available. The blocking API (with a timeout) is still available via thegetmethod.The HTMap CLI
versioncommand now also prints HTCondor Python bindings version information. Addedhtmap --versionthat only prints HTMap version information.Several HTMap CLI commands now support explicit enable/disable flags instead of just one or the other. The default behaviors were not changed.
The name of the function used to register delivery methods changed to
register_delivery_method()(fromregister_delivery_mechanism).
Bug Fixes¶
HTMap is now less sensitive to job event logs becoming corrupted.
Type hints are now more correct on more functions (but not fully correct on all functions, bear with us!).
Known Issues¶
HTMap does not currently allow “directory content transfers”, which is an HTCondor feature where naming a directory in
transfer_input_fileswith a trailing slash transfers the contents of the directory, not the directory itself. (If you try it, the directory itself will be transferred, as if you had not used a trailing slash). Issue: #215Execution errors that result in the job being terminated but no output being produced are still not handled entirely gracefully. Right now, the component state will just show as
ERRORED, but there won’t be an actual error report.Map component state may become corrupted when a map is manually vacated. Force-removal may be needed to clean up maps if HTCondor and HTMap disagree about the state of their components. Issue: #129