sh v1.10 Release Notes

    • partially applied functions with functools.partial have been fixed for _out and _err callbacks #160
    • _out or _err being callables no longer puts the running command in the background. to achieve the previous behavior, pass _bg=True to your command.
    • ๐Ÿ—„ deprecated _with contexts #195
    • โฑ _timeout_signal allows you to specify your own signal to kill a timed-out process with. use a constant from the signal stdlib module. #171
    • ๐Ÿšฆ signal exceptions can now be caught by number or name. SignalException_9 == SignalException_SIGKILL
    • ๐Ÿšฆ child processes that timeout via _timeout raise sh.TimeoutException instead of sh.SignalExeception_9 #172
    • ๐Ÿ›  fixed help(sh) from the python shell and pydoc sh from the command line. #173
    • ๐Ÿšš program names can no longer be shadowed by names that sh.py defines internally. removed the requirement of trailing underscores for programs that could have their names shadowed, like id.
    • memory optimization when a child process's stdin is a newline-delimted string and our bufsize is newlines
    • feature, _done special keyword argument that accepts a callback to be called when the command completes successfully #185
    • ๐Ÿ›  bugfix for being unable to print a baked command in python3+ #176
    • ๐Ÿ›  bugfix for cwd not existing and causing the child process to continue running parent process code #202
    • ๐Ÿ‘ป child process is now guaranteed to exit on exception between fork and exec.
    • ๐Ÿ—„ fix python2 deprecation warning when running with -3 PR #165
    • ๐Ÿ›  bugfix where sh.py was attempting to execute directories #196, PR #189
    • only backgrounded processes will ignore SIGHUP
    • allowed ok_code to take a range object. #PR 210
    • 0๏ธโƒฃ added sh.args with context which allows overriding of all command defaults for the duration of that context.
    • added sh.pushd with context which takes a directory name and changes to that directory for the duration of that with context. PR #206
    • โœ… tests now include python 3.4 if available. tests also stop on the first python that suite that fails.
    • ๐Ÿšฆ SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGPIPE, SIGSYS have been added to the list of signals that throw an exception PR #201
    • "callable" builtin has been faked for python3.1, which lacks it.
    • "direct" option added to _piped special keyword argument, which allows sh to hand off a process's stdout fd directly to another process, instead of buffering its stdout internally, then handing it off. #119