0.81.2
======

add MULTIREQ -- required parameter that accepts multiple, comma-seperated
values

Execute
-------
fix password and input writing to child processes


0.81.1
======

Execute
-------
always send first kill signal before checking for life


0.81.0
======

Execute
-------
if using pty raise exception when password is requested and no more passwords
remain;

Exit
----
Exit enumeration no longer exported to the global namespace (must be accessed
as Exit.Xxx)


0.80.8
======

OrmFile
-------
selecting a section with subsections now shows the subsections


0.80.7
======

OrmFile
-------
support nested headers, e.g.:

    [postgres]
    some_value = "a value"
    [postgres.v903]
    another_value = "a value"


0.80.6
======

support SCRIPTION_VERBOSITY and SCRIPTION_DEBUG as environment variables

OrmFile
-------
- convert 'none' to None
- convert dumb ini files (types restricted to str, int, float, bool, and None)


0.80.5
======

Job/Execute: yield control to subprocess so it can finish closing its job


0.80.4
======

properly handle end-of-data in ProgressView


0.80.2
======

improve return code handling


0.80.1
======

ProgressView now supports directly wrapping an iterable
add info and debug wrappers to print which default verbose level to 1 and 2
add NameSpace to API
add nice reprs to NameSpace and OrmFile
add iteration support to NameSpace and OrmFile


0.80.0
======

allow flags to be used option-style (e.g. --flag=on)
cast envvar values to the correct type

backwards-incompatible change:
- once a vararg is encountered, all remaining args are also treated as varargs


0.79.3
======

include FailedPassword and TimeoutError in __all__


0.79.2
======

fix negative option handling (i.e. --no-option)


0.79.1
======

correctly set scription_command_name


0.79.0
======

add 'b' and 'u' compatibility shims
improvements in Job
add test switch to skip slow tests
add injected variables to __all__

backwards-incompatible change:
- defaults in function header are always used
- defaults in Script or Command decorators are only used if option is selected


0.78.1
======

include traceback in thread exceptions
guard entire communicate function with try/except


0.78.0
======

rework thread support
fix input for Execute
add tests for thread control


0.77.4
======

properly shutdown and close IO threads and handles
always close comm channels
do not block on write when shutting down child


0.77.3
======

fix closing stdin


0.77.2
======

only do passwords and writes if child process is still alive
terminate stdin thread when child jobs finishes
add ProgressView to display either a bar graph or an increasing numeric


0.77.1
======

OrmFile
- keys are case-insensitive
- fall-through type is now str (was int)

use `aenum` for Enumerations instead of `enum34`
add ReturnCode Enumeration
multiple abbreviations allowed for switches
environment variables supported for argument values
pocket returns single item for single item, tuple for multiple items
add `script_fullname` which contains path and script name


0.77.0
======

backwards-incompatible change:  Truth -> Truthy, Falsth -> Falsey


0.76.0
======

add Trivalent, a three-valued logic class, with singletons of
Truth, Unknown, and False (+1, 0, -1)

return value of commands is now the returncode of the script


0.75.5
======

fix default validator in get_response


0.75.4
======

message in abort() is now optional
add error() alias to print to stderr
add support for wheels
improve get_response


0.75.3
======

support new envs and/or env vars
change method of killing timed-out jobs
suppress warnings about inspect.getargspec


0.75.2
======

redo Execute while loop


0.75.1
======

flush output


0.75.0
======

Execute
-------

- use timer loop to drive both subprocess and pty instead of signals
- do not strip any output before passwords
- keep Execute as convenience function; actual class changed to Job


0.74.41
=======

change Execute pty default back to False as I encountered issues with
forked processes forking other processes

use signal to provide timeout when pty is False on non-Windows systems;
(Windows systems are out of luck until Python 3.3)


0.74.40
=======

If Execute times out, modify resulting object instead of raising


0.74.38
=======

change Execute pty default on non-Windows systems to True


0.74.35
=======

allow other scriptionified modules to be imported
remove ability for Script to be used as a plain function


0.74.34
=======

arguments to Execute passed as a list no longer get quotes around them
reenable -h for help
do not show command name as a list in --help


0.74.33
=======

enhance Execute pty support
allow multiple passwords / raise if no password available


0.74.31
=======

--version now recognizes 'version', '__version__', 'VERSION', and
'__VERSION__'


0.74.30
=======

do not strip leading/trailing whitespace from Execute output


0.74.29
=======

-v only means 'verbose' if v has not been used as an abbreviation for some
other argument
remove whitespace from script __doc__ when printing help


0.74.28
=======

Execute: new 'interactive' paramater:
  False  -> only store output
  'echo' -> echo output as soon as feasible (and store)


0.74.26
=======

Execute: raise ExecuteTimeoutError when pty is True and timeout is exceeded;
all Execute*Error now have an attribute, process, that contains the Execute
attempt


0.74.25
=======

Execute: close error pipe when done reading (avoids resource leakage in long-
running processes)


0.74.24
=======

change mail() to not require a server (will attempt to use the server in the
recipients' address) or the port (defaults to 25); also, if message is a
string it will have its To, Cc, and Bcc fields split on comma to determine
recipients; finally, it will return a dictionary of recipients and error
information (if any) -- an empty dict means mail went to everyone


0.74.23
=======

better usage of docstrings in help output


0.74.21
=======

use 'help()' instead of raising exceptions for user errors
quote args that contain white space
fix writing error output from child


0.74.20
=======

inject script_verbosity


0.74.17
=======

use None as default for a MULTI option when specified in header (not
(None, ) )


0.74.16
=======

fix regression: parameter type from def will be used if none in Spec
fix regression: show script name in help output
fix help display when Scription has no function
show module __doc__ with help display
change global help to show commands and their doc strings; specific
command help will show details
always inject 'script_name' and 'script_command_name'
fix CHANGES file (not at 0.75 yet!)


0.74.15
=======

allow _params in commands to not be annotated
treat underscore and dash the same in command names


0.74.13
=======

allow returncode to be specified when using abort() or help()


0.74.12
=======

inject 'script_name' in to script's globals
add script_name to abort() and help() output
list all subcommands when --help is requested


0.74.10
=======

add wait_and_check(seconds, period=1): is True until <seconds> have elapsed,
and waits <period> seconds each check


0.73.08
=======

decode OrmFile (default is utf-8)


0.74.06
=======

decode command-line to unicode under Python2 (Python3 does this for us)


0.74.03
=======

add --version and --all-versions as scription built-ins


0.74.00
=======

add --verbose as a built-in


0.73.00
=======

converted from modules to package
added CHANGES and LICENSE files
