All Versions
Latest Version
Avg Release Cycle
113 days
Latest Release

Changelog History
Page 2

  • v1.12.9 Changes

    January 04, 2017
    • added _bg_exc for silencing exceptions in background threads #350
  • v1.12.8 Changes

    December 16, 2016
    • ๐Ÿ›  bugfix for patched glob.glob on python3.5 #341
  • v1.12.7 Changes

    December 07, 2016
    • added _out and _out_bufsize validator #346
    • ๐Ÿ›  bugfix for internal stdout thread running when it shouldn't #346
  • v1.12.6 Changes

    December 02, 2016
    • ๐Ÿ›  regression bugfix on timeout #344
    • regression bugfix on _ok_code=None
  • v1.12.5 Changes

    December 01, 2016
    • further improvements on cpu usage
  • v1.12.4 Changes

    • regression in cpu usage #339
  • v1.12.3 Changes

    • โœ… fd leak regression and fix for flawed fd leak detection test #337
  • v1.12.2 Changes

    • ๐Ÿ‘ support for io.StringIO in python2
  • v1.12.1 Changes

    • added support for using raw file descriptors for _in, _out, and _err
    • ๐Ÿšš removed .close()ing _out handler if FIFO detected
  • v1.12.0 Changes

    • composed commands no longer propagate _bg
    • better support for using sys.stdin and sys.stdout for _in and _out
    • ๐Ÿ›  bugfix where which() would not stop searching at the first valid executable found in PATH
    • added _long_prefix for programs whose long arguments start with something other than -- #278
    • ๐ŸŒฒ added _log_msg for advanced configuration of log message #311
    • added sh.contrib.sudo
    • added _arg_preprocess for advanced command wrapping
    • alter callable _in arguments to signify completion with falsy chunk
    • bugfix where pipes passed into _out or _err were not flushed on process end #252
    • deprecated with sh.args(**kwargs) in favor of sh2 = sh(**kwargs)
    • made sh.pushd thread safe
    • ๐Ÿšฆ added .kill_group() and .signal_group() methods for better process control #237
    • added new_session special keyword argument for controlling spawned process session #266
    • ๐Ÿ›  bugfix better handling for EINTR on system calls #292
    • ๐Ÿ›  bugfix where with-contexts were not threadsafe #247
    • _uid new special keyword param for specifying the user id of the process #133
    • ๐Ÿ›  bugfix where exceptions were swallowed by processes that weren't waited on #309
    • ๐Ÿ›  bugfix where processes that dupd their stdout/stderr to a long running child process would cause sh to hang #310
    • ๐ŸŒฒ improved logging output #323
    • ๐Ÿ›  bugfix for python3+ where binary data was passed into a process's stdin #325
    • Introduced execution contexts which allow baking of common special keyword arguments into all commands #269
    • Command and which now can take an optional paths parameter which specifies the search paths #226
    • _preexec_fn option for executing a function after the child process forks but before it execs #260
    • _fg reintroduced, with limited functionality. hurrah! #92
    • ๐Ÿ›  bugfix where a command would block if passed a fd for stdin that wasn't yet ready to read #253
    • _long_sep can now take None which splits the long form arguments into individual arguments #258
    • 0๏ธโƒฃ making _piped perform "direct" piping by default (linking fds together). this fixes memory problems #270
    • ๐Ÿ›  bugfix where calling next() on an iterable process that has raised StopIteration, hangs #273
    • called with no arguments no changes into the user's home directory, like native cd #275
    • ๐Ÿšš sh.glob removed entirely. the rationale is correctness over hand-holding. #279
    • added _truncate_exc, defaulting to True, which tells our exceptions to truncate output.
    • ๐Ÿ›  bugfix for exceptions whose messages contained unicode
    • _done callback no longer assumes you want your command put in the background.
    • _done callback is now called asynchronously in a separate thread.
    • ๐Ÿš€ _done callback is called regardless of exception, which is necessary in order to release held resources, for example a process pool