Update for new paths on GraniteOld (soon to become mcidasv) [0]
Use Jython's PosixModule to grab process id for mcservl.

Jython relies on jnr-posix to provide a "POSIX emulation layer" on a
wide variety of platforms (AIX, FreeBSD, Linux, OS X, OpenBSD, Solaris,
and Windows).
Fix for TreePanel with no components. [1380]

Also javadoc updates.
Rework position keyword logic. [1303]

This affects both listADDEImages and listADDEImageTimes, and they
*should* handle the position values the same.

The "position" keyword may now be:

* Unspecified, which means pos=ALL.

* An integer for matching things positionally.

* A two element tuple for a range.
Pass date range to ADDE server. [1303]

This creates a single URL, rather than a URL for every date in the
range.
[0] Dreamweaver updates synced from web server.
Revert position default to 0. [1303]

I don't know why I'm subconsciously drawn to making the default value
"ALL".
Explicitly closing AreaFile. [1303]

Also added a *very* temporary parameter to getADDEImage called
"socketdebug" (default value is false). If enabled, it'll attempt to
give a little more information upon encountering an error.
Remove socketdebug param. [1303]
Add "/bin" to .gitignore. [0]
[0] Dreamweaver updates synced from web server.
[0] Dreamweaver updates synced from web server.
Jython logging redirected to mcidasv.log. [1303]
Remove arbitary date ability. [1303]

Also excised some commented-out junk.
Remove some repetitive code. [1303]
[0] Dreamweaver updates synced from web server.
Comment out runFile stub. [1303]
Remove ADDE debugging output. [1303]

Note that the ADDE URLs created by getADDEImage, listADDEImages, and
listADDEImageTimes can still be printed out; simply add the following
to your function calls:

  showUrls=True
Default behavior is to continue showing URLs!

[1303]
Decorator proof of concept. [1303]

This is fallout from today's meeting…the (poorly named, for now!)
transform_flatfields decorator will attempt to convert any incoming
parameters that are SingleBandedImage-s into an ImageSequence
containing *only* the incoming parameter.

It' also *tries* to be smart about auto-converting the results of the
wrapped function back into its original representation.

This can be tested by dumping the example code in the following link
into your Jython Library and then creating a new formula that refers
back to the testFunc1000 function.

    https://gist.github.com/jon4than/21227a868d15f35c67ca

You should now be able to run testFunc1000 (with data from
getADDEImage) from the Jython Shell. Here's what I was using as a test
from within the Jython Shell:

    _, megaObj = getADDEImage(**params1)
    print megaObj
    print type(megaObj)
    result = testFunc1000(megaObj)
    print result
    print type(result)

(please try to disregard my stupid testcode names!)