nanshe_learner: Missing keyword for call to advanced_image_processing.postprocess_data.
HDF5_recorder: Added a clearer exception for the __getitem__ methods.
additional_generators: Corrected some inconsistencies in index_generator docstring and comments.
additional_generators: Added the function index_enumerator, which extends index_generator to provide enumeration over the indices.
additional_generators: Cleaned up filled_stringify_enumerate. Also, added a new doctest.
additional_generators: Added a new function filled_stringify_numbers, which is a product of refactoring filled_stringify_enumerate and solving other use cases.
additional_generators: Created the function lagged_generators, which creates a tuple of generators, based off one generator provided, with each next generator one step ahead of the previous generator.
additional_generators: Created the function lagged_generators_zipped, which uses the results from lagged_generators to zip together. Optionally, can zip along the longest generator with an optional fillvalue for the shorter ones.
additional_generators: Modified filled_stringify_numbers so that it will only create a list from a given iterable if it cannot find its length and its max value.
additional_generators: Modified filled_stringify_enumerate so that it will only create a list from an iterable provided if it cannot find it's length.
debugging_tools: Added feature to ensure traceback information is given. Very helpful in multiprocessing cases.
HDF5_serializers: Changed read_numpy_structured_array_from_HDF5 so that it now properly reads h5py.Reference and h5py.RegionReference objects (provides support for external files as well using an attribute).
nanshe_learner: Check added to make sure neurons exist before attempting to write them out.
advanced_image_processing: Added checks for unmerged neurons and merged neurons to determine whether to write them out.
advanced_image_processing: Cleaned up representation of get_neuron_dtype by using numpy types for all types in the structured array dtype.
advanced_image_processing: Refactored get_neuron_dtype to take a shape and dtype instead of a sample image. Refactored get_empty_neuron and get_one_neuron to behave the same way.
nanshe_learner: Multiprocessing from beginning to end. This cleverly slices the given image into blocks without having to read the image into memory or copy it. Uses subprocess.Popen to launch each learner in a separate process (required in order to ensure SPAMS remained sandboxed). Also, it creates a config file and HDF5 files for each block, which it places in a directory below the output file. This makes it easy to use a cluster scheduler to call each job. In addition, it aids in debugging in that one can inspect the results of each block. Also, it allows the user to run different configurations on a single block before applying them to all blocks. This fixes issue #9.
nanshe_learner: Allowed generate_neurons_blocks to extract and reappend the debug flag from parameters.