Change Log¶
1.4.3¶
- CLI: add
invoke
, which allows you to programmatically run applications (#149) - CLI: add
--help-all
and various cosmetic fixes: (#125), (#126), (#127) - CLI: add
root_app
property (#141) - Machines:
getattr
now raisesAttributeError
instead of CommandNotFound (#135) - Paths: bugfix to
cwd
interaction withPath
(#142) - Paths: read/write now accept an optional encoding parameter (#148)
- Commands: renamed
setenv
towith_env
(#143) - Commands: pipelines will now fail with
ProcessExecutionError
if the source process fails (#145)
1.4.2¶
- Paramiko now supports Python 3, enabled support in Plumbum
- Terminal: added
prompt()
, bugfix toget_terminal_size()
(#113) - CLI: added
cleanup()
, which is called aftermain()
returns - CLI: bugfix to
CountOf
(#118) - Commands: Add a TEE modifier (#117)
- Remote machines: bugfix to
which
, bugfix to remote environment variables (#122) - Path:
read()
/write()
now operate on bytes
1.4.1¶
1.4¶
- Moved
atomic
andunixutils
into the newfs
package (file-system related utilities) - Dropped
plumbum.utils
legacy shortcut in favor ofplumbum.path.utils
- Bugfix: the left-hand-side process of a pipe wasn’t waited on, leading to zombies (#89)
- Added
RelativePath
(the result ofPath.relative_to
) - Fixed more text alignment issues in
cli.Application.help()
- Introduced
ask()
andchoose
tocli.terminal
- Bugfix: Path comparison operators were wrong
- Added connection timeout to
RemoteMachine
1.3¶
Command.popen
: a new argument,new_session
may be passed toCommand.popen
, which runs the given in a new session (setsid
on POSIX,CREATE_NEW_PROCESS_GROUP
on Windows)Command.Popen
: args can now also be a list (previously, it was required to be a tuple). Seelocal.daemonize
: run commands as full daemons (double-fork andsetsid
) on POSIX systems, or detached from their controlling console and parent (on Windows).list_processes
: return a list of running process (local/remote machines)SshMachine.nohup
: “daemonize” remote commands vianohup
(not really a daemon, but good enough)atomic
: Atomic file operations (AtomicFile
,AtomicCounterFile
andPidFile
)copy
andmove
: thesrc
argument can now be a list of files to move, e.g.,copy(["foo", "bar"], "/usr/bin")
- list local and remote processes
- cli: better handling of text wrapping in the generated help message
- cli: add a default
main()
method that checks for unknown subcommands - terminal: initial commit (
get_terminal_size
) - packaging: the package was split into subpackages; it grew too big for a flat namespace. imports are not expected to be broken by this change
- SshMachine: added
password
parameter, which relies on sshpass to feed the password tossh
. This is a security risk, but it’s occasionally necessary. Use this with caution! - Commands now have a
machine
attribute that points to the machine they run on - Commands gained
setenv
, which creates a command with a bound environment - Remote path: several fixes to
stat
(StatRes
) - cli: add lazily-loaded subcommands (e.g.,
MainApp.subcommand("foo", "my.package.foo.FooApp")
), which are imported on demand - Paths: added relative_to and split, which (respectively) computes the difference between two paths and splits paths into lists of nodes
- cli:
Predicate
became a class decorator (it exists solely for pretty-printing anyway) - PuttyMachine: bugfix
1.2¶
- Path: added chmod
- Path: added link and symlink
- Path:
walk()
now applies filter recursively (#64) - Commands: added Append redirect
- Commands: fix
_subprocess
issue (#59) - Commands: add
__file__
to module hack (#66) - Paramiko: add ‘username’ and ‘password’
- Paramiko: add ‘timeout’ and ‘look_for_keys’
- Python 3: fix #56 and #55
1.1¶
- Paramiko integration #10
- CLI: now with built-in support for sub-commands. See also: #43
- The “import hack” has moved to the package’s
__init__.py
, to make it importable directly #45 - Paths now support
chmod
(on POSIX platform) #49 - The argument name of a
SwitchAttr
can now be given to it (defaults toVALUE
) #46
1.0.1¶
- Windows: path are no longer converted to lower-case, but
__eq__
and__hash__
operate on the lower-cased result #38 - Properly handle empty strings in the argument list #41
- Relaxed type-checking of
LocalPath
andRemotePath
#35 - Added
PuttyMachine
for Windows users that relies onplink
andpscp
(instead ofssh
andscp
) #37
1.0.0¶
0.9.0¶
Initial release