ChangelogΒΆ

2018-06-20 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump to v0.9.0-post

2018-06-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/static/VirusDataAnalysisTool.qch: make sure that the offline docs
          are up-to-date
    * setup.py: prepare for release v0.9.0
        * ReleaseNotes.rst: same

2018-06-20 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/collapse_tree into ^/trunk
        * ReleaseNotes.rst: add rst links to issues

2018-06-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: when showing the reduction browser the first
          time, collapse all if the tree is too long; resolves #1343
    * tests/test_gui/test_tree_view.py: try to test it
    * doc/_source/gui/tree_view.rst: add a note about it
        * ReleaseNotes.rst: update

2018-06-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: better action name
    * doc/_source/_static/menubar_view.png: update screenshot
    * doc/_source/gui/menu_bar.rst: document the change; resolves issue #2476

2018-06-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwindow.py: connect the new menu actions with the tree view
          slots to expand and collapse; second part of issue #2476
    * tests/test_gui/test_mainwindow.py: test it
    * tests/test_gui/conftest.py: move fixtures here
    * tests/test_gui/test_tree_view.py: from here

2018-06-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: add a menu with tree view actions; first part
          of #2476
    * vdat/gui/menubar.py: add it to the menu bar and re-emit the new signals
    * tests/test_gui/test_menus_actions.py: test the changes
    * tests/test_gui/test_menubar.py: same

2018-06-18 Francesco Montesano <montefra@mpe.mpg.de>

   * doc/_source/index.rst: add ReadTheDocs link and logo, add release notes
   * doc/_source/release_notes.rst: same
   * ReleaseNotes.rst: convert to rst

2018-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: makes pyds9 optional as it has always meant to be (blame
          ReadTheDocs)
    * doc/_source/install.rst: update the docs
    * vdat/gui/tabs/ifu_viewer.py: improve the message when ds9 is not installed
    * tests/test_gui/test_tabs/test_ifu_viewer.py: update the tests
    * tox.ini: install pyds9
    * requirements_rtd.txt: don't install pyds9 on ReadTheDocs

2018-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * requirements_rtd.txt: install pyds9

2018-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * readthedocs.yml: disable conda
    * requirements_rtd.txt: install pyqt5

2018-06-15 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/qtpy into ^/trunk

2018-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/install.rst: add info about qtpy and the Qt backends. Resolves
          issue #2259
    * doc/_source/contributions.rst: same
    * doc/_source/conf.py: add link to issues

2018-06-13 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: PySide2 is not supported by some dependency
    * vdat/gui/menus_actions.py: add NOTE about pyqtProperty.deleter

2018-06-12 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: pyside crashes, use pyqt4 on py34

2018-06-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: super initializiation
    * vdat/gui/queue.py: invert class inheritance order
    * vdat/gui/tabs/ifu_widget.py: same
    * tests/test_gui/test_queue.py: add sleep to make tests more reliable
    * tests/test_gui/test_tabs/test_ifu_widget.py: relax test
    * tests/test_gui/test_tabs/test_tab_widget.py: work around a test problem

2018-06-11 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: py27 tests PyQt4
    * tests/test_gui/conftest.py: fix problems with PyQt4
    * tests/test_gui/test_help_window.py: same
    * tests/test_gui/test_tabs/test_ifu_viewer.py: same

2018-06-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_help_window.py: fix import
    * tests/test_gui/test_mainwindow.py: same
    * tests/test_gui/test_tabs/test_ifu_widget.py: same
    * tests/test_gui/test_tree_view.py: same
    * vdat/gui/tabs/ifu_widget.py: same
    * tox.ini: add variable needed to run the tests

2018-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: use qtpy>=1.1
    * vdat/gui/*.py: pyqt{Signal,Slot,Property} lost a ``pyqt``
    * tests/test_gui/test_central.py: same
    * vdat/gui/tabs/ifu_widget.py: same and fix one Q-stuff

2018-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * pytest.ini: remove qt_api
    * tox.ini: same
    * tests/conftest.py: remove sip calls
    * tests/test_gui/*py: move to qtpy; second part of #2259

2018-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: remove also all sip calls
    * vdat/gui/queue.py: remove non used import

2018-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: get rid of the pyqt4 tester and add qtpy as dependency
        * tox.ini: install pyqt5 and don't symlink pyqt in the virtual environment
    * vdat/gui: convert documentation to PyQt5 and use qtpy; first part of #2259
    * vdat/command_interpreter/signals.py: update comments accordingly

2018-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/symlink into ^/trunk

2018-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/trunk into ^/branches/symlink

2018-06-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: if required, replace the symlinks; resolves issue
          #2587
    * vdat/config/vdat_setting.cfg: add the corresponding option
    * tests/test_libvdat/test_symlink.py: test the change
    * tests/test_gui/test_mainwidget.py: update the tests
    * doc/_source/dirstruct.rst: update
    * ReleaseNotes.md: udpate

2018-06-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add possibility to do relative symlinking;
          resolves #2437
    * vdat/config/vdat_setting.cfg: add the option
    * vdat/libvdat/vdat.py: and expose it to the command line
    * vdat/config/versions.py: bump the config version
    * doc/_source/dirstruct.rst: document the change
    * tests/test_libvdat/test_symlink.py: test the changes
    * tests/test_gui/test_mainwidget.py: same
    * tests/test_config/test_versions.py: same
    * ReleaseNotes.md: update

2018-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: add module docstring
    * vdat/gui/tabs/ifu_widget.py: fix typo

2018-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/conftest.py: add configuration option and fixture for the extra
          data files
    * tests/test_ci/test_command_interpreter.py: use the new fixture
    * tests/test_gui/test_tabs/test_ifu_widget.py: same
        * doc/_source/contributions.rst: document the new extra test data repository

2018-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/data/raw: remove it to speedup checkouts

2018-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * readthedocs.yml: install vdat as ocd, but in conda
    * requirements_rtd.txt: install pyhetdex from extra index
    * environment.yml: remove pip dependences

2018-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * environment.yml: get matplotlib from conda, use quotes for the pip
          options, cleanup pip packages

2018-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * environment.yml: remove conda dependency

2018-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * environment.yml: remove the prefix at the end of the file

2018-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * environment.yml: conda environment file
    * readthedocs.yml: tell readthedocs to use the above file
    * vdat/gui/tabs/ifu_viewer.py: if pyds9 is not importable, deal with it
    * doc/_source/install.rst: removed non used footnotes

2018-06-05 Francesco Montesano <montefra@mpe.mpg.de>

    * LICENSE_cc: added
    * doc/_source/license.rst: add licence
    * doc/_source/index.rst: add notice
    * vdat/gui/mainwindow.py: PEP8

2018-05-08 Francesco Montesano <montefra@mpe.mpg.de>

    * LICENSE_fdl1.3: added
    * LICENSE_gpl3: added
    * doc/_source/license.rst: add licenses, resolves issue #1757
    * doc/_source/index.rst: add copyright notice
    * vdat/**.py: same
    * doc/_source/command_interpreter.rst: fix typo

2018-05-08 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/logs into ^/trunk

2018-05-08 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/menu_bar.rst: add section about the log menu. Resolves
          issue #2474
    * doc/_source/_static/menubar_log*.png: add new screenshot
    * doc/_source/_static/menubar_log_window.png
    * doc/_source/_static/menubar_*.png: update existing ones
    * vdat/gui/static/VirusDataAnalysisTool.qch: update
    * vdat/gui/menus_actions.py: update docs and log window button
    * ReleaseNotes.md: update

2018-05-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: add refresh button. Third part of issue #2474
    * tests/test_gui/test_menus_actions.py: test the changes

2018-05-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: open read-only text window to display a log
          file. Second part of issue #2474
    * tests/test_gui/test_menus_actions.py: 

2018-05-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: add actions to open log files (callback not yet
          implemented). First part of issue #2474
    * vdat/gui/menubar.py: change an import
    * tests/test_gui/test_menus_actions.py: test it
    * tests/test_gui/test_menubar.py: same

2018-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: the level of the message printed out at
          the end of the run method depend on the success of the command executions;
          resolves #2547
    * tests/test_ci/test_command_interpreter.py: test it
        * ReleaseNotes.md: update

2018-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: create a menu entry for the logs and an action
          to clear the log widget; resolves issue #2444
    * vdat/gui/menubar.py: plug it into the menu bar
    * vdat/gui/mainwindow.py: and connect the signals
    * tests/test_gui/test_menubar.py: test the signals
    * tests/test_gui/test_mainwindow.py: and the connections
        * ReleaseNotes.md: update

2018-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/logger_widget.py: make sure to append the new log message;
          resolves issue #1764; improve docs and cleanup unused code
    * tests/test_gui/test_logger_widget.py: test the widget
    * doc/_source/codedoc/gui/logger_widget.rst: add the module in the docs
    * doc/_source/codedoc/gui/index.rst: and in the index
        * ReleaseNotes.md: update

2018-04-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/static/VirusDataAnalysisTool.qch: update the offline documentation
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2018-04-13 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/display_distortion into ^/trunk

2018-04-12 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_tabs/test_ifu_widget.py: makes sure to end the
          QPainter to avoid coredumps

2018-04-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: use the fits_multiext to display fiber model.
          Resolves #2371
    * ReleaseNotes.md: add changes

2018-04-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add extension to tab name
    * doc/_source/gui/main_panel.rst: document the fits_multiext tab type (fifth
          part of #2371)
    * doc/_source/gui/ifu_viewer.rst: and the changes to the FITS viewer
    * doc/_source/_static/fits_viewer_ext.png: add screenshot
    * doc/_source/_static/fplane_fits_multiext.png: same

2018-04-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: display in ginga one extension and send the
          same extension to DS9 (fourth part of #2371). Fix bug with badly named
          variables
    * tests/test_gui/test_tabs/test_ifu_viewer.py
    * vdat/utilities.py: deal with itertools name changes in python2/3

2018-04-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: add ``ext`` in the formatting dictionary
          (third part of #2371)
    * tests/test_gui/test_fplane.py: make sure that it works

2018-04-12 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add the fits_multiext tab type
    * vdat/gui/tabs/entry_points.py: its entry point implementation
    * vdat/gui/tabs/tab_widget.py: its tab implementation
    * vdat/gui/tabs/ifu_widget.py: and its ifu implementation
    * tests/test_gui/test_fplane.py: test it
    * tests/test_gui/test_tabs/test_ifu_widget.py: same
    * tests/test_list_plugins.py: update accordingly

2018-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: create thumbnail also for multi extension files (first
          part of #2371)
    * tests/data/mastertwi_L.fmod: add a test file
    * tests/test_gui/conftest.py: and a fixture about it
    * tests/test_gui/test_gui_utils.py: and test the changes

2018-04-11 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^trunk into ^/branches/display_distortion

2018-03-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add the dist tab (properly resolving #2386)
    * vdat/config/versions.py: bump the task minor version

2018-03-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: fix docstring
    * vdat/gui/tabs/ifu_widget.py: add rescaling of fonts in QImage
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * doc/_source/gui/main_panel.rst: document the new dist tab type. Resolves
          issue #2386
    * doc/_source/gui/ifu_viewer.rst: document the new dist window
    * doc/_source/_static/dist_viewer.png: add screenshot
    * doc/_source/_static/fplane_dist.png: same

2018-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add possibility to send only the region to an
          existing ds9 frame
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test the changes

2018-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/utilities.py: add a chunk iterator
    * vdat/gui/tabs/ifu_viewer.py: send a chunk of regions at a time to speed it
          up; add spinning wheel (eighth part of #2386)
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test it
    * tests/test_utilities.py: same

2018-03-20 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_tabs/test_ifu_widget.py: better isolate tests

2018-03-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: the DS9 menu must not add a new frame
    * tests/test_gui/test_tabs/test_ifu_viewer.py: update the tests

2018-03-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: on double click, open a DistWindow (seventh
          part of #2386)
    * vdat/gui/tabs/ifu_viewer.py: small improvements
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the double clicking

2018-03-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add DistWindow (sixth part of #2386)
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test the changes
    * tests/test_gui/conftest.py: move around fixures
    * tests/test_gui/test_tabs/test_ifu_widget.py: same
    * tests/data/mastertwi_L.dist.reg: add an example region file

2018-03-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: extract the ds9 menu from the fits window
          (fifth part of #2386)
    * tests/test_gui/test_tabs/test_ifu_viewer.py: update accordingly

2018-03-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: add an IFU widget to display distortion files
          (fourth part of #2386)
    * vdat/gui/tabs/tab_widget.py: use it
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * tests/test_gui/test_fplane.py: extend a bit the test
    * tests/data/mastertwi_L.dist: add a test distortion file

2018-03-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: fix bug introduced by the new IFU class
    * tests/test_gui/test_tabs/test_ifu_widget.py: add regression test
    * pytest.ini: strict xfait

2018-03-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: modify the IFUFitsWidget using the new class
          (third part of #2386)
    * tests/test_gui/test_tabs/test_ifu_widget.py: modify the tests accordingly

2018-03-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: refactor the code to create a grid of images
          in the IFU (second part of #2386)

2018-03-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: isolate the thumbnail item class

2018-03-01 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add the new dist tab type (first part of issue #2386)
    * vdat/gui/tabs/entry_points.py: and it's interface
    * vdat/gui/tabs/tab_widget.py: and a first, non working, version to the tab
          type
    * tests/test_gui/test_fplane.py: test the changes
    * tests/test_list_plugins.py: same

2018-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: simplify the make cube step definition

2018-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/all_files_primary into ^/trunk

2018-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: add an example command using ``all_files``.
          Resolves #2443.
    * vdat/config/tasks.yml: add a task using the above command
    * doc/_source/command_interpreter.rst: add note about ``all_files`` and
          ``filter_selected``
    * tests/test_libvdat/test_loggers.py: update tests

2018-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_interpreter.rst: document the ``all_files`` primary
          type (second part of #2443)

2018-04-11 Francesco Montesano <montefra@mpe.mpg.de>

        * setup.py: add the new ``all_files`` primary type (first part of #2443)
    * vdat/command_interpreter/types.py: implement it
    * tests/test_ci/test_types.py: test the changes

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/datacube into ^/trunk

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: describe the new tab type (resolves issue
          #2370)
    * doc/_source/_static/fplane_fits_cube.png: add a screen shot
        * doc/_source/gui/ifu_viewer.rst: add some small information about data
          cubes
    * vdat/gui/tabs/entry_points.py: fix the docs
    * ReleaseNotes.md: update

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: pep8
    * vdat/gui/tabs/ifu_viewer.py: when displaying a 3d fits, set the image to
          the nanmedia of the z_indx (if available) or of the whole range (fourth
          part of #2370)
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test the changes

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: add z_indx in the thumbnail name (third part
          of #2370)
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * vdat/config/tasks.yml: use the new fits_cube tab type and add some example
          of z_indx

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add fits_cube tab type entry point (second part of #2370)
    * vdat/gui/tabs/entry_points.py: and its implementation
    * vdat/gui/tabs/tab_widget.py: the corresponding tab type 
    * vdat/gui/tabs/ifu_widget.py: and ifu widget
    * tests/test_gui/test_fplane.py: test the changes
    * tests/test_gui/test_gui_utils.py: same
    * tests/test_gui/test_tabs/test_ifu_widget.py: same
    * tests/test_list_plugins.py: same
    * tests/test_gui/conftest.py: same
    * vdat/exceptions.py: add VDAT exceptions
    * doc/_source/codedoc/exceptions.rst: add them to the documentation
    * doc/_source/codedoc/index.rst: same
    * doc/Makefile: rebuild also if something in vdat/ changes

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add support for data cube thumbnail creation
    * tests/data/CuFeSpdsses_084.fits: add datacube example
    * tests/test_gui/test_gui_utils.py: add tests for datacube

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>
        
        * : merge ^/trunk into ^/branches/datacube

2018-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: add command to make cubes; resolves #2390
    * vdat/config/tasks.yml: add task to run and visualise it
    * vdat/config/versions.py: update the version
    * ReleaseNotes.md: update
    * tests/test_libvdat/test_loggers.py: update the tests

2018-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: fix missing pointer
    * vdat/database/base.py: something changed on peewee/sqlite, threadsafe
          option doesn't work anymore
    * vdat/database/check.py: missing columns now raise an AttributeError
    * vdat/libvdat/symlink.py: same
    * tests/test_database.py: update the tests
    * tests/test_gui/test_queue.py: update according to the primary key changes
    * tests/test_gui/test_tree_view.py: make the tooltip change more stable

2018-04-09 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/extract_fibers into ^/trunk

2018-04-09 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update

2018-03-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: use previous commit to define a single
          fiberextract command and add extraction of master files. Resolves issue
          #2441
    * vdat/config/tasks.yml: add fiber extraction in the cal tabs

2018-03-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: make primary accept also a list.
          Resolves issue #2454
    * doc/_source/command_interpreter.rst: update the documentation
    * tests/test_ci/test_command_interpreter.py: and the tests
    * tests/conftest.py: set the caplog logger level to DEBUG

2018-03-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: add command to extract fibers from pre-sky
          subtracted images
    * vdat/config/tasks.yml: add the buttons and the tabs in the fiber
          extraction task
    * vdat/config/versions.py: bump the versions

2018-03-05  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: Replace flatfits call for
        mastertwi / masterflat with meanflat

2018-03-02  Jan Snigula  <snigula@mpe.mpg.de>

    * vdat/config/tasks.yml: Use perrow overscan subtraction
    * vdat/config/vdat_commands.yml: Use perrow overscan subtraction

2018-02-27 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/display_distortion

2018-02-27 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/simplefits into ^/trunk

2018-02-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add a ``exp_fits`` and ``fits`` tab type plugin
    * vdat/gui/tabs/entry_points.py: and their implementation; resolves #2389
    * tests/test_gui/test_fplane.py: test it
    * tests/test_list_plugins.py: same
    * doc/_source/gui/main_panel.rst
    * ReleaseNotes.md

2018-02-20 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/resize/ into ^/trunk

2018-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add splitter between the ginga fits viewer
          and the fits header keys list (resolves issue #2350)
    * ReleaseNotes.md: update

2018-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: add splitter between fplane and task list, allow to
          make fplane small (resolves issue #2326)
    * vdat/gui/mainwindow.py: allow slightly smaller VDAT window
        * ReleaseNotes.md: update

2017-12-13 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: use pytest>3.3 and remove pytest-catchlog. Resolves #2257
    * setup.py: same
    * doc/source/install.rst: update accordingly
    * doc/Makefile: open the browser
    * doc/source/contributions.rst: update accordingly

2017-10-20  Francesco Montesano  <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.8.0-post

2017-10-20  Francesco Montesano  <montefra@mpe.mpg.de>

    * setup.py: set version 0.8.0
    * ReleaseNotes.md: same
    * vdat/gui/static/VirusDataAnalysisTool.qch: update documentation
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2017-10-20  Francesco Montesano  <montefra@mpe.mpg.de>

    * tests/test_gui/conftest.py: better parametrization of the fplane_file
          fixture
    * tests/test_gui/test_tabs/test_ifu_widget.py: make test pass properly

2017-10-20  Francesco Montesano  <montefra@mpe.mpg.de>

        * : merge ^/branches/text_file_tab in ^/trunk

2017-10-20  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add text_file tabs for the detect action

2017-10-18  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: don't set icons, apparently doesn't work on mac...
    * vdat/gui/static/icons: remove the icons
    * vdat/gui/tabs/ifu_viewer.py: don't do line wraps

2017-10-18  Francesco Montesano  <montefra@mpe.mpg.de>

        * : merge ^/trunk in ^/branches/text_file_tab

2017-10-18  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add text_file tab for the dither file

2017-10-12  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/static/icons: add a subset of the "macOS Icons" icons
          https://store.kde.org/p/1102582/
    * vdat/gui/__init__.py: if the theme name is not set, set it to the above
          name. Resolves issue #2133

2017-09-27  Francesco Montesano  <montefra@mpe.mpg.de>

    * tests/test_gui/conftest.py: update fixture
    * tests/test_gui/test_tabs/test_ifu_viewer.py: 100% coverage of the
          ifu_viewer module
    * vdat/gui/tabs/ifu_viewer.py: make some little change to allow testing

2017-09-26  Francesco Montesano  <montefra@mpe.mpg.de>

    * doc/_source/_static/fits_viewer.png: update screenshot
    * doc/_source/_static/text_file_viewer.png: same

2017-09-26  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add the quit and help menu to the ifu viewer
          windows

2017-09-25  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/menubar.py: plug the Help menu and get rid of the unnecessary
          signals
        * vdat/gui/mainwindow.py: remove slots and connection incorporated into the
          Help menu. Second part of issue #2135
    * vdat/gui/help_window.py: set reasonable size for the help window
    * tests/test_gui/test_mainwindow.py: remove tests

2017-09-25  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: isolate the help menu for better reusability.
          First part of issue #2135
    * tests/test_gui/test_menus_actions.py: test it

2017-09-22  Francesco Montesano  <montefra@mpe.mpg.de>

    * doc/_source/gui/ifu_viewer.rst: describe the new text file window
    * doc/_source/gui/main_panel.rst: finish documentation of the text file tab
    * doc/_source/_static/fplane_text_file.png: add screenshot
    * doc/_source/_static/text_file_viewer.png: same

2017-09-21  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: if the file exists, open it in the file
          editor
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it

2017-09-21  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add basic text editor
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test it

2017-09-20  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: create QuitAction
    * vdat/gui/menubar.py: use it
    * tests/test_gui/test_menus_actions.py: test it

2017-09-18  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: prepare al image with the number of lines
    * vdat/gui/tabs/tab_widget.py: no need to add the cleanup method
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes
    * tests/test_gui/test_tabs/test_tab_widget.py: the fake IFU are not needed

2017-09-13  Francesco Montesano  <montefra@mpe.mpg.de>

        * setup.py: add text_file tab plugin. First part of issue #2108
    * vdat/gui/tabs/entry_points.py: implement the entry point for text_file
    * vdat/gui/tabs/tab_widget.py: implement the tab type (I think that it's
          everything that we need)
    * vdat/gui/tabs/ifu_widget.py: implement the setup method of the ifu widget.
          It still doesn't display anything
    * doc/_source/gui/main_panel.rst: begin documenting the changes
    * tests/test_gui/test_fplane.py: test the new plugin
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the initialisation and
          setup of the new ifu widget
    * tests/test_gui/test_tabs/test_tab_widget.py: test the new tab widget
    * tests/test_list_plugins.py: update the number of plugins

2017-10-11  Niv Drory  <drory@astro.as.utexas.edu>

        * config/vdat_commands.yml (subtract_os): remove deceptively evil -s flag.

2017-10-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * : merge ^/branches/exclude_ifus into ^/trunk

2017-10-04  Francesco Montesano  <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: add some info about the fplane file

2017-09-29  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: add option to respect empty columns and rows
          when displaying the focal plane. Resolves issue #2139
    * vdat/gui/tabs/tab_widget.py: use it
    * vdat/gui/central.py: exclude the IFUs also in the main part of the gui
    * tests/test_gui/conftest.py: adapt the tests
    * tests/test_gui/test_tabs/test_tab_widget.py: same

2017-09-27  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: add option to ignore IFUSLOT. Resolves
          issue #2138
    * vdat/config/versions.py: bump the vdat_setting.cfg version to 1.1.0
    * vdat/gui/tabs/tab_widget.py: propagate the above option to the focal plane
          in the GUI
    * tests/test_config/test_versions.py: update the versions

2017-09-15  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: forgot to copy the updated fplane file (updated
          from fplane20170202.txt in the virus_config repo)

2017-09-15  Francesco Montesano  <montefra@mpe.mpg.de>

        * : merge ^/branches/fplane_map into ^/trunk
    * vdat/gui/static/VirusDataAnalysisTool.qch: update
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2017-09-15  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: use the fplane_map type
    * vdat/config/tasks.yml: update the commands to use it
    * vdat/config/versions.py: update the version

2017-09-14  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: add the fplane_map type. Resolves issue
      #2115
    * doc/_source/command_interpreter.rst: document it
    * setup.py: advertise it
    * tests/test_ci/test_types.py: test it

2017-09-09 Daniel Farrow <dfarrow@mpe.mpg.de>
    
    * vdat/config/tasks.yml: Fixed mistake which caused some
      tabs to be repeated

2017-09-07  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: Fixed fiberextract mandatories

2017-09-06  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: correct the dither_file executable call
    * vdat/config/vdat_commands.yml: same

2017-09-05  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: fix typo in variable name (modelbalse ->
          modelbase in the mkdither command)
    * vdat/config/tasks.yml: fix the above type, fix error in Fiber extracted
          tab title

2017-08-22  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: Update filename prefixes and
        pixelflat filenames.
        deformer step creates dists/fmods for flat and twilight.
        flatnorm runs for flat and twilight models.
        * vdat/config/tasks.yml: Moved pixelflat step before ccdcombine
        Added buttons to use twilight dist/fmod for skysubtraction and
        fiberextract

2017-08-21  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: pixflat_lib dir defaults to ./pixel_lib
        * vdat/config/tasks.yml: Use pixelflats by default

2017-08-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/tasks.yml: Use master twilight frames for deformer

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.7.0-post

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: require pyhetdex 0.12.0, bump version to 0.7.0
    * ReleaseNotes.md: update
    * tox.ini: remove devel pyhetdex version dependency
    * vdat/gui/static/VirusDataAnalysisTool.qch: update
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/next_pyhetdex/ into ^/trunk

2017-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_libvdat/test_loggers.py: fix number of log files created

2017-08-11  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/versions.py: Bumped version numbers
        * vdat/config/tasks.yml: More pipeline updates
        * vdat/config/vdat_commands.yml: Same

2017-08-09  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: Use library bias and dark frames
        * vdat/config/tasks.yml: Same
        * vdat/libvdat/vdat.py: Fixed multiprocessing on OS X

2017-04-20 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_gui_utils.py: get rid of warnings
    * tests/test_libvdat/test_symlink.py: same
    * vdat/gui/utils.py: same
    * tests/test_gui/test_tabs/test_ifu_widget.py: improve float comparison

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: re-add cov-init, use devel version of pyhetdex everywhere

2017-07-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: use new pyhetdex.tools.db_helpers module
    * vdat/libvdat/symlink.py: same
    * tests/test_database.py: remove unnecessary tests
    * vdat/database/__init__.py: remove unnecessary imports

2017-06-28 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: add python 3.6
    * vdat/config/entry_point.py: use pyhetdex functions. Resolves issue #1964
    * tests/test_config/test_entry_point.py: update the tests

2017-06-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: depends on configparser on python 2
    * tox.ini: use devel pyhetdex
    * vdat/config/core.py: use configparser; resolves #1983
    * vdat/config/versions.py: same
    * vdat/gui/menubar.py: same
    * vdat/gui/utils.py: same
    * vdat/libvdat/vdat.py: same
    * tests/test_gui/test_gui_utils.py: same, get rid of warnings
    * tests/test_gui/test_mainwindow.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_loggers.py: same
    * tests/test_libvdat/test_symlink.py: same
    * tests/test_libvdat/test_vdat.py: same

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to v0.6.1-post

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: prepare for v0.6.1 release
    * ReleaseNotes.md: same

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: use pyhetdex override_conf instead of its own
          implementation. Resolves issue #1850
    * tests/test_config/test_core.py: update tests

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/peewee_connect into ^/trunk

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_mainwidget.py: wrap every database query/modification
          within a connection. Solved issue #1897
    * tests/test_gui/test_menubar.py: same
    * tests/test_gui/test_menus_actions.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_symlink.py: same
    * vdat/gui/central.py: same
    * vdat/gui/menubar.py: same
    * vdat/gui/menus_actions.py: same
    * vdat/gui/tabs/entry_points.py: same
    * vdat/gui/tabs/tab_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/database/core.py: open and close the database only if it's not on
          memory

2017-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * tox.ini: ignore little-deploy failures
    * vdat/database/core.py: connect only if the database is closed. Fixes issue
          #1895.
    * vdat/libvdat/symlink.py: wrap some query into db.connect()

2017-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * scripts/symlink_pyqt.sh: fix bug

2017-02-03 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: prepare v0.6.0 release
    * ReleaseNotes.md: same

2017-02-03 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/branches/debug_logs into ^/trunk

2017-02-03 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk into ^/branches/debug_logs

2017-01-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add option to process events while the thread is
          running
    * tests/test_gui/test_gui_utils.py: test it
    * vdat/gui/mainwidget.py: use it to update the GUI as the symlinking is
          running (fixes #1765)

2017-01-31 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_mainwidget.py: add tests
    * vdat/gui/mainwidget.py: do only the symlink in the thread

2017-02-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: workaround to fix issue #1782

2017-02-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: resolves issue #1782
    * tests/test_gui/test_tabs/test_ifu_widget.py: adapt mocking in tests

2017-02-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: improve documentation, resolves issue #1779
    * vdat/gui/static/VirusDataAnalysisTool.qch: add the new documenation
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2017-02-01 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/tabs/ifu_widget.py: uses astropy's zscale. Fixes Issue #1777

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk into ^/branches/debug_logs

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add function to run the FuncQThread with the waiting
          cursor.
    * vdat/gui/mainwindow.py: use it
    * vdat/gui/treeview_model.py: use it
    * vdat/gui/mainwidget.py: use it when running the symlink from the GUI.
          Solves issue #1765
    * tests/test_gui/test_gui_utils.py: add tests
    * tests/test_gui/test_mainwidget.py: added. Need to finish testing the
          widget, but I first need to merge the other branch as it has some fixture
          I need

2017-01-27 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/conftest.py: tmp_dir is now a of tmpdir with the possibility to
          remove the directory; add fixtures
    * tests/test_gui/test_init.py: move fixture to conftest
        * tests/test_integration_vdat.py: add regression/integration test for the
          bug in #1317
    * vdat/gui/__init__.py: partial refactoring to help testing
    * vdat/libvdat/vdat.py: add argv option to main for testing purposes

2017-01-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: don't set the logger level
    * vdat/gui/logger_widget.py: set the handler level to INFO
    * tests/conftest.py: fix sip.setapi to v2 for all the types

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/static/VirusDataAnalysisTool.*: update documentation with the
          latest changes

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/branches/plug_tabs_1533 into ^/trunk

2017-01-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/list_plugins.py: add functionality to list entry points. Solves issue
          #1613
    * vdat/gui/fplane.py: move entry point group name to variable
    * tests/test_list_plugins.py: test the new functionality
    * doc/_source/gui/main_panel.rst: add some documentation
    * doc/_source/codedoc/index.rst: same
    * doc/_source/codedoc/list_plugins.rst: same
    * setup.py: add the entry point

2017-01-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: make "Individual" radio button react to
          button release to allow repainting the GUI. Resolved issue #1679
    * doc/_source/gui/main_panel.rst: add some hint about this

2017-01-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: reset individual selection when dropping fits
          tabs
    * tests/test_gui/test_tabs/test_tab_widget.py: update the tests

2017-01-10 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: move the new plugin implementation away.
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: move it here and update
          the rest

2017-01-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: port all the tasks to the new tab types. Resolves
          #1724

2017-01-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: make sure that the user is not spammed with
          reconstruction error if the reconstruction object is not present. Resolved
          #1725

2016-12-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/interface.py: add the enabled property
    * vdat/gui/fplane.py: set the tab enabled or not
    * tests/test_gui/conftest.py: move fixture here
    * tests/test_gui/test_central.py: from here
    * tests/test_gui/test_fplane.py: test tab enabled

2016-12-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: add overlay if no tab displayed; fixes issue #1603
    * tests/test_gui/test_fplane.py: test it and fix other tests accordingly

2016-12-15 Francesco Montesano <montefra@mpe.mpg.de>

        fixes issue #1720

    * doc/_source/conf.py: add ginga intersphinx
    * vdat/gui/tabs/entry_points.py: remove unused entry points
    * vdat/gui/tabs/ifu_viewer.py: fix documentation and remove unused code
    * vdat/gui/tabs/ifu_widget.py: same

2016-12-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: fix documentation
    * vdat/gui/tabs/interface.py: same
    * vdat/gui/tabs/tab_widget.py: same and remove old code

2016-12-14 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/send_to_ds9.png: added
    * doc/_source/gui/ifu_viewer.rst: add some documentation about the fits
          viewer

2016-12-14 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/ifu_viewer.rst: add screenshot
    * doc/_source/gui/main_panel.rst: add information about the header_keys
          keyword
    * doc/_source/_static/fits_viewer.png: added
    * vdat/config/tasks.yml: add the header_keys keyword
    * vdat/gui/tabs/ifu_viewer.py: remove line with file name

016-12-14 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: finish the tabs documentation
    * doc/_source/gui/ifu_viewer.rst: add basic info
    * doc/_source/gui/menu_bar.rst: add references
        * doc/_source/_static/vdat_main_panel.png: add
        * doc/_source/_static/vdat_screenshot.png: update

2016-12-13 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: document the reconstruct tab type
    * doc/_source/_static/fplane_reconstruct.png: add screenshot

2016-12-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: create unique file names using md5 hash.
          Fixes issue #1714

2016-12-12 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/tabs/ifu_widget.py: pass title and tooltip to fits window; fixes
          issue #1715
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes

2016-12-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add ability to pass custom tab titles and
          tooltip
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test it

2016-12-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: unset basenames
    * vdat/gui/tabs/tab_widget.py: pass basenames to the ifus
    * vdat/gui/tabs/entry_points.py: add the "reconstruct" tab type
    * setup.py: add the entry point
    * vdat/config/tasks.yml: use it
    * doc/_source/gui/main_panel.rst: add the entry point in the documentation
    * tests/test_gui/test_fplane.py: test the new entrypoint
    * tests/test_gui/test_tabs/test_tab_widget.py: test the changes

2016-12-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: add basenames property to allow loop over
          them to combine multiple exposures
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes

2016-12-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: rename combined to fits_combined
    * setup.py: same
    * tests/test_gui/test_fplane.py: same
    * doc/_source/gui/main_panel.rst: add the fits_combined documentation
    * doc/_source/_static/fplane_fits_combined.png: add image
    * vdat/config/tasks.yml: re-add all the cal steps

2016-12-06 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_central.py: re-enable the empty fplane tab type for
          testing only
    * tests/test_gui/conftest.py: move some fixture here
    * tests/test_gui/test_fplane.py: modify accordingly
    * vdat/gui/fplane.py: change pkg_resources import to allow mocking
    * vdat/gui/tabs/entry_points.py: make the empty_fplane private

2016-12-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: implement the combined tab type
    * setup.py: add its entry point, remove old tab entry points 
    * tests/test_gui/test_fplane.py: test the new entry points, remove old entry
          point tests
    * doc/_source/gui/main_panel.rst: add the entry point docstring

2016-12-06 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_queue.py: disable some more test for python2
    * vdat/config/tasks.yml: add the first three steps of the zro reduction with
          the new tab system

2016-12-05 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: add documentation of the exp_combined tab
          type
    * doc/_source/_static/fplane_exp_combined.png: added

2016-12-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: add exp_combined entry point implementation
    * vdat/gui/tabs/ifu_widget.py: extend the number of ids that is possible to
          use the fits file name; fix bug with cleanup in the base class
    * vdat/gui/tabs/interface.py: fix documentation
    * vdat/gui/tabs/tab_widget.py: create the title and, if given, the tool tip;
          remove the tooltip on cleanup
    * doc/_source/gui/main_panel.rst: begin the documentation
    * setup.py: add the exp_combined entry point
    * tests/test_gui/test_fplane.py: test the new entry point
    * tests/test_gui/test_tabs/test_tab_widget.py: fix the tests for the title
          and tooltip

2016-12-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: the base class cleanup method set the empty
          image and paint it (issue #1688)
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it

2016-12-01 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * vdat/gui/tabs/tab_widget.py: add the widgets in the setup method only
    * tests/test_gui/test_tabs/test_tab_widget.py: update tests

2016-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: remove the widgets from the layout when doing
          the cleanup and readd them on setup as a workaround for the non-showing
          problem when readded into the fplane
    * tests/test_gui/test_tabs/test_tab_widget.py: update tests
    * tests/test_gui/test_fplane.py: make sure the first widget is selected

2016-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add temporary entry point for the stacked widget
    * vdat/gui/tabs/entry_points.py: add the entry point function for the
          stacked widget
    * vdat/gui/tabs/tab_widget.py: work on the aspect of the stacked widget. Use
          a check box in the bar at the bottom of the focal plane
    * vdat/gui/utils.py: move the vertical spacer here
    * tests/test_gui/test_fplane.py: add an integration test
    * tests/test_gui/test_tabs/test_tab_widget.py: test the changes

2016-11-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: disable the switch button if no
          reconstruction object present
    * tests/test_gui/test_tabs/test_tab_widget.py: test it

2016-11-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: fix bug
    * tests/test_gui/test_tabs/test_tab_widget.py: according to tests the widget
          works

2016-11-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: a first implementation of issue #1669 is done
    * tests/test_gui/test_tabs/test_tab_widget.py: start testing (still all to
          do, though)

2016-11-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: extend clean/update cached thumbnails to the
          quick reconstruction widget
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes
    * tests/test_gui/test_queue.py: disable some test for python2

2016-11-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: clean/update cached thumbnails if needed
          (issue #1660)
    * vdat/gui/utils.py: update function
    * tests/test_gui/test_gui_utils.py: update tests
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the new implementation

2016-11-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: make sure that the header keywords are
          correctly reordered (issue #1675)
    * tests/test_gui/test_tabs/test_ifu_viewer.py: add regression test
    * tox.ini: raise the bar for success of the coverage

2016-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: show the reconstructed image in the fits
          viewer window
    * tests/test_gui/test_tabs/test_ifu_widget.py: test some of it

2016-11-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add possibility to show header keywords at
          the beginning
    * vdat/gui/tabs/ifu_widget.py: pass the tab configuration dictionary
    * vdat/gui/tabs/entry_points.py: document
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test the header keyword
          reordering
    * tests/test_gui/test_tabs/test_ifu_widget.py: update tests

2016-11-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: open the fits viewer on double click
    * vdat/gui/tabs/ifu_viewer.py: zoom to fit on first show
    * tests/test_gui/test_tabs/test_ifu_widget.py: add tests

2016-11-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: fix bug introduced with fixing #1646
    * tests/test_gui/test_queue.py: re-enabled some test that would have avoided
          this bug

2016-11-17 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: make sure selections are correctly propagated to all
          tabs (#1671)
    * vdat/gui/tabs/ifu_widget.py: same
    * vdat/gui/tabs/tab_widget.py: same
    * tests/test_gui/conftest.py: fix fixtures
    * tests/test_gui/test_central.py: test the changes
    * tests/test_gui/test_fplane.py: same

2016-11-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: add the reconstructed IFU pluging
          (issue #1633)
    * vdat/gui/tabs/ifu_widget.py: implement the IFU widget for it
    * vdat/gui/tabs/tab_widget.py: implement the tab widget for it
    * vdat/gui/utils.py: add the prefix for the reconstructed files
    * setup.py: add the entry point
    * ReleaseNotes.md: update
    * tests/test_gui/conftest.py: new fixture of the reconstructed object
    * tests/test_gui/test_fplane.py: test the new plugin
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the new widget
    * tests/test_gui/test_tabs/test_tab_widget.py: same

2016-11-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: remove all the reconstruction hints from the
          FitsFplanePanel class
    * vdat/gui/tabs/ifu_widget.py: store some more info, remove old pieces of
          code
    * vdat/gui/tabs/entry_points.py: cleanup the plugin
    * tests/test_gui/test_tabs/test_tab_widget.py: fix tests accordingly
        * ReleaseNotes.md: updated

2016-11-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: react to changing the scale
    * vdat/gui/tabs/ifu_widget.py: add attributes storing the global scaling and
          use them, if available, to paint the fits files
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * tests/test_gui/test_tabs/test_tab_widget.py: test it

2016-11-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: add zmin/zmax property
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * vdat/gui/tabs/tab_widget.py: get the global zscale for the IFUs and store
          it; add needed functionality for this; add cleanup
    * tests/test_gui/test_tabs/test_tab_widget.py: test it

2016-11-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add header information
    * vdat/gui/tabs/ifu_widget.py: ifu_viewer classes name changed
        * ReleaseNotes.md: udpated with issue #1631

2016-11-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: start rewriting the fits viewer. Show the
          files in independent tabs.
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test most of the new
          implementation
    * tests/test_gui/test_central.py: move fixtures from here ...
    * tests/test_gui/conftest.py: ... to here

2016-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: recreate thumbnail if it's older than the
          fits file; clear cached thumbnail if the fits file does not exist.
    * tests/test_gui/test_tabs/test_ifu_widget.py: test this

2016-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: move the thumbnailing code here
    * tests/test_gui/test_gui_utils.py: test it
    * vdat/gui/tabs/ifu_widget.py: implement prepare_image to produce thumbnails
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * tests/test_gui/conftest.py: add fixture

2016-11-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add base class for the IFU viewers
    * doc/_source/codedoc/gui/tabs/ifu_viewer.rst: add inheritance tree

2016-11-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: update documentation; get type from
          database
    * vdat/gui/tabs/tab_widget.py: add setup method
    * vdat/gui/tabs/ifu_widget.py: add and implement setup method
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * tests/test_gui/test_fplane.py: add fits_fplane integration test

2016-11-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: improve error messages at plugin loading time (issue
          #1655)
    * tests/test_gui/test_fplane.py: update tests

2016-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: add extra "step_name" parameter to pass to the plugins
    * vdat/gui/tabs/entry_points.py: same
    * vdat/gui/tabs/interface.py: same
    * vdat/gui/tabs/tab_widget.py: begin implementing the setup
    * vdat/gui/tabs/ifu_widget.py: same

2016-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: create fits_fplane entry point
    * setup.py: same
    * vdat/gui/tabs/tab_widget.py: add scale buttons to the GUI
    * vdat/gui/tabs/ifu_widget.py: remove unused method
    * tests/test_gui/test_tabs/test_tab_widget.py: test new class init

2016-10-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: don't trigger single clicks on double click
          (issue #1639)
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: add some info about
          this
    * ReleaseNotes.md: updated with the issue reference

2016-10-25 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: updated
    * vdat/gui/queue.py: remove the command and thread when the command finishes
          to run
    * vdat/gui/tabs/tab_widget.py: set parent in the thread

2016-10-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: don't draw the tab
    * vdat/gui/tabs/ifu_widget.py: fix hw_size, cleanup code
    * vdat/gui/tabs/tab_widget.py: use showEvent, properly select/unselect IFU
          to make it reply back
    * tests/test_gui/test_fplane.py: add regression test to make sure that
          selecting/deselecting all IFUs work as expected
    * tests/test_gui/test_tabs/test_ifu_widget.py: update tests
    * tests/test_gui/test_tabs/test_tab_widget.py: same
    * tests/test_gui/test_mainwindow.py: fix weird interaction with other tests
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: update with the
          showEvent info 
    * doc/_source/gui/main_panel.rst: add link to the above document

2016-10-21 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/codedoc/gui/tabs/entry_points.rst: added
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: add an example on how
          to use and extend the code
    * doc/_source/codedoc/gui/index.rst: add them to index
    * vdat/gui/tabs/entry_points.py: set parent explicitly
    * vdat/gui/tabs/ifu_widget.py: fix documentation

2016-10-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: add empty_fplane tab type using
          BaseFplanePanel
    * vdat/gui/tabs/interface.py: fix bug with error message
    * doc/_source/gui/main_panel.rst: add empty_fplane documentation
    * setup.py: add empty_fplane entry points
    * tests/test_gui/test_fplane.py: test that the new entry point behave as
          expected

2016-10-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: fix bugs
    * vdat/gui/tabs/ifu_widget.py: fix cleanup documentation
    * tests/test_gui/conftest.py: update fixture for better use
    * tests/test_gui/test_central.py: use the new fixtures
    * tests/test_gui/test_tabs/test_tab_widget.py: test BaseFplanePanel

2016-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: implement the BaseFplanePanel widget, rename
          some of the UpdateIFUTask parts
    * vdat/gui/tabs/ifu_widget.py: add TODO on a slot
    * vdat/gui/tabs/interface.py: update documentation
    * doc/_source/codedoc/gui/tabs/tab_widget.rst: show full inheritance
        * tests/test_gui/test_tabs/test_tab_widget.py: update the UpdateIFUTask
          names

2016-10-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: update the UpdateIFUTask to run
    * tests/test_gui/test_tabs/test_tab_widget.py: test it
    * vdat/gui/tabs/ifu_widget.py: update documentation

2016-10-18 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_central.py: move a fixture to the conftest
    * tests/test_gui/conftest.py: update above fixture
    * tests/test_gui/test_tabs/test_ifu_widget.py: added, test the BaseIFUWidget
    * vdat/gui/tabs/ifu_widget.py: fix renaming bugs

2016-10-17 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/codedoc/gui/tabs/ifu_widget.rst: add inheritance map
    * vdat/gui/tabs/ifu_widget.py: first iteration of the IFU widget base class
    * vdat/gui/tabs/tab_widget.py: fix names according to the above changes

2016-10-14 Francesco Montesano <montefra@mpe.mpg.de>


        * doc/_source/codedoc/gui/index.rst: use the new tabs/* files
    * doc/_source/codedoc/gui/tabs: created
    * doc/_source/codedoc/gui/tabs/ifu_viewer.rst: same
        * doc/_source/codedoc/gui/tabs/ifu_widget.rst: renamed from
          ../ifu_widget.rst
        * doc/_source/codedoc/gui/tabs/interface.rst: renambed from tabs_plugins
    * doc/_source/codedoc/gui/tabs/tab_widget.rst: created
    * doc/_source/conf.py: add inheritance diagram
    * vdat/gui/fplane.py: remove all the fplane panel implementation
    * vdat/gui/tabs/tab_widget.py: move here the fplane panel code
    * vdat/gui/ifu_viewer.py: move to tabs/ifu_viewer.py
    * vdat/gui/ifu_widget.py: move to tabs/ifu_widget.py

2016-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/index.rst: fix typo
    * doc/_source/gui/main_panel.rst: update the documentation
    * vdat/gui/tasks.py: PEP8 fix
        * doc/_source/conf.py: fix intersphinx link
        * ReleaseNotes.md: update

2016-09-30 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/fplane.py: remove yield_*_ifu methods and get rid of the
          VDATRunControl object
    * vdat/gui/treeview_model.py: don't use it

2016-09-30 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_fplane.py: test the FplaneWidget
    * vdat/gui/fplane.py: fix some bug and adjust edge cases

2016-09-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: Implement the plugin system for the tabs
    * vdat/gui/tabs/interface.py: adjust interfaces
    * doc/_source/codedoc/gui/fplane.rst: add the FplaneWidget to the docs
    * tox.ini: don't run the doc-qt if the qt* executables do not exist

2016-09-27 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * vdat/gui/tabs/interface.py: add the interface for the function
          implementing the plugin
    * doc/_source/gui/main_panel.rst: add a bit of documentation

2016-09-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/__init__.py: added
    * vdat/gui/tabs/interface.py: added; implement the FplaneTabTemplate class
          (issue #1601)
    * doc/_source/codedoc/gui/tabs_plugins.rst: added
    * doc/_source/codedoc/gui/index.rst: add tabs_plugins to the index
    * doc/_source/gui/main_panel.rst: add the FplaneTabTemplate to the
          documentation

2016-09-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: reimplement the FplaneCache as a pure cache without
          much intelligence
    * tests/test_gui/test_fplane.py: test it
    * doc/_source/gui/main_panel.rst: begin documenting the plugin system
    * doc/_source/codedoc/gui/fplane.rst: change the documentation to better
          separate parts

2016-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: create here cache and call the reconstruction object
          in the appropriate place; fix super calls
    * vdat/gui/central.py: move the cache creation in the fplane module
    * tests/test_gui/test_central.py

2016-08-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: don't pass a reconstruct object to the FplaneCache
          object. Add property that returns it using the function create in r440
    * vdat/gui/central.py: remove the reconstruction object creation and adapt
          the code
    * tests/test_gui/test_central.py: remove tests about the reconstruction
          object
    * ReleaseNotes.md: update

2016-08-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add function that creates the QuickReconstruct object
          only once and returns it
    * tests/test_gui/test_gui_utils.py: test it
    * tests/conftest.py: add fixture to deal with it
    * tests/test_gui/conftest.py: move around some fixture
    * tests/test_gui/test_central.py: same and adapt

2016-08-18 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk into ^/branches/plug_tabs_1533

2016-08-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menubar.py: emit a signal instead of closing the VDAT (issue
          #1568)
    * vdat/gui/mainwindow.py: connect the above signal with the mainwindow close
          slot; isolate connections with the menu bar into a method
    * tests/test_gui/test_mainwindow.py: test closing via the above signal
        * ReleaseNotes.md: update

2016-08-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/help_window.py: add support for mailto (issue #1579)
    * tests/test_gui/test_help_window.py: test it
    * setup.py: update dependencies to coverage>=4.2
    * tox.ini: same, remove obsolete cov-init environment

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/splash_screen_1562 into ^/trunk 

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/splash_screen_1562
        * vdat/gui/static/VirusDataAnalysisTool*: updated and renamed

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: remove always on top flag, make surer that the
          splashscreen is shown
    * tests/test_gui/test_init.py: update the tests

2016-08-01 Francesco Montesano <montefra@mpe.mpg.de>

    * AUTHORS: Majo added
    * ReleaseNotes.md: updated
    * doc/_source/_static/vdat_icon.ico: added
    * doc/_source/_static/vdat_name.jpg: added
    * doc/_source/_static/vdat_screenshot.png: updated
    * doc/_source/command_interpreter.rst: fix typo
    * doc/_source/conf.py: add the VDAT logo and name
    * setup.py: fix ginga and pytest-qt to older version
    * tox.ini: same
    * tests/test_gui/test_init.py: added
    * vdat/gui/__init__.py: work around splash screen not showing

2016-08-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: do all the splash screen things here
    * vdat/gui/mainwindow.py: add window icon
    * vdat/gui/static/HETDEX_*.jpg: new images and renamed to VDAT_*.jpg
    * vdat/gui/static/vdat_icon.jpg: added and used as icon
    * vdat/libvdat/vdat.py: just create and show the splash screen

2016-07-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: add splash screen functionality
    * vdat/gui/static/HETDEX_black.jpg: added
    * vdat/gui/static/HETDEX_white.jpg: same
    * vdat/libvdat/vdat.py: show the splash screen

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/qt_help_1454/ into ^/trunk

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>


    * ReleaseNotes.md: update
    * vdat/gui/menubar.py: add about Qt button
    * doc/_source/_static/menubar_help.png: update accordingly
    * doc/_source/gui/menu_bar.rst: same
        * tests/test_gui/test_menubar.py: same
    * vdat/gui/static/VDATVirusDataAnalysisTool.*: add updated documentation

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwindow.py: remove the logging gui handlers when closing down
    * vdat/database/core.py: fix connect context manager for in memory database
    * tests/test_database.py: test it
    * tests/test_gui/test_mainwindow.py: add and test the whole mainwindow
    * tests/test_gui/test_help_window.py: make the monkeypatch of static method
          work on py2
    * tests/test_gui/test_queue.py: temporarily skip some of the offending tests

2016-08-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/help_window.py: don't run setup in the __init__ for better test.
          Setup the data only after connecting the slot to setup the content widget
    * vdat/gui/menubar.py: set help menu object name for easier testing
    * vdat/gui/utils.py: don't cover run method
    * tests/test_gui/test_gui_utils.py: add test for static directory and qthelp
          file
    * tests/test_gui/test_help_window.py: added
    * tests/test_gui/test_menubar.py: add test for when no documentation is
          found

2016-08-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/help_window.py: added to address issue #1454
    * vdat/gui/mainwindow.py: add slot to open the help window
    * vdat/gui/menubar.py: add menu item to open the help window
    * vdat/gui/static/VDATVirusDataAnalysisTool.qch: add documentation
    * vdat/gui/static/VDATVirusDataAnalysisTool.qhc: same
    * vdat/gui/utils.py: add functions to get the documentation file
    * doc/Makefile: make qthelp now also creates the qch and qhc files
    * doc/_source/codedoc/gui/help_window.rst: added
    * doc/_source/codedoc/gui/index.rst: add
    * doc/_source/contributions.rst: add information about the qt documentation
    * tox.ini: add you environment to create the qt documentation

2016-08-02 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/contributions.rst: update information (issue #1529)

2016-08-02 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/db_version_cleanup into ^/trunk

2016-07-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_widget.py: convert property to pyqtProperty (issue #1532)
    * vdat/gui/menus_actions.py: same
    * vdat/gui/treeview_model.py: same
    * tests/test_libvdat/test_symlink.py: add more randomization to decrease the
          possible file name clashes

2016-08-02 Francesco Montesano <montefra@mpe.mpg.de>

    * pytest.ini: set qt_api=pyqt4
    * setup.py: set pytest-qt>=0.2, skip broken version of ginga
    * tests/test_database.py: fix test
    * tests/test_gui/test_progress.py: same
    * tox.ini: fix pytest-qt version and remove qt_api

2016-07-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/models.py: update VDATExposures according to issue #1530
    * vdat/database/check.py: update the conversion function
    * vdat/libvdat/symlink.py: update the creation of the exposures entries
    * tests/conftest.py: update the current exps dictionary
    * tests/test_database.py: adapt tests
    * tests/test_gui/test_menus_actions.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_symlink.py: same
    * ReleaseNotes.md: update with info about the issue

2016-07-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/models.py: remove virtual and ifus fields as per issue #1339
    * vdat/database/check.py: update the conversion function
    * tests/conftest.py: update the current shot, move here db initialization
          routines
    * tests/test_database.py: adapt the tests
    * tests/test_gui/test_central.py: same
    * ReleaseNotes.md: update with info about the issue

2016-07-01 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/db_version_cleanup

2016-07-01 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * tests/test_database.py: make sure that metadata are moved

2016-07-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/check.py: when updating the meta data, remove superfluous
          entries
    * vdat/libvdat/symlink.py: improve error messages when inserting existing
          meta data
    * tests/test_database.py: test the changes
    * tests/test_libvdat/test_symlink.py: same
    * tests/conftest.py: shuffle fixtures around

2016-06-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/launching.rst: add some info about vdat_db command
    * vdat/database/check.py: after updating the metadata try to add it to the
          database
    * tests/test_database.py: test it
    * doc/_source/codedoc/utilities.rst: added
    * doc/_source/codedoc/index.rst: added to the index

2016-06-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/check.py: add possibility to repair the database
    * tests/test_database.py: test it

2016-06-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/check.py: make vdat_db check subcommand
    * tests/test_database.py: test the changes

2016-06-20 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add enum34 for python < 3.4 and colorama; add vdat_db entry point
    * vdat/database/check.py: added, implement db checks
    * vdat/database/core.py: allow to create db in memory (and don't close it)
    * vdat/utilities.py: function that reads the shot and exps files can also
          return the dir containing the files
    * tests/test_database.py: test the new check module
    * tests/test_utilities.py: update tests

2016-06-17 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: move the function to scan for metadata files to
          vdat/utilities.py and adapt
    * vdat/utilities.py: update the above function implementation
    * tests/test_libvdat/test_symlink.py: adapt the tests
    * tests/test_utilities.py: same

2016-06-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/base.py: add database exception class
    * vdat/database/models.py: 
    * vdat/database/__init__.py: make merge_entries more robust against type
          mismatches
    * tests/test_database.py: test the database subpackage
    * tests/test_database: removed

2016-06-30 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/config_version into ^/trunk

2016-06-30 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/config_version

2016-06-30 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: fix typo
    * vdat/config/entry_point.py: don't add common parser to the parent one

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/codedoc/database.rst: show class inheritance
    * vdat/database/models.py: add version as a table column with a check
    * vdat/database/__init__.py: explicitly import stuff at the package level
    * vdat/database/core.py: remove __all__
    * vdat/libvdat/symlink.py: add the table versions
    * tests/test_gui/test_menubar.py: same
    * tests/test_gui/test_menus_actions.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_symlink.py: same
    * tests/test_database: added for the future
        * ReleaseNotes.md: updated

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update with info about issue #1501

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: disable the reconstruction checkbox and tab if the
          reconstruction object does not exist
    * vdat/gui/central.py: remove unnecessary method

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_central.py: finish testing the central module
    * vdat/gui/mainwindow.py: fix documentation typo

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: modify imports to allow monkeypatching for the tests;
    * tests/test_gui/test_central.py: add first part of the central module tests

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: don't fail if the quick reconstruction object
          creation fails; add documentation
    * vdat/config/entry_point.py: fix typo
    * doc/_source/codedoc/gui/central.rst: added
    * doc/_source/codedoc/gui/tasks.rst: added
    * doc/_source/codedoc/gui/index.rst: add them to the index

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md
    * vdat/config/entry_point.py: add backup option to the vdat_config copy
          command
    * doc/_source/launching.rst: document it
    * tests/test_config/test_entry_point.py: test it

2016-06-13 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/launching.rst: add the compare command to the doc
    * vdat/config/entry_point.py: fix one of the info messages

2016-06-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/versions.py: add the remaining loaders
    * tests/test_config/test_versions.py: test them

2016-06-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/versions.py: add some loader to check if files are reasonable
    * vdat/config/entry_point.py: add ``-l/--load`` option
    * tests/test_config/test_entry_point.py: test the above
    * tests/test_config/test_versions.py: same

2016-06-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: some improvement on the messages
    * tests/test_config/test_entry_point.py: update the tests

2016-06-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: add diff of files
    * tests/test_config/test_entry_point.py: test it

2016-06-09 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add colorama for nice coloured output
    * vdat/config/entry_point.py: add a compare subcommand and check if files
          exist and have the correct version
    * vdat/config/versions.py: add helper functions
    * tests/test_config/test_entry_point.py: test it
    * tests/test_config/test_versions.py: test it

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/__init__.py: explicitly import attributes
    * vdat/config/core.py: remove __all__
    * vdat/config/versions.py: explicit file names to copy and file versions
    * vdat/config/entry_point.py: rewrite the copy function to use the list of
          names and to replace version numbers
    * vdat/config/tasks.yml: add version
    * vdat/config/vdat_commands.yml: add version
    * vdat/config/vdat_setting.cfg: add version
    * tests/test_config/test_entry_point.py: update the tests
    * tests/test_config/test_versions.py: add
    * doc/_source/codedoc/config.rst: add the versions module

2016-06-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/_source/command_interpreter.rst: improved the documentation (hopefully)
    * vdat/gui/ifu_viewer.py: Fixed a small bug created by a previous rename 
      of the ihmp attribute in the IFU object to ifuslot.
 
2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/log_sig_1492 into ^/trunk

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/trunk into ^/branches/log_sig_1492

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py: use the command_intepreter command_logger into the
          QCommandInterpreter, connecting/disconnecting the default helper slot in
          the ``run`` method
    * tests/test_gui/test_queue.py: PEP8
    * tests/test_libvdat/test_symlink.py: remove unused import
    * ReleaseNotes.md: update release notes

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/clone_remove into ^/trunk 
    * ReleaseNotes.md: update

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/trunk into ^/branches/clone_remove
    * ReleaseNotes.md: update

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: re-emit the sig_exposure_removed signal in the
          ReductionQTreeView; return the menu created at right-click
    * tests/test_gui/test_tree_view.py: properly test the menu and that the
          signal is re-emitted

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: add sig_exposure_removed signal to address
        issue #1498
    * tests/test_gui/test_menus_actions.py: test the emission

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/tree_view.rst: add Remove exposure description
    * doc/_source/_static/tree_view_clone_remove.png: update screenshot

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: clear the menu before adding new actions
    * tests/test_gui/test_menus_actions.py: test the menus_actions module
    * doc/_source/codedoc/gui/menus_actions.rst: added
    * doc/_source/codedoc/gui/index.rst: add to the index

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: implement a dynamic menu to remove exposures
    * vdat/gui/treeview_model.py: use it

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: clone in a thread and wait for it to finish;
          set the cursor to wait cursor when cloning or removing a directory
    * tests/test_gui/test_tree_view.py: adapt to the changes and test that
          cloning within or without the thread leads to the same result

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: explicitly create actions to clone/remove and
          connect them to slots
    * tests/test_gui/test_tree_view.py: update the tests
    * doc/_source/_static/tree_view_clone_remove.png: update image

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: create signal to perform the command
          logger
    * vdat/command_interpreter/core.py: use it to communicate the
          success/failure of the single sub-commands
    * vdat/command_interpreter/helpers.py: add default implementation for a slot
          for the above signal
    * tests/test_ci/conftest.py: adapt the tests to the changes
    * tests/test_ci/test_command_interpreter.py: same
    * tests/test_ci/test_helpers.py: same
    * tests/test_ci/test_signals.py: same

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/changelog.rst: include changelog verbatim
    * setup.cfg: move coverage configuration here
    * .coveragerc: remove

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump the version and the required pyhetdex version
    * ReleaseNotes.md: update

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_progress.py: fix failing test

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: updated to the newest format and values

2016-06-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Updated to new fplane format
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/central.py: Same

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menubar.py: add possibility to specialize removal with the type
    * vdat/config/vdat_setting.cfg: add documentation and example on how to do
          this
    * doc/_source/gui/menu_bar.rst: document it
    * tests/test_gui/test_menubar.py: test it

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: fix typo
    * vdat/gui/utils.py: add function to remove files
    * vdat/gui/menubar.py: sig_remove_files are emitted with the error and thumb
          files
    * vdat/gui/mainwindow.py: connect the new menu bar signal with a slot and
          document the class
    * tests/test_gui/test_gui_utils.py: test the removal
    * tests/test_gui/test_menubar.py: adapt the tests
    * doc/_source/codedoc/gui/fplane.rst: added
    * doc/_source/codedoc/gui/ifu_widget.rst: added
    * doc/_source/codedoc/gui/index.rst: added
    * doc/_source/codedoc/gui/mainwidget.rst: added
    * doc/_source/codedoc/gui/mainwindow.rst: added
    * doc/_source/gui/menu_bar.rst: update the documentation

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/install.rst: fix documentation warning
        * tests/test_ci/test_ci_utils.py: renamed from test_utils.py to avoid pytest
          error
        * tests/test_gui/test_gui_utils.py: renamed from test_utils.py to avoid
          pytest error

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add a custom QThread that executes one function
    * tests/test_gui/test_utils.py: test the utilities
    * doc/_source/codedoc/gui/index.rst: add the utilities to the documentation
    * doc/_source/codedoc/gui/utils.rst: same

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/menubar_file.png: added
    * doc/_source/_static/menubar_help.png: added
    * doc/_source/_static/menubar_select.png: added
    * doc/_source/_static/menubar_view.png: added
    * doc/_source/codedoc/gui/menubar.rst: added
    * doc/_source/codedoc/gui/index.rst: add the above
    * doc/_source/gui/menu_bar.rst: document behaviour with links
    * doc/_source/install.rst: fix link
    * setup.py: bump version
    * tests/test_gui/test_menubar.py: test the menubar module
    * vdat/config/vdat_setting.cfg: add option with name of the files to remove
    * vdat/gui/menubar.py: add the delete file actions
    * vdat/gui/utils.py: add the thumbnails directory name

2016-06-03 Danuel Farrow <dfarrow@mpe.mpg.de>
   
    * vdat/gui/progress.py: Changed "Running" to "Finished" in the status bar,
          to better reflect the actual state of the job.

    Also changed the wording in some of the documentation:
    * doc/_source/command_interpreter.rst
    * doc/_source/dirstruct.rst
    * doc/_source/gui/index.rst
    * doc/_source/gui/main_panel.rst
    * source/gui/menu_bar.rst
    * doc/_source/gui/progress.rst
    * doc/_source/gui/queue.rst
    * doc/_source/gui/tree_view.rst
    * doc/_source/install.rst
    * doc/_source/launching.rst

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.4.0

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: add hints to use virus_config files
    * vdat/config/tasks.yml: update the commands

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: updated with the latest values

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/faq.rst: added
    * doc/_source/index.rst: add it to the index
    * vdat/libvdat/symlink.py: fix typos in error messages

2016-05-31 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * doc/_source/install.rst: solve #1452
    * doc/_source/contributions.rst: update

2016-05-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: add creation of mastertwi or masterflat
          from twilight frames; remove fake pixel flat
    * vdat/config/tasks.yml: add the above commands
    * vdat/libvdat/symlink.py: improve error message
    * vdat/config/entry_point.py: add space when asking to the user
    * tests/test_libvdat/test_loggers.py: adapt the tests to the removal of the
          fake pixel flat

2016-05-31 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/symlink.py: add customisation of the types to use for
          calibration
    * vdat/config/vdat_setting.cfg: add/modify the configuration options to
          support the changes above
    * vdat/libvdat/vdat.py: add command line overrides for the above changes
    * tests/test_libvdat/test_symlink.py: test combination of calibration types;
          get rid of virus00001 fixture
    * doc/_source/dirstruct.rst: document the changes

2016-05-30 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/launching.rst: update
    * doc/_source/dirstruct.rst: update
    * vdat/libvdat/vdat.py: update command line option name

2016-05-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/executables.rst: removed
    * doc/_source/index.rst: adapted
    * doc/_source/launching.rst: start improving the use information

2016-05-25  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Fix global cutlevel estimation fixing issue1482
        * vdat/gui/ifu_widget.py: Fix bad levels in thumbnails

2016-05-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: don't emit the number of primaries if
          it's zero
    * vdat/gui/queue.py: properly emit finished when CommandInterpreter.run
          returns
    * tests/test_ci/test_command_interpreter.py: adapt test

2016-05-25 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/vdat.py: skip interpolation error when setting CUREBIN in the
      environment
    * tests/test_libvdat/test_vdat.py: add tests for this

2016-05-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/progress.py: renamed from vdat/gui/progress_bar.py; move
          custom status bar here
    * vdat/gui/mainwidget.py: adapt
    * vdat/gui/mainwindow.py: adapt
    * tests/test_gui/test_progress.py: renamed from test_progress_bar.py; adapt
          to new name; add status bar tests
    * doc/_source/_static/progress_done.png: added
    * doc/_source/_static/progress_going.png: added
    * doc/_source/codedoc/gui/progress.rst: added
    * doc/_source/codedoc/gui/index.rst: adapt and cleaup
    * doc/_source/gui/progress.rst: add progress and status bar info
    * doc/_source/gui/progress_bar.rst: renamed progress.rst
    * doc/_source/gui/index.rst: adapted

2016-05-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: fix the documentation; make all slots public
    * vdat/gui/treeview_model.py: fixed typos
    * doc/_source/gui/queue.rst: user documentation added
    * doc/_source/_static/queue_screenshot.png: add screenshot
    * doc/_source/_static/queue_tooltip.png: same
    * doc/_source/codedoc/gui/queue.rst: added
    * doc/_source/codedoc/gui/index.rst: add queue to the index
    * doc/_source/codedoc/gui/tree_view.rst: fix title

2016-05-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/progress_bar.py: remove command interpreter signals and mark
          functions as slots
    * vdat/gui/mainwidget.py: re-enable progress bar
    * vdat/gui/mainwindow.py: connect the queue signals to the progress bars
          and the status bar; the isolate the status bar in its own class
    * tests/test_gui/test_progress_bar.py: rewrite the tests

2016-05-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move CommandInterpreter._run into a
          standalone function to avoid pickling the instance when running in
          multiprocessor mode; get all the signals and attach them to attributes,
          then use the attributes in the CommandInterpreter.run method
    * tests/test_ci/test_command_interpreter.py: adapt the tests
    * vdat/gui/queue.py: replace the VDATCommandWoker with a QCommandInterpreter
          class, that create a QObject out of the command_interpreter and implement
          the signals as pyqtSignals; adapt other parts of the code to those changes
    * tests/test_gui/test_queue.py: adapt the tests
    * vdat/gui/__init__.py: don't connect to CommandInterpreter signals
    * vdat/gui/central.py: use QCommandInterpreter
    * vdat/gui/mainwindow.py: add a function to connect the signals emitted by
          the queue
    * vdat/libvdat/vdat.py: don't connect to the CommandInterpreter signals

2016-05-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move all the signal emissions to the
          main process
    * vdat/gui/queue.py: re-emit worker signals in the Queue class; mark old
          worker and thread for deletion on the next command execution
    * tests/test_gui/test_queue.py: adapt the tests

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: connect command interpreter signals with pyqt ones
    * vdat/gui/__init__.py: cleanup imports
    * vdat/command_interpreter/signals.py: fix documentation bugs
    * tests/test_gui/test_queue.py: test the new signals

2016-05-17 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/relay.py: removed
    * vdat/gui/mainwindow.py: set the queue here, so that it can be used when
          creating the queue action; remove all relay.py references
    * vdat/gui/__init__.py: remove the setting of the queue
    * vdat/gui/queue.py: remove relay and use already existing signals
    * tests/conftest.py: remove relays; normalize clear_* fixtures
    * tests/test_ci/conftest.py: use clear_* fixtures
    * tests/test_ci/test_signals.py: use clear_* fixtures
    * tests/test_gui/test_progress_bar.py: use clear_* fixtures
    * tests/test_gui/test_queue.py: finish testing the queue module

2016-05-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: use a thread-worker approach
    * tests/test_gui/test_queue.py: test 89% of the queue module
    * doc/_source/codedoc/gui/index.rst: remove the background

2016-05-24 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/treeview_model.py: improve documentation and rename _pressed slot
          to on_press
    * doc/_source/codedoc/database.rst: added
    * doc/_source/codedoc/gui/index.rst: modified
    * doc/_source/codedoc/gui/tree_view.rst: added
    * doc/_source/codedoc/index.rst: add database
    * doc/_source/conf.py: add pyqt4 intersphinx (but it apparently doesn't
          work)
    * doc/_source/launching.rst: fix link

2016-05-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: add cal_dir and zero_dir to the tooltip
        * tests/test_gui/test_tree_view.py: add it to the test
    * doc/_source/_static/tree_view_tooltip.png: update the screenshot
    * doc/_source/gui/tree_view.rst: finish the documentation

2016-05-21 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/tree_view_clone_dialog.png: add screenshot
    * doc/_source/_static/tree_view_clone_remove.png: add screenshot
    * doc/_source/_static/tree_view_remove_dialog.png: add screenshot
    * doc/_source/_static/tree_view_screenshot.png: add screenshot
    * doc/_source/_static/tree_view_tooltip.png: add screenshot
    * doc/_source/dirstruct.rst: added todo
    * doc/_source/gui/index.rst: add information
    * doc/_source/gui/menu_bar.rst: little change
    * doc/_source/gui/tree_view.rst: begin improving the documentation

2016-05-19 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/vdat_screenshot.png: added
    * doc/_source/gui: all the gui related documentation moved here
    * doc/_source/gui/index.rst: short description and link to more detailed
          ones
    * doc/_source/gui/ifu_viewer.rst: added
    * doc/_source/gui/log_panel.rst: added
    * doc/_source/gui/main_panel.rst: added, all info about the main panel moved
          here
    * doc/_source/gui/menu_bar.rst: added
    * doc/_source/gui/progress_bar.rst: added
    * doc/_source/gui/queue.rst: moved here
    * doc/_source/gui/tree_view.rst: added, all info about the tree view moved
          here
    * doc/_source/index.rst: updated to point to gui/index

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: show the right menu entry only when clicking
          on a valid item; resolves #1465
    * tests/test_gui/test_tree_view.py: test ReductionQTreeView.option_menu slot

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: if no night found, return a model with only
          the root directory
    * tests/test_gui/test_tree_view.py: adapt tests and test the above case

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: move the creation of the model and the
          initialization of the view into the ReductionQTreeView class
        * vdat/gui/mainwidget.py: use the ``ReductionQTreeView.set_model`` method to
          redo the symlink
    * tests/test_gui/test_tree_view.py: adapt the tests

2016-05-20  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/menubar.py: Added Quit menu, renamed symlink to file menu

2016-05-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: fix #1448

2016-05-11  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Reuse the updateTask, removing one of the
        fast click crash bugs

2016-05-11  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed bug occuring when switching
        fplanes fast

2016-05-11 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * vdat/gui/background.py: remove
    * tests/conftest.py: adapt
    * vdat/gui/__init__.py: same
    * vdat/gui/queue.py: cleanup
    * tests/test_gui/test_queue.py: added

2016-05-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: don't use background
    * vdat/gui/background.py: start phasing this out
    * vdat/gui/queue.py: add a run method and a first implementation of the
          thread to run the command

2016-05-09 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/gui/background.py: remove unused immediate thread
     * vdat/gui/mainwindow.py: same

2016-05-11 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.4.0rc3
    * vdat/libvdat/vdat.py: fix command line interface
    * doc/_source/launching.rst: fix documentation of the above

2016-05-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: update the fplane file with the 9 IFUs
    * vdat/config/tasks.yml: update
    * vdat/config/vdat_commands.yml: update
    * vdat/gui/ifu_widget.py: add SPECID to the tooltip

2016-05-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwidget.py: fix symlinking in gui
    * vdat/gui/utils.py: add wait cursor context manager

2016-05-09  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Made updates more robust
        * vdat/gui/ifu_viewer.py: Add warning if no images selected to
        send to ds9
        * vdat/gui/ifu_widget.py: Make updates more robust

2016-05-09  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Only update ifus during cleanup, if they
        were initialized before

2016-05-06 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * vdat/config/vdat_commands.yml: add arguments to subtract sky
    * vdat/config/tasks.yml: same
    * vdat/gui/__init__.py: read progress report to console
    * vdat/gui/mainwidget.py: disable progress bar

2016-05-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: add virus instrument to the argument parser

2016-05-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove all astropy loggers
    * vdat/libvdat/loggers.py: explicitly pass configuration objects
    * vdat/libvdat/vdat.py: adapt
    * tests/test_libvdat/test_loggers.py: moved into test_libvdat;
          vdat.libvdat.loggers tested at 100%

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/gui/__init__.py: disconnect the indicator printing progress to console
     * vdat/gui/progress_bar.py: set value to zero when setting it up
     * tests/test_gui/test_progress_bar.py: test the latter

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: make sure that x11 can deal with threads

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add n_primaries signal to
          documentation
    * vdat/gui/progress_bar.py: implement the progress bar and connect to
          command_interpreter signals
    * vdat/gui/mainwidget.py: use the object in progress_bar.py module
    * tests/test_ci/conftest.py: move clean_connected to test/conftest.py
    * tests/test_gui: created
    * tests/test_gui/test_progress_bar.py: added
    * tests/test_gui/test_tree_view.py: moved into test_gui
    * tests/test_ci/test_signals.py: make sure to clean the signals

2016-05-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: new n_primaries signal
    * vdat/command_interpreter/helpers.py: helper function for that
    * vdat/command_interpreter/core.py: emit the signal
    * tests/test_ci/test_helpers.py: update tests
    * tests/test_ci/test_signals.py: same

2016-05-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/extra_files/lines_000[LR].dat: removed
    * vdat/config/extra_files/lines_[LR].par: copied from cure
    * vdat/config/vdat_commands.yml: use combinearcs to create masterarcs; use
          the new line files in deformer, fix option
    * vdat/config/tasks.yml: adapt to the above changes; now I can run deformer
          on most IFUs

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: update the configuration documentation
    * vdat/config/tasks.yml: add all the remaining reduction steps
    * vdat/config/vdat_setting.cfg: set the default pixel scale to 0.5, to speed
          up the GUI startup
    * vdat/gui/fplane.py: don't raise an error if there are no tabs for a task

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwidget.py: cleanup old ways of communication
    * vdat/gui/mainwindow.py: same
    * vdat/gui/relay.py: remove unused signals
    * vdat/gui/treeview_model.py: cleanup and mark method a pyqt slot

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Change default viewer size for
        reconstructed images
        * vdat/gui/ifu_widget.py: Fix possible memory leak in creation of
        binned images

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: remove unused imports
    * vdat/gui/menubar.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/gui/fplane.py: use itertools.product for nested loops
    * vdat/gui/gui.py: removed
    * vdat/gui/ifu_viewer.py: PEP8
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/mainwidget.py: same
    * vdat/gui/tasks.py: same
    * doc/_source/codedoc/gui/index.rst: remove vdat.gui.gui

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Show reconstructed images
        * vdat/gui/central.py: Made pixelscale for reconstructed images configurable
        * vdat/gui/ifu_widget.py: Show reconstructed images in ifu viewer
        fixes issues 1407 and 1409
        * vdat/config/vdat_setting.cfg: Added pixelscale for reconstructed images

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/conf.py: don't check pyhetdex version and use pyhetdex/latest
          for intersphinx

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * README.md: update
    * ReleaseNotes.md: add info about matplotlib removal
    * doc/_source/conf.py: remove matplotlib
    * doc/_source/install.rst: same
    * tests/conftest.py: same

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: get rid of APlpy and matplotlib
    * vdat/libvdat/vdat.py: same

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: add multiprocessing

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: require pyhetdex 0.7.0
    * tests/test_config/test_core.py: adapt tests to the new config files
    * doc/_source/codedoc/gui/index.rst: fix typo

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: document dither tab type
    * vdat/config/tasks.yml: add all reduction science steps up to dividing by
          pixel flats
    * vdat/gui/fplane.py: update dither type implementation
    * vdat/gui/ifu_widget.py: fix bug #1405

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add cal reduction steps
    * vdat/gui/fplane.py: fix some bug with typ and fplane_single
    * vdat/gui/tasks.py: remove debugging prints
    * doc/_source/gui.rst: update documentation

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.3.0
    * ReleaseNotes.md: update

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: implement zro reduction steps
        * vdat/config/vdat_commands.yml: update commands to the latest reduction
          steps
    * vdat/gui/central.py: fix indentation bug when submitting commands to
      queue; improve string sent to the queue
    * vdat/gui/fplane.py: improve FplaneWidget.change_fplane; add
      documentation, fix bug with matching directory names
    * vdat/gui/gui.py: make documentation happy
    * vdat/gui/tasks.py: accept commands as string or as list
    * vdat/gui/treeview_model.py: on selection changed pass the path of the
      directory
    * doc/_source/codedoc/gui/index.rst: move it from ../gui.rst, add
      placeholder table
    * doc/_source/codedoc/index.rst: adapt
    * doc/_source/codedoc/reduction.rst: fix module name
    * doc/_source/gui.rst: begin documentin tasks.yml file

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: remove debug print
    * vdat/gui/fplane.py: same
    * vdat/gui/ifu_widget.py: fix python3 bug

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove tabs.yml and buttons.yml
    * vdat/config/core.py: update accordingly
    * vdat/config/entry_point.py: same
    * vdat/config/buttons.yml: remove
    * tests/test_buttons.py: same
    * vdat/config/tabs.yml: same
    * vdat/gui/buttons_menu.py: same

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: add multiprocessing arguments

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: added
    * vdat/config/vdat_setting.cfg: move max_delta_zro into the symlink section
          and remove config_dirs
    * vdat/config/core.py: add config_dirs section when loading the config file
    * vdat/libvdat/symlink.py: adapt to the above; add warning when no shot file
          is found in a night
    * doc/_source/dirstruct.rst: document max_delta_zro
    * tests/test_config/test_core.py: adapt tests
    * tests/test_libvdat/test_symlink.py: add test for the above warning

2016-04-26 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: update documentation
    * doc/_source/launching.rst: same
    * vdat/config/vdat_setting.cfg: rename virus_dir to virus_instrument
    * tests/conftest.py: same
    * tests/test_libvdat/test_symlink.py: same
    * vdat/libvdat/symlink.py: update accordingly
    * vdat/libvdat/vdat.py: improve description

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: modify symlinking to comply to #1358
    * vdat/config/vdat_setting.cfg: add ``virus_dir`` entry to do the above
    * tests/data/raw/20151025/virus: add the virus directory to the test data
    * tests/conftest.py: adapt to the new directory structure
    * tests/test_ci/test_types.py: same
    * tests/test_libvdat/test_symlink.py: same

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add support for multiple raw or night directories
    * tests/test_libvdat/test_symlink.py: adapt the tests

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: adjust docstring
    * tests/test_symlink.py: moved to tests/test_libvdat
    * tests/test_libvdat/test_vdat.py: added

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_loggers.py: add some more tests

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: fix bug in the command loggers
    * vdat/libvdat/loggers.py: clean up and fix few bugs
    * tests/test_loggers.py: add testing for the above modules

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: push variables to environment in a function, improve
      command line arguments
    * vdat/config/vdat_setting.cfg: add is_rawdir_night option
    * vdat/config/core.py: skip also empty lists when overriding configuration
    * tests/test_config/test_core.py: test it

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: bugfix with ConfigParser file names; use mapping
          interface to insert a value
    * tests/test_config/test_core.py: test the vdat.config.core module
    * tests/conftest.py: adapt to changes in the vdat.config.core module

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: some function moved around, override_conf added
    * vdat/libvdat/vdat.py: first draft of the new command line interface
    * tests/conftest.py: add fixture to clear the internal configuration
          dictionary
    * tests/test_config: created
    * tests/test_config/test_core.py: added
    * tests/test_config.py: moved and renamed tests/test_config/test_entry_point.py 

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: I forgot to update the release notes

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: if a 100000 parameters in sql queries are allowed,
          returns it, otherwise search for the number

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: remove SQLITE_MAX_COLUMN and add estimate of
          SQLITE_MAX_VARIABLE_NUMER
    * vdat/libvdat/symlink.py: use the latter when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: estimate SQLITE_MAX_COLUMN
    * vdat/libvdat/symlink.py: use the estimate when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: remove all the multiprocessing stuff and improve
          log messages
    * vdat/libvdat/vdat.py: no multiprocessing things happening here
    * tests/test_symlink.py: update tests to the changes

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: make the types instance attribute
    * vdat/command_interpreter/types.py: fix __getattr__ to play nicely with
          pickling

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

     * tests/test_config.py: ignore .svn files
     * tests/conftest.py: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_ci/conftest.py: move here some useful fixture
    * tests/test_ci/test_signals.py: use the fixture
    * tests/test_ci/test_command_interpreter.py: test the core module to 99%
    * vdat/command_interpreter/core.py: if no file is collected return; improve
          error from subprocess crashing

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/command_interpreter/core.py: make multiprocessing work
     * tests/test_ci/test_command_interpreter.py: add multiprocessing to the
          tests
     * setup.py: add pytest-xdist dependency for improved coverage
     * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/conf.py: use sphinx.ext.todo instead of
          pyhetdex.doc.sphinxext.tod
        * setup.py: bump sphinx version
        * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: make sure that no error is raised when running the
          symlink of science frames

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: improve testing the symlink and solve issue #1335
    * vdat/config/vdat_setting.cfg: improve regex to match also file names with
          decimal seconds

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

        * setup.py: bump required pyhetdex version to 0.6.0
    * vdat/command_interpreter/core.py: use DeferredResult when running jobs in
          single processor mode
    * tests/test_ci/test_command_interpreter.py: adapt the tests; test the
          filter_section keyword in action; some other little fix

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move the logging from _run to run
          methods
    * vdat/command_interpreter/exceptions.py: add CISubprocessError
    * tests/test_ci/test_command_interpreter.py: adapt the tests

2016-04-14 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex version to 0.5
    * vdat/command_interpreter/core.py: worker created and removed in
          CommandInterpreter.run method
    * vdat/libvdat/symlink.py: worker created and removed in do_symlink function
    * vdat/libvdat/vdat.py: remove workers, as they are handled where they are
          used

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: get and report exceptions when running
          the command
    * ReleaseNotes.md: update
    * setup.py: bump version to 0.2.4

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.2.3-post
    * vdat/command_interpreter/types.py: fix bug that makes file collection
          fails when using regex and directory names containing special characters

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

        * ReleaseNotes.md: added; track history and help writing the report for the
          next release

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_interpreter.rst: renamed, update documentation with
          info about multiprocessing
    * doc/_source/conf.py: use only pyhetdex latest for intersphinx
    * doc/_source/dirstruct.rst: add info about multiprocessing
    * doc/_source/executables.rst: expand a bit
    * doc/_source/launching.rst: same
    * doc/_source/index.rst: reorder some section
    * vdat/command_interpreter/core.py: try to enable multiprocessing, fail
          miserably
    * vdat/gui/buttons_menu.py: pass multiprocessing keywords
    * vdat/libvdat/vdat.py: close also command_interpreter worker

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat: rebased on ^/trunk
    * setup.py: version 0.2.3-post
    * tox.ini: force DISPLAY=:0

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: workaround bug with too many multiple insertions; #1345
    * vdat/gui/gui.py: brute force implementation of re-symlink from gui #1333;
          works, but needs review

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: negative error codes exists and are
          failures; fix the bug

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: don't close the multiprocessing worker to allow
          reusing it; set non existing rawdir to empty string; make public two
          functions that might be used from further symlinking
        * vdat/libvdat/vdat.py: wait and close the symlink worker
    * tests/test_symlink.py: update the tests

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged: branches/multiple_objects@169
        * setup.py: version set to 0.2.2
    * vdat/command_interpreter/core.py: log also the target dir then starting a
          task

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: properly symlink science frames with empty OBJECT
          fields and add counter to repeated OBJECT from different shots
    * tests/test_symlink.py: change test function name. The above changes has
          been tested only by hand
    * doc/_source/dirstruct.rst: add info about this

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * vdat/gui/treeview_model.py: add tool tip
    * tests/test_tree_view.py: test it
    * doc/_source/gui.rst: add some info about tooltip and right-click commands
          available on the tree view

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: advance version
    * vdat/libvdat/symlink.py: fix multiprocessing while symlinking, now it
          works
    * vdat/libvdat/vdat.py: little changes because of the above

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: improve

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add references to zero and cal directories to
          every type

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: add version to command line
    * vdat/libvdat/vdat.py: same
    * vdat/gui/gui.py: add version to "About VDAT" menu; add links to
          documentation
    * vdat/gui/menu.py: pep8

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: version 0.2.1-pre
    * vdat/command_interpreter/types.py: extend the header type to allow
          formatting the values
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: write info log when a command start
          running
    * vdat/command_interpreter/types.py: add ``returns`` option to plain primary
          type
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: create a general section and use it in
          every command; fix biassubtract fits matching to skip thumbnail fits

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: different shots with multiple lamps are now
          collected in the same cal directory
    * vdat/config/vdat_setting.cfg: add config tell the symlinking which header
          keyword has the name of the lamps

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve error message when regex match
          does not work; fix bug with header type and multi-word header keyword
          parsing
    * tests/test_ci/test_types.py: test this 

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: fix couple of bugs and remove copied files if
          cloning fails
    * tests/test_tree_view.py: test 97% of the treeview_model.py (I don't think
          I can do more)

2016-03-31 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_tree_view.py: test checkboxes also from the tree view
          perspective

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/symlink on top of trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * merge branches/cmd_interpreter_update into trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/cmd_interpreter_update on to of trunk

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: connect the global logger to the VDAT main logger
    * vdat/command_interpreter/core.py: fix typo

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: Create a global logger signal
    * vdat/command_interpreter/helpers.py: move the old default implementation
          here
    * vdat/command_interpreter/core.py: use the new global logger
    * tests/test_ci/test_signals.py: test the global logger
    * tests/test_ci/test_helpers.py: same

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: update documentation

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: connect some signal in order to have some execution
          feedback

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: select directory also by enter key
    * tests/test_tree_view.py: test it (it's a workaround for the fact that
          there is a bug about testing clicks on tree view)

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: remove ``row`` from ReductionNode, as it's not
          used
    * tests/test_tree_view.py: same

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: use pytest-catchlog instead of pytest-capturelog
    * tox.ini: same
    * tests/test_command_interpreter.py: adapt to the change
    * tests/test_tree_view.py: same
    * tests/test_symlink.py: same; do the symlinking in the test function, not
          setup

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: bugfix
    * tests/test_tree_view.py: mark old tests as integration, unit-test 46% of the code

2016-03-17 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/database/models.py: add ``path`` attribute to the VDATExposures table
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/gui/treeview_model.py: correctly propagate VDATExposures information
          when cloning and removing directories; fixed bad bug in check/uncheck
    * tests/test_tree_view.py: rewrite tests for the tree view, 40% done

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Renamed Raw to Exp in Tab descriptions

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add CICommandDone signal
    * vdat/command_interpreter/core.py: use it
    * vdat/command_interpreter/helpers.py: add a receiver that prints out stuff
    * tests/test_ci/test_signals.py: test the new signal
    * tests/test_ci/test_helpers.py: test the new helper

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged with ^/trunk
        * tests/test_ci/test_types.py: update number of files

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: add @path@ to the @new_file@ type
    * tests/test_ci/test_types.py: add the tests
    * doc/_source/command_intepreter.rst: document it

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/libvdat/vdat.py: Moved first import of gui till after the
        XPA_METHOD was set based on config

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

        * merged ^/trunk

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove [args] section
    * vdat/database/models.py: remove ThumbnailScaling table
    * vdat/database/core.py: adapt
    * vdat/libvdat/callback.py: removed, as is unused
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/show_fits.py: same
    * doc/_source/codedoc/reduction.rst: remove callback

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: save the exposure database on files to be able to
          rebuild the database from already symlinked directories
    * vdat/utilities.py: add utility function for the exposure database dump
    * vdat/database/base.py: use public functions to get the data from the
          model; provides 3 properties to get some of the data
    * vdat/database/models.py: override the data_clean property to skip the
          foreign fields
    * tests/test_symlink.py: adjust the tests to the changes, test the new parts
    * tests/test_tree_view.py: little adjustment

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: update the new type names 
    * vdat/libvdat/symlink.py: adapt the vdatexposures names
    * vdat/gui/buttons_menu.py: show the empty widget if no button is defined
          for the type
    * vdat/gui/treeview_model.py: get the type names from the database

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: adjust log messages about the type of the
          symlinked shot

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: proper cleanup when the symlinking fails, small
          adjustments.
    * tests/conftest.py: add virus*** related fixtures
    * tests/test_symlink.py: test to 100% the symlinking

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: export the database to the package level
    * vdat/libvdat/symlink.py: make the insertion in the database and the
          symlinking more robust to failures
    * vdat/utilities.py: add new error

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk
    * tests/test_symlink.py: adapt the tests

2016-03-07 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/symlink.py: fix bug in @_find_nearest@, remove optional
          argument from @symlink@ function
    * pytest.ini: add marker for integration tests
    * tests/conftest.py: add night and virus00001 fixtures
    * tests/test_symlink.py: add some unit tests

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: allow unknown/nonstandard object type linking
    * vdat/config/vdat_setting.cfg: add little explanation about it
    * doc/_source/dirstruct.rst: document it

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-03-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: first part of the new_file type
          implementation
    * tests/test_ci/test_types.py: test the new_file type
    * vdat/command_interpreter/core.py: adapt to the above
    * tests/test_ci/test_command_interpreter.py: same
    * doc/_source/command_intepreter.rst: adjust documentation
        * vdat/config/vdat_commands.yml: deformer 4 is no more

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/__init__.py: import get_signal and
          get_signal_names at the module level
    * vdat/command_interpreter/types.py: fix documentation
    * vdat/command_interpreter/utils.py: fix documentation
    * tests/test_ci/test_utils.py: add test of id_
    * doc/_source/codedoc/command_interpreter/types.rst: fix documentation

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: set xpa_method to local to avoid test hanging
    * vdat/command_interpreter/helpers.py: remove __all__
    * vdat/command_interpreter/signals.py: same
    * vdat/command_interpreter/types.py: import numpy
    * doc/_source/codedoc/command_interpreter/index.rst: split the command
          interpreter documentation
    * doc/_source/codedoc/command_interpreter/*.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/relay.py: renambed signals
    * vdat/command_interpreter/signals.py: rewritten to have an behaviour
          similar to qt signals; CILogger not reimplemented; some signal missing
    * vdat/command_interpreter/__init__.py: remove the import of the relay
    * vdat/command_interpreter/core.py: update according to the above changes
    * vdat/command_interpreter/helpers.py: provide some function that can be
          plugged in
    * tests/test_ci/test_helpers.py: added
    * tests/test_ci/test_signals.py: added
    * doc/_source/command_intepreter.rst: relays -> signals
    * doc/_source/codedoc/command_interpreter.rst: moved to
          command_interpreter/index.rst
    * doc/_source/codedoc/index.rst: index in the codedoc to allow reshaping of
          the documentation
    * doc/_source/index.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add a method that returns a range to
          SliceLike
    * vdat/command_interpreter/types.py: use SliceLike in primary_loop; remove
          _to_number function
    * tests/test_ci/test_utils.py: test the range method
    * tests/test_config.py: fixture to fix seed of random for repeatability of
          tests

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: adapt types to use the new
          keyword_regex and do_split = False
    * tests/test_ci/test_types.py: add tests for all the secondary keywords
    * doc/_source/command_intepreter.rst: fix the documentation

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add string and format customization to
          SliceLike
    * tests/test_ci/test_utils.py: test it

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>
        
        * merge trunk

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve the keyword_regex functionality
    * vdat/command_interpreter/utils.py: homogenize doc
    * vdat/command_interpreter/core.py: move back types to class properties to be
          able to run in parallel (this needs investigation)
    * vdat/command_interpreter/exceptions.py: fix typo
    * tests/test_ci/test_types.py: test the keyword_regex functionality
    * doc/_source/command_intepreter.rst: document the new keyword_regex

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/conftest.py: move some fixture to session scope
    * vdat/command_interpreter/core.py: move the types initialisation into the
          __init__

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add SliceLike and copy some utils from
      types.py
    * vdat/command_interpreter/exceptions.py: import the future and add
      CISliceError
    * setup.cfg: add doctest
    * tests/test_ci/test_utils.py: added
        * tests/test_ci/test_command_interpreter.py: moved
    * tests/test_ci/test_types.py: added and partially implemented
    * doc/_source/codedoc/command_interpreter.rst: add types and utils
      documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added
2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added
2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: make sure that x11 can deal with threads

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add n_primaries signal to
          documentation
    * vdat/gui/progress_bar.py: implement the progress bar and connect to
          command_interpreter signals
    * vdat/gui/mainwidget.py: use the object in progress_bar.py module
    * tests/test_ci/conftest.py: move clean_connected to test/conftest.py
    * tests/test_gui: created
    * tests/test_gui/test_progress_bar.py: added
    * tests/test_gui/test_tree_view.py: moved into test_gui
    * tests/test_ci/test_signals.py: make sure to clean the signals

2016-05-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: new n_primaries signal
    * vdat/command_interpreter/helpers.py: helper function for that
    * vdat/command_interpreter/core.py: emit the signal
    * tests/test_ci/test_helpers.py: update tests
    * tests/test_ci/test_signals.py: same

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: update the configuration documentation
    * vdat/config/tasks.yml: add all the remaining reduction steps
    * vdat/config/vdat_setting.cfg: set the default pixel scale to 0.5, to speed
          up the GUI startup
    * vdat/gui/fplane.py: don't raise an error if there are no tabs for a task

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwidget.py: cleanup old ways of communication
    * vdat/gui/mainwindow.py: same
    * vdat/gui/relay.py: remove unused signals
    * vdat/gui/treeview_model.py: cleanup and mark method a pyqt slot

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Change default viewer size for
        reconstructed images
        * vdat/gui/ifu_widget.py: Fix possible memory leak in creation of
        binned images

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: remove unused imports
    * vdat/gui/menubar.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/gui/fplane.py: use itertools.product for nested loops
    * vdat/gui/gui.py: removed
    * vdat/gui/ifu_viewer.py: PEP8
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/mainwidget.py: same
    * vdat/gui/tasks.py: same
    * doc/_source/codedoc/gui/index.rst: remove vdat.gui.gui

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Show reconstructed images
        * vdat/gui/central.py: Made pixelscale for reconstructed images configurable
        * vdat/gui/ifu_widget.py: Show reconstructed images in ifu viewer
        fixes issues 1407 and 1409
        * vdat/config/vdat_setting.cfg: Added pixelscale for reconstructed images

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: add multiprocessing

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: require pyhetdex 0.7.0
    * tests/test_config/test_core.py: adapt tests to the new config files
    * doc/_source/codedoc/gui/index.rst: fix typo

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: document dither tab type
    * vdat/config/tasks.yml: add all reduction science steps up to dividing by
          pixel flats
    * vdat/gui/fplane.py: update dither type implementation
    * vdat/gui/ifu_widget.py: fix bug #1405

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add cal reduction steps
    * vdat/gui/fplane.py: fix some bug with typ and fplane_single
    * vdat/gui/tasks.py: remove debugging prints
    * doc/_source/gui.rst: update documentation

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.3.0
    * ReleaseNotes.md: update

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: implement zro reduction steps
        * vdat/config/vdat_commands.yml: update commands to the latest reduction
          steps
    * vdat/gui/central.py: fix indentation bug when submitting commands to
      queue; improve string sent to the queue
    * vdat/gui/fplane.py: improve FplaneWidget.change_fplane; add
      documentation, fix bug with matching directory names
    * vdat/gui/gui.py: make documentation happy
    * vdat/gui/tasks.py: accept commands as string or as list
    * vdat/gui/treeview_model.py: on selection changed pass the path of the
      directory
    * doc/_source/codedoc/gui/index.rst: move it from ../gui.rst, add
      placeholder table
    * doc/_source/codedoc/index.rst: adapt
    * doc/_source/codedoc/reduction.rst: fix module name
    * doc/_source/gui.rst: begin documentin tasks.yml file

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: remove debug print
    * vdat/gui/fplane.py: same
    * vdat/gui/ifu_widget.py: fix python3 bug

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove tabs.yml and buttons.yml
    * vdat/config/core.py: update accordingly
    * vdat/config/entry_point.py: same
    * vdat/config/buttons.yml: remove
    * tests/test_buttons.py: same
    * vdat/config/tabs.yml: same
    * vdat/gui/buttons_menu.py: same

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: add multiprocessing arguments

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: added
    * vdat/config/vdat_setting.cfg: move max_delta_zro into the symlink section
          and remove config_dirs
    * vdat/config/core.py: add config_dirs section when loading the config file
    * vdat/libvdat/symlink.py: adapt to the above; add warning when no shot file
          is found in a night
    * doc/_source/dirstruct.rst: document max_delta_zro
    * tests/test_config/test_core.py: adapt tests
    * tests/test_libvdat/test_symlink.py: add test for the above warning

2016-04-26 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: update documentation
    * doc/_source/launching.rst: same
    * vdat/config/vdat_setting.cfg: rename virus_dir to virus_instrument
    * tests/conftest.py: same
    * tests/test_libvdat/test_symlink.py: same
    * vdat/libvdat/symlink.py: update accordingly
    * vdat/libvdat/vdat.py: improve description

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: modify symlinking to comply to #1358
    * vdat/config/vdat_setting.cfg: add ``virus_dir`` entry to do the above
    * tests/data/raw/20151025/virus: add the virus directory to the test data
    * tests/conftest.py: adapt to the new directory structure
    * tests/test_ci/test_types.py: same
    * tests/test_libvdat/test_symlink.py: same

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add support for multiple raw or night directories
    * tests/test_libvdat/test_symlink.py: adapt the tests

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: adjust docstring
    * tests/test_symlink.py: moved to tests/test_libvdat
    * tests/test_libvdat/test_vdat.py: added

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_loggers.py: add some more tests

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: fix bug in the command loggers
    * vdat/libvdat/loggers.py: clean up and fix few bugs
    * tests/test_loggers.py: add testing for the above modules

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: push variables to environment in a function, improve
      command line arguments
    * vdat/config/vdat_setting.cfg: add is_rawdir_night option
    * vdat/config/core.py: skip also empty lists when overriding configuration
    * tests/test_config/test_core.py: test it

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: bugfix with ConfigParser file names; use mapping
          interface to insert a value
    * tests/test_config/test_core.py: test the vdat.config.core module
    * tests/conftest.py: adapt to changes in the vdat.config.core module

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: some function moved around, override_conf added
    * vdat/libvdat/vdat.py: first draft of the new command line interface
    * tests/conftest.py: add fixture to clear the internal configuration
          dictionary
    * tests/test_config: created
    * tests/test_config/test_core.py: added
    * tests/test_config.py: moved and renamed tests/test_config/test_entry_point.py 

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: I forgot to update the release notes

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: if a 100000 parameters in sql queries are allowed,
          returns it, otherwise search for the number

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: remove SQLITE_MAX_COLUMN and add estimate of
          SQLITE_MAX_VARIABLE_NUMER
    * vdat/libvdat/symlink.py: use the latter when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: estimate SQLITE_MAX_COLUMN
    * vdat/libvdat/symlink.py: use the estimate when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: remove all the multiprocessing stuff and improve
          log messages
    * vdat/libvdat/vdat.py: no multiprocessing things happening here
    * tests/test_symlink.py: update tests to the changes

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: make the types instance attribute
    * vdat/command_interpreter/types.py: fix __getattr__ to play nicely with
          pickling

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

     * tests/test_config.py: ignore .svn files
     * tests/conftest.py: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_ci/conftest.py: move here some useful fixture
    * tests/test_ci/test_signals.py: use the fixture
    * tests/test_ci/test_command_interpreter.py: test the core module to 99%
    * vdat/command_interpreter/core.py: if no file is collected return; improve
          error from subprocess crashing

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/command_interpreter/core.py: make multiprocessing work
     * tests/test_ci/test_command_interpreter.py: add multiprocessing to the
          tests
     * setup.py: add pytest-xdist dependency for improved coverage
     * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/conf.py: use sphinx.ext.todo instead of
          pyhetdex.doc.sphinxext.tod
        * setup.py: bump sphinx version
        * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: make sure that no error is raised when running the
          symlink of science frames

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: improve testing the symlink and solve issue #1335
    * vdat/config/vdat_setting.cfg: improve regex to match also file names with
          decimal seconds

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

        * setup.py: bump required pyhetdex version to 0.6.0
    * vdat/command_interpreter/core.py: use DeferredResult when running jobs in
          single processor mode
    * tests/test_ci/test_command_interpreter.py: adapt the tests; test the
          filter_section keyword in action; some other little fix

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move the logging from _run to run
          methods
    * vdat/command_interpreter/exceptions.py: add CISubprocessError
    * tests/test_ci/test_command_interpreter.py: adapt the tests

2016-04-14 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex version to 0.5
    * vdat/command_interpreter/core.py: worker created and removed in
          CommandInterpreter.run method
    * vdat/libvdat/symlink.py: worker created and removed in do_symlink function
    * vdat/libvdat/vdat.py: remove workers, as they are handled where they are
          used

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: get and report exceptions when running
          the command
    * ReleaseNotes.md: update
    * setup.py: bump version to 0.2.4

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.2.3-post
    * vdat/command_interpreter/types.py: fix bug that makes file collection
          fails when using regex and directory names containing special characters

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

        * ReleaseNotes.md: added; track history and help writing the report for the
          next release

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_interpreter.rst: renamed, update documentation with
          info about multiprocessing
    * doc/_source/conf.py: use only pyhetdex latest for intersphinx
    * doc/_source/dirstruct.rst: add info about multiprocessing
    * doc/_source/executables.rst: expand a bit
    * doc/_source/launching.rst: same
    * doc/_source/index.rst: reorder some section
    * vdat/command_interpreter/core.py: try to enable multiprocessing, fail
          miserably
    * vdat/gui/buttons_menu.py: pass multiprocessing keywords
    * vdat/libvdat/vdat.py: close also command_interpreter worker

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat: rebased on ^/trunk
    * setup.py: version 0.2.3-post
    * tox.ini: force DISPLAY=:0

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: workaround bug with too many multiple insertions; #1345
    * vdat/gui/gui.py: brute force implementation of re-symlink from gui #1333;
          works, but needs review

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: negative error codes exists and are
          failures; fix the bug

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: don't close the multiprocessing worker to allow
          reusing it; set non existing rawdir to empty string; make public two
          functions that might be used from further symlinking
        * vdat/libvdat/vdat.py: wait and close the symlink worker
    * tests/test_symlink.py: update the tests

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged: branches/multiple_objects@169
        * setup.py: version set to 0.2.2
    * vdat/command_interpreter/core.py: log also the target dir then starting a
          task

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: properly symlink science frames with empty OBJECT
          fields and add counter to repeated OBJECT from different shots
    * tests/test_symlink.py: change test function name. The above changes has
          been tested only by hand
    * doc/_source/dirstruct.rst: add info about this

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * vdat/gui/treeview_model.py: add tool tip
    * tests/test_tree_view.py: test it
    * doc/_source/gui.rst: add some info about tooltip and right-click commands
          available on the tree view

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: advance version
    * vdat/libvdat/symlink.py: fix multiprocessing while symlinking, now it
          works
    * vdat/libvdat/vdat.py: little changes because of the above

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: improve

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add references to zero and cal directories to
          every type

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: add version to command line
    * vdat/libvdat/vdat.py: same
    * vdat/gui/gui.py: add version to "About VDAT" menu; add links to
          documentation
    * vdat/gui/menu.py: pep8

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: version 0.2.1-pre
    * vdat/command_interpreter/types.py: extend the header type to allow
          formatting the values
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: write info log when a command start
          running
    * vdat/command_interpreter/types.py: add ``returns`` option to plain primary
          type
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: create a general section and use it in
          every command; fix biassubtract fits matching to skip thumbnail fits

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: different shots with multiple lamps are now
          collected in the same cal directory
    * vdat/config/vdat_setting.cfg: add config tell the symlinking which header
          keyword has the name of the lamps

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve error message when regex match
          does not work; fix bug with header type and multi-word header keyword
          parsing
    * tests/test_ci/test_types.py: test this 

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: fix couple of bugs and remove copied files if
          cloning fails
    * tests/test_tree_view.py: test 97% of the treeview_model.py (I don't think
          I can do more)

2016-03-31 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_tree_view.py: test checkboxes also from the tree view
          perspective

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/symlink on top of trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * merge branches/cmd_interpreter_update into trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/cmd_interpreter_update on to of trunk

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: connect the global logger to the VDAT main logger
    * vdat/command_interpreter/core.py: fix typo

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: Create a global logger signal
    * vdat/command_interpreter/helpers.py: move the old default implementation
          here
    * vdat/command_interpreter/core.py: use the new global logger
    * tests/test_ci/test_signals.py: test the global logger
    * tests/test_ci/test_helpers.py: same

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: update documentation

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: connect some signal in order to have some execution
          feedback

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: select directory also by enter key
    * tests/test_tree_view.py: test it (it's a workaround for the fact that
          there is a bug about testing clicks on tree view)

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: remove ``row`` from ReductionNode, as it's not
          used
    * tests/test_tree_view.py: same

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: use pytest-catchlog instead of pytest-capturelog
    * tox.ini: same
    * tests/test_command_interpreter.py: adapt to the change
    * tests/test_tree_view.py: same
    * tests/test_symlink.py: same; do the symlinking in the test function, not
          setup

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: bugfix
    * tests/test_tree_view.py: mark old tests as integration, unit-test 46% of the code

2016-03-17 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/database/models.py: add ``path`` attribute to the VDATExposures table
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/gui/treeview_model.py: correctly propagate VDATExposures information
          when cloning and removing directories; fixed bad bug in check/uncheck
    * tests/test_tree_view.py: rewrite tests for the tree view, 40% done

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Renamed Raw to Exp in Tab descriptions

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add CICommandDone signal
    * vdat/command_interpreter/core.py: use it
    * vdat/command_interpreter/helpers.py: add a receiver that prints out stuff
    * tests/test_ci/test_signals.py: test the new signal
    * tests/test_ci/test_helpers.py: test the new helper

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged with ^/trunk
        * tests/test_ci/test_types.py: update number of files

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: add @path@ to the @new_file@ type
    * tests/test_ci/test_types.py: add the tests
    * doc/_source/command_intepreter.rst: document it

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/libvdat/vdat.py: Moved first import of gui till after the
        XPA_METHOD was set based on config

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

        * merged ^/trunk

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove [args] section
    * vdat/database/models.py: remove ThumbnailScaling table
    * vdat/database/core.py: adapt
    * vdat/libvdat/callback.py: removed, as is unused
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/show_fits.py: same
    * doc/_source/codedoc/reduction.rst: remove callback

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: save the exposure database on files to be able to
          rebuild the database from already symlinked directories
    * vdat/utilities.py: add utility function for the exposure database dump
    * vdat/database/base.py: use public functions to get the data from the
          model; provides 3 properties to get some of the data
    * vdat/database/models.py: override the data_clean property to skip the
          foreign fields
    * tests/test_symlink.py: adjust the tests to the changes, test the new parts
    * tests/test_tree_view.py: little adjustment

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: update the new type names 
    * vdat/libvdat/symlink.py: adapt the vdatexposures names
    * vdat/gui/buttons_menu.py: show the empty widget if no button is defined
          for the type
    * vdat/gui/treeview_model.py: get the type names from the database

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: adjust log messages about the type of the
          symlinked shot

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: proper cleanup when the symlinking fails, small
          adjustments.
    * tests/conftest.py: add virus*** related fixtures
    * tests/test_symlink.py: test to 100% the symlinking

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: export the database to the package level
    * vdat/libvdat/symlink.py: make the insertion in the database and the
          symlinking more robust to failures
    * vdat/utilities.py: add new error

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk
    * tests/test_symlink.py: adapt the tests

2016-03-07 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/symlink.py: fix bug in @_find_nearest@, remove optional
          argument from @symlink@ function
    * pytest.ini: add marker for integration tests
    * tests/conftest.py: add night and virus00001 fixtures
    * tests/test_symlink.py: add some unit tests

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: allow unknown/nonstandard object type linking
    * vdat/config/vdat_setting.cfg: add little explanation about it
    * doc/_source/dirstruct.rst: document it

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-03-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: first part of the new_file type
          implementation
    * tests/test_ci/test_types.py: test the new_file type
    * vdat/command_interpreter/core.py: adapt to the above
    * tests/test_ci/test_command_interpreter.py: same
    * doc/_source/command_intepreter.rst: adjust documentation
        * vdat/config/vdat_commands.yml: deformer 4 is no more

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/__init__.py: import get_signal and
          get_signal_names at the module level
    * vdat/command_interpreter/types.py: fix documentation
    * vdat/command_interpreter/utils.py: fix documentation
    * tests/test_ci/test_utils.py: add test of id_
    * doc/_source/codedoc/command_interpreter/types.rst: fix documentation

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: set xpa_method to local to avoid test hanging
    * vdat/command_interpreter/helpers.py: remove __all__
    * vdat/command_interpreter/signals.py: same
    * vdat/command_interpreter/types.py: import numpy
    * doc/_source/codedoc/command_interpreter/index.rst: split the command
          interpreter documentation
    * doc/_source/codedoc/command_interpreter/*.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/relay.py: renambed signals
    * vdat/command_interpreter/signals.py: rewritten to have an behaviour
          similar to qt signals; CILogger not reimplemented; some signal missing
    * vdat/command_interpreter/__init__.py: remove the import of the relay
    * vdat/command_interpreter/core.py: update according to the above changes
    * vdat/command_interpreter/helpers.py: provide some function that can be
          plugged in
    * tests/test_ci/test_helpers.py: added
    * tests/test_ci/test_signals.py: added
    * doc/_source/command_intepreter.rst: relays -> signals
    * doc/_source/codedoc/command_interpreter.rst: moved to
          command_interpreter/index.rst
    * doc/_source/codedoc/index.rst: index in the codedoc to allow reshaping of
          the documentation
    * doc/_source/index.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add a method that returns a range to
          SliceLike
    * vdat/command_interpreter/types.py: use SliceLike in primary_loop; remove
          _to_number function
    * tests/test_ci/test_utils.py: test the range method
    * tests/test_config.py: fixture to fix seed of random for repeatability of
          tests

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: adapt types to use the new
          keyword_regex and do_split = False
    * tests/test_ci/test_types.py: add tests for all the secondary keywords
    * doc/_source/command_intepreter.rst: fix the documentation

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add string and format customization to
          SliceLike
    * tests/test_ci/test_utils.py: test it

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>
        
        * merge trunk

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve the keyword_regex functionality
    * vdat/command_interpreter/utils.py: homogenize doc
    * vdat/command_interpreter/core.py: move back types to class properties to be
          able to run in parallel (this needs investigation)
    * vdat/command_interpreter/exceptions.py: fix typo
    * tests/test_ci/test_types.py: test the keyword_regex functionality
    * doc/_source/command_intepreter.rst: document the new keyword_regex

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/conftest.py: move some fixture to session scope
    * vdat/command_interpreter/core.py: move the types initialisation into the
          __init__

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add SliceLike and copy some utils from
      types.py
    * vdat/command_interpreter/exceptions.py: import the future and add
      CISliceError
    * setup.cfg: add doctest
    * tests/test_ci/test_utils.py: added
        * tests/test_ci/test_command_interpreter.py: moved
    * tests/test_ci/test_types.py: added and partially implemented
    * doc/_source/codedoc/command_interpreter.rst: add types and utils
      documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added
2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added
2017-10-18  Francesco Montesano  <montefra@mpe.mpg.de>

        * : merge ^/trunk in ^/branches/text_file_tab

2017-10-18  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add text_file tab for the dither file

2017-10-12  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/static/icons: add a subset of the "macOS Icons" icons
          https://store.kde.org/p/1102582/
    * vdat/gui/__init__.py: if the theme name is not set, set it to the above
          name. Resolves issue #2133

2017-09-27  Francesco Montesano  <montefra@mpe.mpg.de>

    * tests/test_gui/conftest.py: update fixture
    * tests/test_gui/test_tabs/test_ifu_viewer.py: 100% coverage of the
          ifu_viewer module
    * vdat/gui/tabs/ifu_viewer.py: make some little change to allow testing

2017-09-26  Francesco Montesano  <montefra@mpe.mpg.de>

    * doc/_source/_static/fits_viewer.png: update screenshot
    * doc/_source/_static/text_file_viewer.png: same

2017-09-26  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add the quit and help menu to the ifu viewer
          windows

2017-09-25  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/menubar.py: plug the Help menu and get rid of the unnecessary
          signals
        * vdat/gui/mainwindow.py: remove slots and connection incorporated into the
          Help menu. Second part of issue #2135
    * vdat/gui/help_window.py: set reasonable size for the help window
    * tests/test_gui/test_mainwindow.py: remove tests

2017-09-25  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: isolate the help menu for better reusability.
          First part of issue #2135
    * tests/test_gui/test_menus_actions.py: test it

2017-09-22  Francesco Montesano  <montefra@mpe.mpg.de>

    * doc/_source/gui/ifu_viewer.rst: describe the new text file window
    * doc/_source/gui/main_panel.rst: finish documentation of the text file tab
    * doc/_source/_static/fplane_text_file.png: add screenshot
    * doc/_source/_static/text_file_viewer.png: same

2017-09-21  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: if the file exists, open it in the file
          editor
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it

2017-09-21  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add basic text editor
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test it

2017-09-20  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: create QuitAction
    * vdat/gui/menubar.py: use it
    * tests/test_gui/test_menus_actions.py: test it

2017-09-18  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: prepare al image with the number of lines
    * vdat/gui/tabs/tab_widget.py: no need to add the cleanup method
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes
    * tests/test_gui/test_tabs/test_tab_widget.py: the fake IFU are not needed

2017-09-13  Francesco Montesano  <montefra@mpe.mpg.de>

        * setup.py: add text_file tab plugin. First part of issue #2108
    * vdat/gui/tabs/entry_points.py: implement the entry point for text_file
    * vdat/gui/tabs/tab_widget.py: implement the tab type (I think that it's
          everything that we need)
    * vdat/gui/tabs/ifu_widget.py: implement the setup method of the ifu widget.
          It still doesn't display anything
    * doc/_source/gui/main_panel.rst: begin documenting the changes
    * tests/test_gui/test_fplane.py: test the new plugin
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the initialisation and
          setup of the new ifu widget
    * tests/test_gui/test_tabs/test_tab_widget.py: test the new tab widget
    * tests/test_list_plugins.py: update the number of plugins

2017-10-11  Niv Drory  <drory@astro.as.utexas.edu>

        * config/vdat_commands.yml (subtract_os): remove deceptively evil -s flag.

2017-10-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * : merge ^/branches/exclude_ifus into ^/trunk

2017-10-04  Francesco Montesano  <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: add some info about the fplane file

2017-09-29  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: add option to respect empty columns and rows
          when displaying the focal plane. Resolves issue #2139
    * vdat/gui/tabs/tab_widget.py: use it
    * vdat/gui/central.py: exclude the IFUs also in the main part of the gui
    * tests/test_gui/conftest.py: adapt the tests
    * tests/test_gui/test_tabs/test_tab_widget.py: same

2017-09-27  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: add option to ignore IFUSLOT. Resolves
          issue #2138
    * vdat/config/versions.py: bump the vdat_setting.cfg version to 1.1.0
    * vdat/gui/tabs/tab_widget.py: propagate the above option to the focal plane
          in the GUI
    * tests/test_config/test_versions.py: update the versions

2017-09-15  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: forgot to copy the updated fplane file (updated
          from fplane20170202.txt in the virus_config repo)

2017-09-15  Francesco Montesano  <montefra@mpe.mpg.de>

        * : merge ^/branches/fplane_map into ^/trunk
    * vdat/gui/static/VirusDataAnalysisTool.qch: update
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2017-09-15  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: use the fplane_map type
    * vdat/config/tasks.yml: update the commands to use it
    * vdat/config/versions.py: update the version

2017-09-14  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: add the fplane_map type. Resolves issue
      #2115
    * doc/_source/command_interpreter.rst: document it
    * setup.py: advertise it
    * tests/test_ci/test_types.py: test it

2017-09-09 Daniel Farrow <dfarrow@mpe.mpg.de>
    
    * vdat/config/tasks.yml: Fixed mistake which caused some
      tabs to be repeated

2017-09-07  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: Fixed fiberextract mandatories

2017-09-06  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: correct the dither_file executable call
    * vdat/config/vdat_commands.yml: same

2017-09-05  Francesco Montesano  <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: fix typo in variable name (modelbalse ->
          modelbase in the mkdither command)
    * vdat/config/tasks.yml: fix the above type, fix error in Fiber extracted
          tab title

2017-08-22  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: Update filename prefixes and
        pixelflat filenames.
        deformer step creates dists/fmods for flat and twilight.
        flatnorm runs for flat and twilight models.
        * vdat/config/tasks.yml: Moved pixelflat step before ccdcombine
        Added buttons to use twilight dist/fmod for skysubtraction and
        fiberextract

2017-08-21  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: pixflat_lib dir defaults to ./pixel_lib
        * vdat/config/tasks.yml: Use pixelflats by default

2017-08-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/tasks.yml: Use master twilight frames for deformer

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.7.0-post

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: require pyhetdex 0.12.0, bump version to 0.7.0
    * ReleaseNotes.md: update
    * tox.ini: remove devel pyhetdex version dependency
    * vdat/gui/static/VirusDataAnalysisTool.qch: update
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/next_pyhetdex/ into ^/trunk

2017-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_libvdat/test_loggers.py: fix number of log files created

2017-08-11  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/versions.py: Bumped version numbers
        * vdat/config/tasks.yml: More pipeline updates
        * vdat/config/vdat_commands.yml: Same

2017-08-09  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/config/vdat_commands.yml: Use library bias and dark frames
        * vdat/config/tasks.yml: Same
        * vdat/libvdat/vdat.py: Fixed multiprocessing on OS X

2017-04-20 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_gui_utils.py: get rid of warnings
    * tests/test_libvdat/test_symlink.py: same
    * vdat/gui/utils.py: same
    * tests/test_gui/test_tabs/test_ifu_widget.py: improve float comparison

2017-08-16 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: re-add cov-init, use devel version of pyhetdex everywhere

2017-07-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: use new pyhetdex.tools.db_helpers module
    * vdat/libvdat/symlink.py: same
    * tests/test_database.py: remove unnecessary tests
    * vdat/database/__init__.py: remove unnecessary imports

2017-06-28 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: add python 3.6
    * vdat/config/entry_point.py: use pyhetdex functions. Resolves issue #1964
    * tests/test_config/test_entry_point.py: update the tests

2017-06-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: depends on configparser on python 2
    * tox.ini: use devel pyhetdex
    * vdat/config/core.py: use configparser; resolves #1983
    * vdat/config/versions.py: same
    * vdat/gui/menubar.py: same
    * vdat/gui/utils.py: same
    * vdat/libvdat/vdat.py: same
    * tests/test_gui/test_gui_utils.py: same, get rid of warnings
    * tests/test_gui/test_mainwindow.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_loggers.py: same
    * tests/test_libvdat/test_symlink.py: same
    * tests/test_libvdat/test_vdat.py: same

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to v0.6.1-post

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: prepare for v0.6.1 release
    * ReleaseNotes.md: same

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: use pyhetdex override_conf instead of its own
          implementation. Resolves issue #1850
    * tests/test_config/test_core.py: update tests

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/peewee_connect into ^/trunk

2017-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_mainwidget.py: wrap every database query/modification
          within a connection. Solved issue #1897
    * tests/test_gui/test_menubar.py: same
    * tests/test_gui/test_menus_actions.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_symlink.py: same
    * vdat/gui/central.py: same
    * vdat/gui/menubar.py: same
    * vdat/gui/menus_actions.py: same
    * vdat/gui/tabs/entry_points.py: same
    * vdat/gui/tabs/tab_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/database/core.py: open and close the database only if it's not on
          memory

2017-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * tox.ini: ignore little-deploy failures
    * vdat/database/core.py: connect only if the database is closed. Fixes issue
          #1895.
    * vdat/libvdat/symlink.py: wrap some query into db.connect()

2017-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * scripts/symlink_pyqt.sh: fix bug

2017-02-03 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: prepare v0.6.0 release
    * ReleaseNotes.md: same

2017-02-03 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/branches/debug_logs into ^/trunk

2017-02-03 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk into ^/branches/debug_logs

2017-01-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add option to process events while the thread is
          running
    * tests/test_gui/test_gui_utils.py: test it
    * vdat/gui/mainwidget.py: use it to update the GUI as the symlinking is
          running (fixes #1765)

2017-01-31 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_mainwidget.py: add tests
    * vdat/gui/mainwidget.py: do only the symlink in the thread

2017-02-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: workaround to fix issue #1782

2017-02-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: resolves issue #1782
    * tests/test_gui/test_tabs/test_ifu_widget.py: adapt mocking in tests

2017-02-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: improve documentation, resolves issue #1779
    * vdat/gui/static/VirusDataAnalysisTool.qch: add the new documenation
    * vdat/gui/static/VirusDataAnalysisTool.qhc: same

2017-02-01 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/tabs/ifu_widget.py: uses astropy's zscale. Fixes Issue #1777

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk into ^/branches/debug_logs

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add function to run the FuncQThread with the waiting
          cursor.
    * vdat/gui/mainwindow.py: use it
    * vdat/gui/treeview_model.py: use it
    * vdat/gui/mainwidget.py: use it when running the symlink from the GUI.
          Solves issue #1765
    * tests/test_gui/test_gui_utils.py: add tests
    * tests/test_gui/test_mainwidget.py: added. Need to finish testing the
          widget, but I first need to merge the other branch as it has some fixture
          I need

2017-01-27 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/conftest.py: tmp_dir is now a of tmpdir with the possibility to
          remove the directory; add fixtures
    * tests/test_gui/test_init.py: move fixture to conftest
        * tests/test_integration_vdat.py: add regression/integration test for the
          bug in #1317
    * vdat/gui/__init__.py: partial refactoring to help testing
    * vdat/libvdat/vdat.py: add argv option to main for testing purposes

2017-01-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: don't set the logger level
    * vdat/gui/logger_widget.py: set the handler level to INFO
    * tests/conftest.py: fix sip.setapi to v2 for all the types

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/static/VirusDataAnalysisTool.*: update documentation with the
          latest changes

2017-01-30 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/branches/plug_tabs_1533 into ^/trunk

2017-01-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/list_plugins.py: add functionality to list entry points. Solves issue
          #1613
    * vdat/gui/fplane.py: move entry point group name to variable
    * tests/test_list_plugins.py: test the new functionality
    * doc/_source/gui/main_panel.rst: add some documentation
    * doc/_source/codedoc/index.rst: same
    * doc/_source/codedoc/list_plugins.rst: same
    * setup.py: add the entry point

2017-01-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: make "Individual" radio button react to
          button release to allow repainting the GUI. Resolved issue #1679
    * doc/_source/gui/main_panel.rst: add some hint about this

2017-01-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: reset individual selection when dropping fits
          tabs
    * tests/test_gui/test_tabs/test_tab_widget.py: update the tests

2017-01-10 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: move the new plugin implementation away.
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: move it here and update
          the rest

2017-01-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: port all the tasks to the new tab types. Resolves
          #1724

2017-01-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: make sure that the user is not spammed with
          reconstruction error if the reconstruction object is not present. Resolved
          #1725

2016-12-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/interface.py: add the enabled property
    * vdat/gui/fplane.py: set the tab enabled or not
    * tests/test_gui/conftest.py: move fixture here
    * tests/test_gui/test_central.py: from here
    * tests/test_gui/test_fplane.py: test tab enabled

2016-12-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: add overlay if no tab displayed; fixes issue #1603
    * tests/test_gui/test_fplane.py: test it and fix other tests accordingly

2016-12-15 Francesco Montesano <montefra@mpe.mpg.de>

        fixes issue #1720

    * doc/_source/conf.py: add ginga intersphinx
    * vdat/gui/tabs/entry_points.py: remove unused entry points
    * vdat/gui/tabs/ifu_viewer.py: fix documentation and remove unused code
    * vdat/gui/tabs/ifu_widget.py: same

2016-12-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: fix documentation
    * vdat/gui/tabs/interface.py: same
    * vdat/gui/tabs/tab_widget.py: same and remove old code

2016-12-14 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/send_to_ds9.png: added
    * doc/_source/gui/ifu_viewer.rst: add some documentation about the fits
          viewer

2016-12-14 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/ifu_viewer.rst: add screenshot
    * doc/_source/gui/main_panel.rst: add information about the header_keys
          keyword
    * doc/_source/_static/fits_viewer.png: added
    * vdat/config/tasks.yml: add the header_keys keyword
    * vdat/gui/tabs/ifu_viewer.py: remove line with file name

016-12-14 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: finish the tabs documentation
    * doc/_source/gui/ifu_viewer.rst: add basic info
    * doc/_source/gui/menu_bar.rst: add references
        * doc/_source/_static/vdat_main_panel.png: add
        * doc/_source/_static/vdat_screenshot.png: update

2016-12-13 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: document the reconstruct tab type
    * doc/_source/_static/fplane_reconstruct.png: add screenshot

2016-12-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: create unique file names using md5 hash.
          Fixes issue #1714

2016-12-12 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/tabs/ifu_widget.py: pass title and tooltip to fits window; fixes
          issue #1715
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes

2016-12-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add ability to pass custom tab titles and
          tooltip
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test it

2016-12-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: unset basenames
    * vdat/gui/tabs/tab_widget.py: pass basenames to the ifus
    * vdat/gui/tabs/entry_points.py: add the "reconstruct" tab type
    * setup.py: add the entry point
    * vdat/config/tasks.yml: use it
    * doc/_source/gui/main_panel.rst: add the entry point in the documentation
    * tests/test_gui/test_fplane.py: test the new entrypoint
    * tests/test_gui/test_tabs/test_tab_widget.py: test the changes

2016-12-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: add basenames property to allow loop over
          them to combine multiple exposures
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes

2016-12-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: rename combined to fits_combined
    * setup.py: same
    * tests/test_gui/test_fplane.py: same
    * doc/_source/gui/main_panel.rst: add the fits_combined documentation
    * doc/_source/_static/fplane_fits_combined.png: add image
    * vdat/config/tasks.yml: re-add all the cal steps

2016-12-06 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_central.py: re-enable the empty fplane tab type for
          testing only
    * tests/test_gui/conftest.py: move some fixture here
    * tests/test_gui/test_fplane.py: modify accordingly
    * vdat/gui/fplane.py: change pkg_resources import to allow mocking
    * vdat/gui/tabs/entry_points.py: make the empty_fplane private

2016-12-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: implement the combined tab type
    * setup.py: add its entry point, remove old tab entry points 
    * tests/test_gui/test_fplane.py: test the new entry points, remove old entry
          point tests
    * doc/_source/gui/main_panel.rst: add the entry point docstring

2016-12-06 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_queue.py: disable some more test for python2
    * vdat/config/tasks.yml: add the first three steps of the zro reduction with
          the new tab system

2016-12-05 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/main_panel.rst: add documentation of the exp_combined tab
          type
    * doc/_source/_static/fplane_exp_combined.png: added

2016-12-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: add exp_combined entry point implementation
    * vdat/gui/tabs/ifu_widget.py: extend the number of ids that is possible to
          use the fits file name; fix bug with cleanup in the base class
    * vdat/gui/tabs/interface.py: fix documentation
    * vdat/gui/tabs/tab_widget.py: create the title and, if given, the tool tip;
          remove the tooltip on cleanup
    * doc/_source/gui/main_panel.rst: begin the documentation
    * setup.py: add the exp_combined entry point
    * tests/test_gui/test_fplane.py: test the new entry point
    * tests/test_gui/test_tabs/test_tab_widget.py: fix the tests for the title
          and tooltip

2016-12-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: the base class cleanup method set the empty
          image and paint it (issue #1688)
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it

2016-12-01 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * vdat/gui/tabs/tab_widget.py: add the widgets in the setup method only
    * tests/test_gui/test_tabs/test_tab_widget.py: update tests

2016-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: remove the widgets from the layout when doing
          the cleanup and readd them on setup as a workaround for the non-showing
          problem when readded into the fplane
    * tests/test_gui/test_tabs/test_tab_widget.py: update tests
    * tests/test_gui/test_fplane.py: make sure the first widget is selected

2016-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add temporary entry point for the stacked widget
    * vdat/gui/tabs/entry_points.py: add the entry point function for the
          stacked widget
    * vdat/gui/tabs/tab_widget.py: work on the aspect of the stacked widget. Use
          a check box in the bar at the bottom of the focal plane
    * vdat/gui/utils.py: move the vertical spacer here
    * tests/test_gui/test_fplane.py: add an integration test
    * tests/test_gui/test_tabs/test_tab_widget.py: test the changes

2016-11-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: disable the switch button if no
          reconstruction object present
    * tests/test_gui/test_tabs/test_tab_widget.py: test it

2016-11-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: fix bug
    * tests/test_gui/test_tabs/test_tab_widget.py: according to tests the widget
          works

2016-11-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: a first implementation of issue #1669 is done
    * tests/test_gui/test_tabs/test_tab_widget.py: start testing (still all to
          do, though)

2016-11-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: extend clean/update cached thumbnails to the
          quick reconstruction widget
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the changes
    * tests/test_gui/test_queue.py: disable some test for python2

2016-11-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: clean/update cached thumbnails if needed
          (issue #1660)
    * vdat/gui/utils.py: update function
    * tests/test_gui/test_gui_utils.py: update tests
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the new implementation

2016-11-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: make sure that the header keywords are
          correctly reordered (issue #1675)
    * tests/test_gui/test_tabs/test_ifu_viewer.py: add regression test
    * tox.ini: raise the bar for success of the coverage

2016-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: show the reconstructed image in the fits
          viewer window
    * tests/test_gui/test_tabs/test_ifu_widget.py: test some of it

2016-11-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add possibility to show header keywords at
          the beginning
    * vdat/gui/tabs/ifu_widget.py: pass the tab configuration dictionary
    * vdat/gui/tabs/entry_points.py: document
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test the header keyword
          reordering
    * tests/test_gui/test_tabs/test_ifu_widget.py: update tests

2016-11-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: open the fits viewer on double click
    * vdat/gui/tabs/ifu_viewer.py: zoom to fit on first show
    * tests/test_gui/test_tabs/test_ifu_widget.py: add tests

2016-11-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: fix bug introduced with fixing #1646
    * tests/test_gui/test_queue.py: re-enabled some test that would have avoided
          this bug

2016-11-17 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: make sure selections are correctly propagated to all
          tabs (#1671)
    * vdat/gui/tabs/ifu_widget.py: same
    * vdat/gui/tabs/tab_widget.py: same
    * tests/test_gui/conftest.py: fix fixtures
    * tests/test_gui/test_central.py: test the changes
    * tests/test_gui/test_fplane.py: same

2016-11-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: add the reconstructed IFU pluging
          (issue #1633)
    * vdat/gui/tabs/ifu_widget.py: implement the IFU widget for it
    * vdat/gui/tabs/tab_widget.py: implement the tab widget for it
    * vdat/gui/utils.py: add the prefix for the reconstructed files
    * setup.py: add the entry point
    * ReleaseNotes.md: update
    * tests/test_gui/conftest.py: new fixture of the reconstructed object
    * tests/test_gui/test_fplane.py: test the new plugin
    * tests/test_gui/test_tabs/test_ifu_widget.py: test the new widget
    * tests/test_gui/test_tabs/test_tab_widget.py: same

2016-11-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: remove all the reconstruction hints from the
          FitsFplanePanel class
    * vdat/gui/tabs/ifu_widget.py: store some more info, remove old pieces of
          code
    * vdat/gui/tabs/entry_points.py: cleanup the plugin
    * tests/test_gui/test_tabs/test_tab_widget.py: fix tests accordingly
        * ReleaseNotes.md: updated

2016-11-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: react to changing the scale
    * vdat/gui/tabs/ifu_widget.py: add attributes storing the global scaling and
          use them, if available, to paint the fits files
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * tests/test_gui/test_tabs/test_tab_widget.py: test it

2016-11-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: add zmin/zmax property
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * vdat/gui/tabs/tab_widget.py: get the global zscale for the IFUs and store
          it; add needed functionality for this; add cleanup
    * tests/test_gui/test_tabs/test_tab_widget.py: test it

2016-11-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add header information
    * vdat/gui/tabs/ifu_widget.py: ifu_viewer classes name changed
        * ReleaseNotes.md: udpated with issue #1631

2016-11-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: start rewriting the fits viewer. Show the
          files in independent tabs.
    * tests/test_gui/test_tabs/test_ifu_viewer.py: test most of the new
          implementation
    * tests/test_gui/test_central.py: move fixtures from here ...
    * tests/test_gui/conftest.py: ... to here

2016-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: recreate thumbnail if it's older than the
          fits file; clear cached thumbnail if the fits file does not exist.
    * tests/test_gui/test_tabs/test_ifu_widget.py: test this

2016-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: move the thumbnailing code here
    * tests/test_gui/test_gui_utils.py: test it
    * vdat/gui/tabs/ifu_widget.py: implement prepare_image to produce thumbnails
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * tests/test_gui/conftest.py: add fixture

2016-11-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_viewer.py: add base class for the IFU viewers
    * doc/_source/codedoc/gui/tabs/ifu_viewer.rst: add inheritance tree

2016-11-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: update documentation; get type from
          database
    * vdat/gui/tabs/tab_widget.py: add setup method
    * vdat/gui/tabs/ifu_widget.py: add and implement setup method
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * tests/test_gui/test_fplane.py: add fits_fplane integration test

2016-11-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: improve error messages at plugin loading time (issue
          #1655)
    * tests/test_gui/test_fplane.py: update tests

2016-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: add extra "step_name" parameter to pass to the plugins
    * vdat/gui/tabs/entry_points.py: same
    * vdat/gui/tabs/interface.py: same
    * vdat/gui/tabs/tab_widget.py: begin implementing the setup
    * vdat/gui/tabs/ifu_widget.py: same

2016-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: create fits_fplane entry point
    * setup.py: same
    * vdat/gui/tabs/tab_widget.py: add scale buttons to the GUI
    * vdat/gui/tabs/ifu_widget.py: remove unused method
    * tests/test_gui/test_tabs/test_tab_widget.py: test new class init

2016-10-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/ifu_widget.py: don't trigger single clicks on double click
          (issue #1639)
    * tests/test_gui/test_tabs/test_ifu_widget.py: test it
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: add some info about
          this
    * ReleaseNotes.md: updated with the issue reference

2016-10-25 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: updated
    * vdat/gui/queue.py: remove the command and thread when the command finishes
          to run
    * vdat/gui/tabs/tab_widget.py: set parent in the thread

2016-10-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: don't draw the tab
    * vdat/gui/tabs/ifu_widget.py: fix hw_size, cleanup code
    * vdat/gui/tabs/tab_widget.py: use showEvent, properly select/unselect IFU
          to make it reply back
    * tests/test_gui/test_fplane.py: add regression test to make sure that
          selecting/deselecting all IFUs work as expected
    * tests/test_gui/test_tabs/test_ifu_widget.py: update tests
    * tests/test_gui/test_tabs/test_tab_widget.py: same
    * tests/test_gui/test_mainwindow.py: fix weird interaction with other tests
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: update with the
          showEvent info 
    * doc/_source/gui/main_panel.rst: add link to the above document

2016-10-21 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/codedoc/gui/tabs/entry_points.rst: added
    * doc/_source/codedoc/gui/tabs/new_type_example.rst: add an example on how
          to use and extend the code
    * doc/_source/codedoc/gui/index.rst: add them to index
    * vdat/gui/tabs/entry_points.py: set parent explicitly
    * vdat/gui/tabs/ifu_widget.py: fix documentation

2016-10-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/entry_points.py: add empty_fplane tab type using
          BaseFplanePanel
    * vdat/gui/tabs/interface.py: fix bug with error message
    * doc/_source/gui/main_panel.rst: add empty_fplane documentation
    * setup.py: add empty_fplane entry points
    * tests/test_gui/test_fplane.py: test that the new entry point behave as
          expected

2016-10-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: fix bugs
    * vdat/gui/tabs/ifu_widget.py: fix cleanup documentation
    * tests/test_gui/conftest.py: update fixture for better use
    * tests/test_gui/test_central.py: use the new fixtures
    * tests/test_gui/test_tabs/test_tab_widget.py: test BaseFplanePanel

2016-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: implement the BaseFplanePanel widget, rename
          some of the UpdateIFUTask parts
    * vdat/gui/tabs/ifu_widget.py: add TODO on a slot
    * vdat/gui/tabs/interface.py: update documentation
    * doc/_source/codedoc/gui/tabs/tab_widget.rst: show full inheritance
        * tests/test_gui/test_tabs/test_tab_widget.py: update the UpdateIFUTask
          names

2016-10-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/tab_widget.py: update the UpdateIFUTask to run
    * tests/test_gui/test_tabs/test_tab_widget.py: test it
    * vdat/gui/tabs/ifu_widget.py: update documentation

2016-10-18 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_central.py: move a fixture to the conftest
    * tests/test_gui/conftest.py: update above fixture
    * tests/test_gui/test_tabs/test_ifu_widget.py: added, test the BaseIFUWidget
    * vdat/gui/tabs/ifu_widget.py: fix renaming bugs

2016-10-17 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/codedoc/gui/tabs/ifu_widget.rst: add inheritance map
    * vdat/gui/tabs/ifu_widget.py: first iteration of the IFU widget base class
    * vdat/gui/tabs/tab_widget.py: fix names according to the above changes

2016-10-14 Francesco Montesano <montefra@mpe.mpg.de>


        * doc/_source/codedoc/gui/index.rst: use the new tabs/* files
    * doc/_source/codedoc/gui/tabs: created
    * doc/_source/codedoc/gui/tabs/ifu_viewer.rst: same
        * doc/_source/codedoc/gui/tabs/ifu_widget.rst: renamed from
          ../ifu_widget.rst
        * doc/_source/codedoc/gui/tabs/interface.rst: renambed from tabs_plugins
    * doc/_source/codedoc/gui/tabs/tab_widget.rst: created
    * doc/_source/conf.py: add inheritance diagram
    * vdat/gui/fplane.py: remove all the fplane panel implementation
    * vdat/gui/tabs/tab_widget.py: move here the fplane panel code
    * vdat/gui/ifu_viewer.py: move to tabs/ifu_viewer.py
    * vdat/gui/ifu_widget.py: move to tabs/ifu_widget.py

2016-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/index.rst: fix typo
    * doc/_source/gui/main_panel.rst: update the documentation
    * vdat/gui/tasks.py: PEP8 fix
        * doc/_source/conf.py: fix intersphinx link
        * ReleaseNotes.md: update

2016-09-30 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/fplane.py: remove yield_*_ifu methods and get rid of the
          VDATRunControl object
    * vdat/gui/treeview_model.py: don't use it

2016-09-30 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_fplane.py: test the FplaneWidget
    * vdat/gui/fplane.py: fix some bug and adjust edge cases

2016-09-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: Implement the plugin system for the tabs
    * vdat/gui/tabs/interface.py: adjust interfaces
    * doc/_source/codedoc/gui/fplane.rst: add the FplaneWidget to the docs
    * tox.ini: don't run the doc-qt if the qt* executables do not exist

2016-09-27 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * vdat/gui/tabs/interface.py: add the interface for the function
          implementing the plugin
    * doc/_source/gui/main_panel.rst: add a bit of documentation

2016-09-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/tabs/__init__.py: added
    * vdat/gui/tabs/interface.py: added; implement the FplaneTabTemplate class
          (issue #1601)
    * doc/_source/codedoc/gui/tabs_plugins.rst: added
    * doc/_source/codedoc/gui/index.rst: add tabs_plugins to the index
    * doc/_source/gui/main_panel.rst: add the FplaneTabTemplate to the
          documentation

2016-09-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: reimplement the FplaneCache as a pure cache without
          much intelligence
    * tests/test_gui/test_fplane.py: test it
    * doc/_source/gui/main_panel.rst: begin documenting the plugin system
    * doc/_source/codedoc/gui/fplane.rst: change the documentation to better
          separate parts

2016-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: create here cache and call the reconstruction object
          in the appropriate place; fix super calls
    * vdat/gui/central.py: move the cache creation in the fplane module
    * tests/test_gui/test_central.py

2016-08-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: don't pass a reconstruct object to the FplaneCache
          object. Add property that returns it using the function create in r440
    * vdat/gui/central.py: remove the reconstruction object creation and adapt
          the code
    * tests/test_gui/test_central.py: remove tests about the reconstruction
          object
    * ReleaseNotes.md: update

2016-08-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add function that creates the QuickReconstruct object
          only once and returns it
    * tests/test_gui/test_gui_utils.py: test it
    * tests/conftest.py: add fixture to deal with it
    * tests/test_gui/conftest.py: move around some fixture
    * tests/test_gui/test_central.py: same and adapt

2016-08-18 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk into ^/branches/plug_tabs_1533

2016-08-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menubar.py: emit a signal instead of closing the VDAT (issue
          #1568)
    * vdat/gui/mainwindow.py: connect the above signal with the mainwindow close
          slot; isolate connections with the menu bar into a method
    * tests/test_gui/test_mainwindow.py: test closing via the above signal
        * ReleaseNotes.md: update

2016-08-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/help_window.py: add support for mailto (issue #1579)
    * tests/test_gui/test_help_window.py: test it
    * setup.py: update dependencies to coverage>=4.2
    * tox.ini: same, remove obsolete cov-init environment

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/splash_screen_1562 into ^/trunk 

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/splash_screen_1562
        * vdat/gui/static/VirusDataAnalysisTool*: updated and renamed

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: remove always on top flag, make surer that the
          splashscreen is shown
    * tests/test_gui/test_init.py: update the tests

2016-08-01 Francesco Montesano <montefra@mpe.mpg.de>

    * AUTHORS: Majo added
    * ReleaseNotes.md: updated
    * doc/_source/_static/vdat_icon.ico: added
    * doc/_source/_static/vdat_name.jpg: added
    * doc/_source/_static/vdat_screenshot.png: updated
    * doc/_source/command_interpreter.rst: fix typo
    * doc/_source/conf.py: add the VDAT logo and name
    * setup.py: fix ginga and pytest-qt to older version
    * tox.ini: same
    * tests/test_gui/test_init.py: added
    * vdat/gui/__init__.py: work around splash screen not showing

2016-08-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: do all the splash screen things here
    * vdat/gui/mainwindow.py: add window icon
    * vdat/gui/static/HETDEX_*.jpg: new images and renamed to VDAT_*.jpg
    * vdat/gui/static/vdat_icon.jpg: added and used as icon
    * vdat/libvdat/vdat.py: just create and show the splash screen

2016-07-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: add splash screen functionality
    * vdat/gui/static/HETDEX_black.jpg: added
    * vdat/gui/static/HETDEX_white.jpg: same
    * vdat/libvdat/vdat.py: show the splash screen

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/qt_help_1454/ into ^/trunk

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>


    * ReleaseNotes.md: update
    * vdat/gui/menubar.py: add about Qt button
    * doc/_source/_static/menubar_help.png: update accordingly
    * doc/_source/gui/menu_bar.rst: same
        * tests/test_gui/test_menubar.py: same
    * vdat/gui/static/VDATVirusDataAnalysisTool.*: add updated documentation

2016-08-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwindow.py: remove the logging gui handlers when closing down
    * vdat/database/core.py: fix connect context manager for in memory database
    * tests/test_database.py: test it
    * tests/test_gui/test_mainwindow.py: add and test the whole mainwindow
    * tests/test_gui/test_help_window.py: make the monkeypatch of static method
          work on py2
    * tests/test_gui/test_queue.py: temporarily skip some of the offending tests

2016-08-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/help_window.py: don't run setup in the __init__ for better test.
          Setup the data only after connecting the slot to setup the content widget
    * vdat/gui/menubar.py: set help menu object name for easier testing
    * vdat/gui/utils.py: don't cover run method
    * tests/test_gui/test_gui_utils.py: add test for static directory and qthelp
          file
    * tests/test_gui/test_help_window.py: added
    * tests/test_gui/test_menubar.py: add test for when no documentation is
          found

2016-08-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/help_window.py: added to address issue #1454
    * vdat/gui/mainwindow.py: add slot to open the help window
    * vdat/gui/menubar.py: add menu item to open the help window
    * vdat/gui/static/VDATVirusDataAnalysisTool.qch: add documentation
    * vdat/gui/static/VDATVirusDataAnalysisTool.qhc: same
    * vdat/gui/utils.py: add functions to get the documentation file
    * doc/Makefile: make qthelp now also creates the qch and qhc files
    * doc/_source/codedoc/gui/help_window.rst: added
    * doc/_source/codedoc/gui/index.rst: add
    * doc/_source/contributions.rst: add information about the qt documentation
    * tox.ini: add you environment to create the qt documentation

2016-08-02 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/contributions.rst: update information (issue #1529)

2016-08-02 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/db_version_cleanup into ^/trunk

2016-07-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_widget.py: convert property to pyqtProperty (issue #1532)
    * vdat/gui/menus_actions.py: same
    * vdat/gui/treeview_model.py: same
    * tests/test_libvdat/test_symlink.py: add more randomization to decrease the
          possible file name clashes

2016-08-02 Francesco Montesano <montefra@mpe.mpg.de>

    * pytest.ini: set qt_api=pyqt4
    * setup.py: set pytest-qt>=0.2, skip broken version of ginga
    * tests/test_database.py: fix test
    * tests/test_gui/test_progress.py: same
    * tox.ini: fix pytest-qt version and remove qt_api

2016-07-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/models.py: update VDATExposures according to issue #1530
    * vdat/database/check.py: update the conversion function
    * vdat/libvdat/symlink.py: update the creation of the exposures entries
    * tests/conftest.py: update the current exps dictionary
    * tests/test_database.py: adapt tests
    * tests/test_gui/test_menus_actions.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_symlink.py: same
    * ReleaseNotes.md: update with info about the issue

2016-07-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/models.py: remove virtual and ifus fields as per issue #1339
    * vdat/database/check.py: update the conversion function
    * tests/conftest.py: update the current shot, move here db initialization
          routines
    * tests/test_database.py: adapt the tests
    * tests/test_gui/test_central.py: same
    * ReleaseNotes.md: update with info about the issue

2016-07-01 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/db_version_cleanup

2016-07-01 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * tests/test_database.py: make sure that metadata are moved

2016-07-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/check.py: when updating the meta data, remove superfluous
          entries
    * vdat/libvdat/symlink.py: improve error messages when inserting existing
          meta data
    * tests/test_database.py: test the changes
    * tests/test_libvdat/test_symlink.py: same
    * tests/conftest.py: shuffle fixtures around

2016-06-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/launching.rst: add some info about vdat_db command
    * vdat/database/check.py: after updating the metadata try to add it to the
          database
    * tests/test_database.py: test it
    * doc/_source/codedoc/utilities.rst: added
    * doc/_source/codedoc/index.rst: added to the index

2016-06-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/check.py: add possibility to repair the database
    * tests/test_database.py: test it

2016-06-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/check.py: make vdat_db check subcommand
    * tests/test_database.py: test the changes

2016-06-20 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add enum34 for python < 3.4 and colorama; add vdat_db entry point
    * vdat/database/check.py: added, implement db checks
    * vdat/database/core.py: allow to create db in memory (and don't close it)
    * vdat/utilities.py: function that reads the shot and exps files can also
          return the dir containing the files
    * tests/test_database.py: test the new check module
    * tests/test_utilities.py: update tests

2016-06-17 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: move the function to scan for metadata files to
          vdat/utilities.py and adapt
    * vdat/utilities.py: update the above function implementation
    * tests/test_libvdat/test_symlink.py: adapt the tests
    * tests/test_utilities.py: same

2016-06-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/base.py: add database exception class
    * vdat/database/models.py: 
    * vdat/database/__init__.py: make merge_entries more robust against type
          mismatches
    * tests/test_database.py: test the database subpackage
    * tests/test_database: removed

2016-06-30 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/branches/config_version into ^/trunk

2016-06-30 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/config_version

2016-06-30 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: fix typo
    * vdat/config/entry_point.py: don't add common parser to the parent one

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/codedoc/database.rst: show class inheritance
    * vdat/database/models.py: add version as a table column with a check
    * vdat/database/__init__.py: explicitly import stuff at the package level
    * vdat/database/core.py: remove __all__
    * vdat/libvdat/symlink.py: add the table versions
    * tests/test_gui/test_menubar.py: same
    * tests/test_gui/test_menus_actions.py: same
    * tests/test_gui/test_tree_view.py: same
    * tests/test_libvdat/test_symlink.py: same
    * tests/test_database: added for the future
        * ReleaseNotes.md: updated

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update with info about issue #1501

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: disable the reconstruction checkbox and tab if the
          reconstruction object does not exist
    * vdat/gui/central.py: remove unnecessary method

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_central.py: finish testing the central module
    * vdat/gui/mainwindow.py: fix documentation typo

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: modify imports to allow monkeypatching for the tests;
    * tests/test_gui/test_central.py: add first part of the central module tests

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: don't fail if the quick reconstruction object
          creation fails; add documentation
    * vdat/config/entry_point.py: fix typo
    * doc/_source/codedoc/gui/central.rst: added
    * doc/_source/codedoc/gui/tasks.rst: added
    * doc/_source/codedoc/gui/index.rst: add them to the index

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md
    * vdat/config/entry_point.py: add backup option to the vdat_config copy
          command
    * doc/_source/launching.rst: document it
    * tests/test_config/test_entry_point.py: test it

2016-06-13 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/launching.rst: add the compare command to the doc
    * vdat/config/entry_point.py: fix one of the info messages

2016-06-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/versions.py: add the remaining loaders
    * tests/test_config/test_versions.py: test them

2016-06-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/versions.py: add some loader to check if files are reasonable
    * vdat/config/entry_point.py: add ``-l/--load`` option
    * tests/test_config/test_entry_point.py: test the above
    * tests/test_config/test_versions.py: same

2016-06-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: some improvement on the messages
    * tests/test_config/test_entry_point.py: update the tests

2016-06-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: add diff of files
    * tests/test_config/test_entry_point.py: test it

2016-06-09 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add colorama for nice coloured output
    * vdat/config/entry_point.py: add a compare subcommand and check if files
          exist and have the correct version
    * vdat/config/versions.py: add helper functions
    * tests/test_config/test_entry_point.py: test it
    * tests/test_config/test_versions.py: test it

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/__init__.py: explicitly import attributes
    * vdat/config/core.py: remove __all__
    * vdat/config/versions.py: explicit file names to copy and file versions
    * vdat/config/entry_point.py: rewrite the copy function to use the list of
          names and to replace version numbers
    * vdat/config/tasks.yml: add version
    * vdat/config/vdat_commands.yml: add version
    * vdat/config/vdat_setting.cfg: add version
    * tests/test_config/test_entry_point.py: update the tests
    * tests/test_config/test_versions.py: add
    * doc/_source/codedoc/config.rst: add the versions module

2016-06-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/_source/command_interpreter.rst: improved the documentation (hopefully)
    * vdat/gui/ifu_viewer.py: Fixed a small bug created by a previous rename 
      of the ihmp attribute in the IFU object to ifuslot.
 
2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/log_sig_1492 into ^/trunk

2016-06-15 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/trunk into ^/branches/log_sig_1492

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py: use the command_intepreter command_logger into the
          QCommandInterpreter, connecting/disconnecting the default helper slot in
          the ``run`` method
    * tests/test_gui/test_queue.py: PEP8
    * tests/test_libvdat/test_symlink.py: remove unused import
    * ReleaseNotes.md: update release notes

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/branches/clone_remove into ^/trunk 
    * ReleaseNotes.md: update

2016-06-14 Francesco Montesano <montefra@mpe.mpg.de>

    * : merge ^/trunk into ^/branches/clone_remove
    * ReleaseNotes.md: update

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: re-emit the sig_exposure_removed signal in the
          ReductionQTreeView; return the menu created at right-click
    * tests/test_gui/test_tree_view.py: properly test the menu and that the
          signal is re-emitted

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: add sig_exposure_removed signal to address
        issue #1498
    * tests/test_gui/test_menus_actions.py: test the emission

2016-06-08 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui/tree_view.rst: add Remove exposure description
    * doc/_source/_static/tree_view_clone_remove.png: update screenshot

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: clear the menu before adding new actions
    * tests/test_gui/test_menus_actions.py: test the menus_actions module
    * doc/_source/codedoc/gui/menus_actions.rst: added
    * doc/_source/codedoc/gui/index.rst: add to the index

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menus_actions.py: implement a dynamic menu to remove exposures
    * vdat/gui/treeview_model.py: use it

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: clone in a thread and wait for it to finish;
          set the cursor to wait cursor when cloning or removing a directory
    * tests/test_gui/test_tree_view.py: adapt to the changes and test that
          cloning within or without the thread leads to the same result

2016-06-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: explicitly create actions to clone/remove and
          connect them to slots
    * tests/test_gui/test_tree_view.py: update the tests
    * doc/_source/_static/tree_view_clone_remove.png: update image

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: create signal to perform the command
          logger
    * vdat/command_interpreter/core.py: use it to communicate the
          success/failure of the single sub-commands
    * vdat/command_interpreter/helpers.py: add default implementation for a slot
          for the above signal
    * tests/test_ci/conftest.py: adapt the tests to the changes
    * tests/test_ci/test_command_interpreter.py: same
    * tests/test_ci/test_helpers.py: same
    * tests/test_ci/test_signals.py: same

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/changelog.rst: include changelog verbatim
    * setup.cfg: move coverage configuration here
    * .coveragerc: remove

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump the version and the required pyhetdex version
    * ReleaseNotes.md: update

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_gui/test_progress.py: fix failing test

2016-06-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: updated to the newest format and values

2016-06-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Updated to new fplane format
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/central.py: Same

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/menubar.py: add possibility to specialize removal with the type
    * vdat/config/vdat_setting.cfg: add documentation and example on how to do
          this
    * doc/_source/gui/menu_bar.rst: document it
    * tests/test_gui/test_menubar.py: test it

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: fix typo
    * vdat/gui/utils.py: add function to remove files
    * vdat/gui/menubar.py: sig_remove_files are emitted with the error and thumb
          files
    * vdat/gui/mainwindow.py: connect the new menu bar signal with a slot and
          document the class
    * tests/test_gui/test_gui_utils.py: test the removal
    * tests/test_gui/test_menubar.py: adapt the tests
    * doc/_source/codedoc/gui/fplane.rst: added
    * doc/_source/codedoc/gui/ifu_widget.rst: added
    * doc/_source/codedoc/gui/index.rst: added
    * doc/_source/codedoc/gui/mainwidget.rst: added
    * doc/_source/codedoc/gui/mainwindow.rst: added
    * doc/_source/gui/menu_bar.rst: update the documentation

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/install.rst: fix documentation warning
        * tests/test_ci/test_ci_utils.py: renamed from test_utils.py to avoid pytest
          error
        * tests/test_gui/test_gui_utils.py: renamed from test_utils.py to avoid
          pytest error

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/utils.py: add a custom QThread that executes one function
    * tests/test_gui/test_utils.py: test the utilities
    * doc/_source/codedoc/gui/index.rst: add the utilities to the documentation
    * doc/_source/codedoc/gui/utils.rst: same

2016-06-03 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/menubar_file.png: added
    * doc/_source/_static/menubar_help.png: added
    * doc/_source/_static/menubar_select.png: added
    * doc/_source/_static/menubar_view.png: added
    * doc/_source/codedoc/gui/menubar.rst: added
    * doc/_source/codedoc/gui/index.rst: add the above
    * doc/_source/gui/menu_bar.rst: document behaviour with links
    * doc/_source/install.rst: fix link
    * setup.py: bump version
    * tests/test_gui/test_menubar.py: test the menubar module
    * vdat/config/vdat_setting.cfg: add option with name of the files to remove
    * vdat/gui/menubar.py: add the delete file actions
    * vdat/gui/utils.py: add the thumbnails directory name

2016-06-03 Danuel Farrow <dfarrow@mpe.mpg.de>
   
    * vdat/gui/progress.py: Changed "Running" to "Finished" in the status bar,
          to better reflect the actual state of the job.

    Also changed the wording in some of the documentation:
    * doc/_source/command_interpreter.rst
    * doc/_source/dirstruct.rst
    * doc/_source/gui/index.rst
    * doc/_source/gui/main_panel.rst
    * source/gui/menu_bar.rst
    * doc/_source/gui/progress.rst
    * doc/_source/gui/queue.rst
    * doc/_source/gui/tree_view.rst
    * doc/_source/install.rst
    * doc/_source/launching.rst

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.4.0

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: add hints to use virus_config files
    * vdat/config/tasks.yml: update the commands

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: updated with the latest values

2016-06-01 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/faq.rst: added
    * doc/_source/index.rst: add it to the index
    * vdat/libvdat/symlink.py: fix typos in error messages

2016-05-31 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * doc/_source/install.rst: solve #1452
    * doc/_source/contributions.rst: update

2016-05-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: add creation of mastertwi or masterflat
          from twilight frames; remove fake pixel flat
    * vdat/config/tasks.yml: add the above commands
    * vdat/libvdat/symlink.py: improve error message
    * vdat/config/entry_point.py: add space when asking to the user
    * tests/test_libvdat/test_loggers.py: adapt the tests to the removal of the
          fake pixel flat

2016-05-31 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/symlink.py: add customisation of the types to use for
          calibration
    * vdat/config/vdat_setting.cfg: add/modify the configuration options to
          support the changes above
    * vdat/libvdat/vdat.py: add command line overrides for the above changes
    * tests/test_libvdat/test_symlink.py: test combination of calibration types;
          get rid of virus00001 fixture
    * doc/_source/dirstruct.rst: document the changes

2016-05-30 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/launching.rst: update
    * doc/_source/dirstruct.rst: update
    * vdat/libvdat/vdat.py: update command line option name

2016-05-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/executables.rst: removed
    * doc/_source/index.rst: adapted
    * doc/_source/launching.rst: start improving the use information

2016-05-25  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Fix global cutlevel estimation fixing issue1482
        * vdat/gui/ifu_widget.py: Fix bad levels in thumbnails

2016-05-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: don't emit the number of primaries if
          it's zero
    * vdat/gui/queue.py: properly emit finished when CommandInterpreter.run
          returns
    * tests/test_ci/test_command_interpreter.py: adapt test

2016-05-25 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/vdat.py: skip interpolation error when setting CUREBIN in the
      environment
    * tests/test_libvdat/test_vdat.py: add tests for this

2016-05-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/progress.py: renamed from vdat/gui/progress_bar.py; move
          custom status bar here
    * vdat/gui/mainwidget.py: adapt
    * vdat/gui/mainwindow.py: adapt
    * tests/test_gui/test_progress.py: renamed from test_progress_bar.py; adapt
          to new name; add status bar tests
    * doc/_source/_static/progress_done.png: added
    * doc/_source/_static/progress_going.png: added
    * doc/_source/codedoc/gui/progress.rst: added
    * doc/_source/codedoc/gui/index.rst: adapt and cleaup
    * doc/_source/gui/progress.rst: add progress and status bar info
    * doc/_source/gui/progress_bar.rst: renamed progress.rst
    * doc/_source/gui/index.rst: adapted

2016-05-24 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: fix the documentation; make all slots public
    * vdat/gui/treeview_model.py: fixed typos
    * doc/_source/gui/queue.rst: user documentation added
    * doc/_source/_static/queue_screenshot.png: add screenshot
    * doc/_source/_static/queue_tooltip.png: same
    * doc/_source/codedoc/gui/queue.rst: added
    * doc/_source/codedoc/gui/index.rst: add queue to the index
    * doc/_source/codedoc/gui/tree_view.rst: fix title

2016-05-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/progress_bar.py: remove command interpreter signals and mark
          functions as slots
    * vdat/gui/mainwidget.py: re-enable progress bar
    * vdat/gui/mainwindow.py: connect the queue signals to the progress bars
          and the status bar; the isolate the status bar in its own class
    * tests/test_gui/test_progress_bar.py: rewrite the tests

2016-05-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move CommandInterpreter._run into a
          standalone function to avoid pickling the instance when running in
          multiprocessor mode; get all the signals and attach them to attributes,
          then use the attributes in the CommandInterpreter.run method
    * tests/test_ci/test_command_interpreter.py: adapt the tests
    * vdat/gui/queue.py: replace the VDATCommandWoker with a QCommandInterpreter
          class, that create a QObject out of the command_interpreter and implement
          the signals as pyqtSignals; adapt other parts of the code to those changes
    * tests/test_gui/test_queue.py: adapt the tests
    * vdat/gui/__init__.py: don't connect to CommandInterpreter signals
    * vdat/gui/central.py: use QCommandInterpreter
    * vdat/gui/mainwindow.py: add a function to connect the signals emitted by
          the queue
    * vdat/libvdat/vdat.py: don't connect to the CommandInterpreter signals

2016-05-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move all the signal emissions to the
          main process
    * vdat/gui/queue.py: re-emit worker signals in the Queue class; mark old
          worker and thread for deletion on the next command execution
    * tests/test_gui/test_queue.py: adapt the tests

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: connect command interpreter signals with pyqt ones
    * vdat/gui/__init__.py: cleanup imports
    * vdat/command_interpreter/signals.py: fix documentation bugs
    * tests/test_gui/test_queue.py: test the new signals

2016-05-17 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/relay.py: removed
    * vdat/gui/mainwindow.py: set the queue here, so that it can be used when
          creating the queue action; remove all relay.py references
    * vdat/gui/__init__.py: remove the setting of the queue
    * vdat/gui/queue.py: remove relay and use already existing signals
    * tests/conftest.py: remove relays; normalize clear_* fixtures
    * tests/test_ci/conftest.py: use clear_* fixtures
    * tests/test_ci/test_signals.py: use clear_* fixtures
    * tests/test_gui/test_progress_bar.py: use clear_* fixtures
    * tests/test_gui/test_queue.py: finish testing the queue module

2016-05-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/queue.py: use a thread-worker approach
    * tests/test_gui/test_queue.py: test 89% of the queue module
    * doc/_source/codedoc/gui/index.rst: remove the background

2016-05-24 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/treeview_model.py: improve documentation and rename _pressed slot
          to on_press
    * doc/_source/codedoc/database.rst: added
    * doc/_source/codedoc/gui/index.rst: modified
    * doc/_source/codedoc/gui/tree_view.rst: added
    * doc/_source/codedoc/index.rst: add database
    * doc/_source/conf.py: add pyqt4 intersphinx (but it apparently doesn't
          work)
    * doc/_source/launching.rst: fix link

2016-05-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: add cal_dir and zero_dir to the tooltip
        * tests/test_gui/test_tree_view.py: add it to the test
    * doc/_source/_static/tree_view_tooltip.png: update the screenshot
    * doc/_source/gui/tree_view.rst: finish the documentation

2016-05-21 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/tree_view_clone_dialog.png: add screenshot
    * doc/_source/_static/tree_view_clone_remove.png: add screenshot
    * doc/_source/_static/tree_view_remove_dialog.png: add screenshot
    * doc/_source/_static/tree_view_screenshot.png: add screenshot
    * doc/_source/_static/tree_view_tooltip.png: add screenshot
    * doc/_source/dirstruct.rst: added todo
    * doc/_source/gui/index.rst: add information
    * doc/_source/gui/menu_bar.rst: little change
    * doc/_source/gui/tree_view.rst: begin improving the documentation

2016-05-19 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/_static/vdat_screenshot.png: added
    * doc/_source/gui: all the gui related documentation moved here
    * doc/_source/gui/index.rst: short description and link to more detailed
          ones
    * doc/_source/gui/ifu_viewer.rst: added
    * doc/_source/gui/log_panel.rst: added
    * doc/_source/gui/main_panel.rst: added, all info about the main panel moved
          here
    * doc/_source/gui/menu_bar.rst: added
    * doc/_source/gui/progress_bar.rst: added
    * doc/_source/gui/queue.rst: moved here
    * doc/_source/gui/tree_view.rst: added, all info about the tree view moved
          here
    * doc/_source/index.rst: updated to point to gui/index

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: show the right menu entry only when clicking
          on a valid item; resolves #1465
    * tests/test_gui/test_tree_view.py: test ReductionQTreeView.option_menu slot

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: if no night found, return a model with only
          the root directory
    * tests/test_gui/test_tree_view.py: adapt tests and test the above case

2016-05-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: move the creation of the model and the
          initialization of the view into the ReductionQTreeView class
        * vdat/gui/mainwidget.py: use the ``ReductionQTreeView.set_model`` method to
          redo the symlink
    * tests/test_gui/test_tree_view.py: adapt the tests

2016-05-20  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/menubar.py: Added Quit menu, renamed symlink to file menu

2016-05-12 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: fix #1448

2016-05-11  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Reuse the updateTask, removing one of the
        fast click crash bugs

2016-05-11  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed bug occuring when switching
        fplanes fast

2016-05-11 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * vdat/gui/background.py: remove
    * tests/conftest.py: adapt
    * vdat/gui/__init__.py: same
    * vdat/gui/queue.py: cleanup
    * tests/test_gui/test_queue.py: added

2016-05-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: don't use background
    * vdat/gui/background.py: start phasing this out
    * vdat/gui/queue.py: add a run method and a first implementation of the
          thread to run the command

2016-05-09 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/gui/background.py: remove unused immediate thread
     * vdat/gui/mainwindow.py: same

2016-05-11 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.4.0rc3
    * vdat/libvdat/vdat.py: fix command line interface
    * doc/_source/launching.rst: fix documentation of the above

2016-05-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/fplane.txt: update the fplane file with the 9 IFUs
    * vdat/config/tasks.yml: update
    * vdat/config/vdat_commands.yml: update
    * vdat/gui/ifu_widget.py: add SPECID to the tooltip

2016-05-09 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwidget.py: fix symlinking in gui
    * vdat/gui/utils.py: add wait cursor context manager

2016-05-09  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Made updates more robust
        * vdat/gui/ifu_viewer.py: Add warning if no images selected to
        send to ds9
        * vdat/gui/ifu_widget.py: Make updates more robust

2016-05-09  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Only update ifus during cleanup, if they
        were initialized before

2016-05-06 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: update
    * vdat/config/vdat_commands.yml: add arguments to subtract sky
    * vdat/config/tasks.yml: same
    * vdat/gui/__init__.py: read progress report to console
    * vdat/gui/mainwidget.py: disable progress bar

2016-05-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: add virus instrument to the argument parser

2016-05-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove all astropy loggers
    * vdat/libvdat/loggers.py: explicitly pass configuration objects
    * vdat/libvdat/vdat.py: adapt
    * tests/test_libvdat/test_loggers.py: moved into test_libvdat;
          vdat.libvdat.loggers tested at 100%

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/gui/__init__.py: disconnect the indicator printing progress to console
     * vdat/gui/progress_bar.py: set value to zero when setting it up
     * tests/test_gui/test_progress_bar.py: test the latter

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: make sure that x11 can deal with threads

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add n_primaries signal to
          documentation
    * vdat/gui/progress_bar.py: implement the progress bar and connect to
          command_interpreter signals
    * vdat/gui/mainwidget.py: use the object in progress_bar.py module
    * tests/test_ci/conftest.py: move clean_connected to test/conftest.py
    * tests/test_gui: created
    * tests/test_gui/test_progress_bar.py: added
    * tests/test_gui/test_tree_view.py: moved into test_gui
    * tests/test_ci/test_signals.py: make sure to clean the signals

2016-05-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: new n_primaries signal
    * vdat/command_interpreter/helpers.py: helper function for that
    * vdat/command_interpreter/core.py: emit the signal
    * tests/test_ci/test_helpers.py: update tests
    * tests/test_ci/test_signals.py: same

2016-05-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/extra_files/lines_000[LR].dat: removed
    * vdat/config/extra_files/lines_[LR].par: copied from cure
    * vdat/config/vdat_commands.yml: use combinearcs to create masterarcs; use
          the new line files in deformer, fix option
    * vdat/config/tasks.yml: adapt to the above changes; now I can run deformer
          on most IFUs

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: update the configuration documentation
    * vdat/config/tasks.yml: add all the remaining reduction steps
    * vdat/config/vdat_setting.cfg: set the default pixel scale to 0.5, to speed
          up the GUI startup
    * vdat/gui/fplane.py: don't raise an error if there are no tabs for a task

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwidget.py: cleanup old ways of communication
    * vdat/gui/mainwindow.py: same
    * vdat/gui/relay.py: remove unused signals
    * vdat/gui/treeview_model.py: cleanup and mark method a pyqt slot

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Change default viewer size for
        reconstructed images
        * vdat/gui/ifu_widget.py: Fix possible memory leak in creation of
        binned images

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: remove unused imports
    * vdat/gui/menubar.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/gui/fplane.py: use itertools.product for nested loops
    * vdat/gui/gui.py: removed
    * vdat/gui/ifu_viewer.py: PEP8
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/mainwidget.py: same
    * vdat/gui/tasks.py: same
    * doc/_source/codedoc/gui/index.rst: remove vdat.gui.gui

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Show reconstructed images
        * vdat/gui/central.py: Made pixelscale for reconstructed images configurable
        * vdat/gui/ifu_widget.py: Show reconstructed images in ifu viewer
        fixes issues 1407 and 1409
        * vdat/config/vdat_setting.cfg: Added pixelscale for reconstructed images

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/conf.py: don't check pyhetdex version and use pyhetdex/latest
          for intersphinx

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * README.md: update
    * ReleaseNotes.md: add info about matplotlib removal
    * doc/_source/conf.py: remove matplotlib
    * doc/_source/install.rst: same
    * tests/conftest.py: same

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: get rid of APlpy and matplotlib
    * vdat/libvdat/vdat.py: same

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: add multiprocessing

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: require pyhetdex 0.7.0
    * tests/test_config/test_core.py: adapt tests to the new config files
    * doc/_source/codedoc/gui/index.rst: fix typo

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: document dither tab type
    * vdat/config/tasks.yml: add all reduction science steps up to dividing by
          pixel flats
    * vdat/gui/fplane.py: update dither type implementation
    * vdat/gui/ifu_widget.py: fix bug #1405

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add cal reduction steps
    * vdat/gui/fplane.py: fix some bug with typ and fplane_single
    * vdat/gui/tasks.py: remove debugging prints
    * doc/_source/gui.rst: update documentation

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.3.0
    * ReleaseNotes.md: update

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: implement zro reduction steps
        * vdat/config/vdat_commands.yml: update commands to the latest reduction
          steps
    * vdat/gui/central.py: fix indentation bug when submitting commands to
      queue; improve string sent to the queue
    * vdat/gui/fplane.py: improve FplaneWidget.change_fplane; add
      documentation, fix bug with matching directory names
    * vdat/gui/gui.py: make documentation happy
    * vdat/gui/tasks.py: accept commands as string or as list
    * vdat/gui/treeview_model.py: on selection changed pass the path of the
      directory
    * doc/_source/codedoc/gui/index.rst: move it from ../gui.rst, add
      placeholder table
    * doc/_source/codedoc/index.rst: adapt
    * doc/_source/codedoc/reduction.rst: fix module name
    * doc/_source/gui.rst: begin documentin tasks.yml file

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: remove debug print
    * vdat/gui/fplane.py: same
    * vdat/gui/ifu_widget.py: fix python3 bug

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove tabs.yml and buttons.yml
    * vdat/config/core.py: update accordingly
    * vdat/config/entry_point.py: same
    * vdat/config/buttons.yml: remove
    * tests/test_buttons.py: same
    * vdat/config/tabs.yml: same
    * vdat/gui/buttons_menu.py: same

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: add multiprocessing arguments

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: added
    * vdat/config/vdat_setting.cfg: move max_delta_zro into the symlink section
          and remove config_dirs
    * vdat/config/core.py: add config_dirs section when loading the config file
    * vdat/libvdat/symlink.py: adapt to the above; add warning when no shot file
          is found in a night
    * doc/_source/dirstruct.rst: document max_delta_zro
    * tests/test_config/test_core.py: adapt tests
    * tests/test_libvdat/test_symlink.py: add test for the above warning

2016-04-26 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: update documentation
    * doc/_source/launching.rst: same
    * vdat/config/vdat_setting.cfg: rename virus_dir to virus_instrument
    * tests/conftest.py: same
    * tests/test_libvdat/test_symlink.py: same
    * vdat/libvdat/symlink.py: update accordingly
    * vdat/libvdat/vdat.py: improve description

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: modify symlinking to comply to #1358
    * vdat/config/vdat_setting.cfg: add ``virus_dir`` entry to do the above
    * tests/data/raw/20151025/virus: add the virus directory to the test data
    * tests/conftest.py: adapt to the new directory structure
    * tests/test_ci/test_types.py: same
    * tests/test_libvdat/test_symlink.py: same

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add support for multiple raw or night directories
    * tests/test_libvdat/test_symlink.py: adapt the tests

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: adjust docstring
    * tests/test_symlink.py: moved to tests/test_libvdat
    * tests/test_libvdat/test_vdat.py: added

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_loggers.py: add some more tests

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: fix bug in the command loggers
    * vdat/libvdat/loggers.py: clean up and fix few bugs
    * tests/test_loggers.py: add testing for the above modules

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: push variables to environment in a function, improve
      command line arguments
    * vdat/config/vdat_setting.cfg: add is_rawdir_night option
    * vdat/config/core.py: skip also empty lists when overriding configuration
    * tests/test_config/test_core.py: test it

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: bugfix with ConfigParser file names; use mapping
          interface to insert a value
    * tests/test_config/test_core.py: test the vdat.config.core module
    * tests/conftest.py: adapt to changes in the vdat.config.core module

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: some function moved around, override_conf added
    * vdat/libvdat/vdat.py: first draft of the new command line interface
    * tests/conftest.py: add fixture to clear the internal configuration
          dictionary
    * tests/test_config: created
    * tests/test_config/test_core.py: added
    * tests/test_config.py: moved and renamed tests/test_config/test_entry_point.py 

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: I forgot to update the release notes

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: if a 100000 parameters in sql queries are allowed,
          returns it, otherwise search for the number

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: remove SQLITE_MAX_COLUMN and add estimate of
          SQLITE_MAX_VARIABLE_NUMER
    * vdat/libvdat/symlink.py: use the latter when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: estimate SQLITE_MAX_COLUMN
    * vdat/libvdat/symlink.py: use the estimate when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: remove all the multiprocessing stuff and improve
          log messages
    * vdat/libvdat/vdat.py: no multiprocessing things happening here
    * tests/test_symlink.py: update tests to the changes

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: make the types instance attribute
    * vdat/command_interpreter/types.py: fix __getattr__ to play nicely with
          pickling

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

     * tests/test_config.py: ignore .svn files
     * tests/conftest.py: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_ci/conftest.py: move here some useful fixture
    * tests/test_ci/test_signals.py: use the fixture
    * tests/test_ci/test_command_interpreter.py: test the core module to 99%
    * vdat/command_interpreter/core.py: if no file is collected return; improve
          error from subprocess crashing

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/command_interpreter/core.py: make multiprocessing work
     * tests/test_ci/test_command_interpreter.py: add multiprocessing to the
          tests
     * setup.py: add pytest-xdist dependency for improved coverage
     * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/conf.py: use sphinx.ext.todo instead of
          pyhetdex.doc.sphinxext.tod
        * setup.py: bump sphinx version
        * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: make sure that no error is raised when running the
          symlink of science frames

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: improve testing the symlink and solve issue #1335
    * vdat/config/vdat_setting.cfg: improve regex to match also file names with
          decimal seconds

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

        * setup.py: bump required pyhetdex version to 0.6.0
    * vdat/command_interpreter/core.py: use DeferredResult when running jobs in
          single processor mode
    * tests/test_ci/test_command_interpreter.py: adapt the tests; test the
          filter_section keyword in action; some other little fix

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move the logging from _run to run
          methods
    * vdat/command_interpreter/exceptions.py: add CISubprocessError
    * tests/test_ci/test_command_interpreter.py: adapt the tests

2016-04-14 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex version to 0.5
    * vdat/command_interpreter/core.py: worker created and removed in
          CommandInterpreter.run method
    * vdat/libvdat/symlink.py: worker created and removed in do_symlink function
    * vdat/libvdat/vdat.py: remove workers, as they are handled where they are
          used

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: get and report exceptions when running
          the command
    * ReleaseNotes.md: update
    * setup.py: bump version to 0.2.4

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.2.3-post
    * vdat/command_interpreter/types.py: fix bug that makes file collection
          fails when using regex and directory names containing special characters

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

        * ReleaseNotes.md: added; track history and help writing the report for the
          next release

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_interpreter.rst: renamed, update documentation with
          info about multiprocessing
    * doc/_source/conf.py: use only pyhetdex latest for intersphinx
    * doc/_source/dirstruct.rst: add info about multiprocessing
    * doc/_source/executables.rst: expand a bit
    * doc/_source/launching.rst: same
    * doc/_source/index.rst: reorder some section
    * vdat/command_interpreter/core.py: try to enable multiprocessing, fail
          miserably
    * vdat/gui/buttons_menu.py: pass multiprocessing keywords
    * vdat/libvdat/vdat.py: close also command_interpreter worker

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat: rebased on ^/trunk
    * setup.py: version 0.2.3-post
    * tox.ini: force DISPLAY=:0

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: workaround bug with too many multiple insertions; #1345
    * vdat/gui/gui.py: brute force implementation of re-symlink from gui #1333;
          works, but needs review

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: negative error codes exists and are
          failures; fix the bug

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: don't close the multiprocessing worker to allow
          reusing it; set non existing rawdir to empty string; make public two
          functions that might be used from further symlinking
        * vdat/libvdat/vdat.py: wait and close the symlink worker
    * tests/test_symlink.py: update the tests

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged: branches/multiple_objects@169
        * setup.py: version set to 0.2.2
    * vdat/command_interpreter/core.py: log also the target dir then starting a
          task

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: properly symlink science frames with empty OBJECT
          fields and add counter to repeated OBJECT from different shots
    * tests/test_symlink.py: change test function name. The above changes has
          been tested only by hand
    * doc/_source/dirstruct.rst: add info about this

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * vdat/gui/treeview_model.py: add tool tip
    * tests/test_tree_view.py: test it
    * doc/_source/gui.rst: add some info about tooltip and right-click commands
          available on the tree view

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: advance version
    * vdat/libvdat/symlink.py: fix multiprocessing while symlinking, now it
          works
    * vdat/libvdat/vdat.py: little changes because of the above

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: improve

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add references to zero and cal directories to
          every type

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: add version to command line
    * vdat/libvdat/vdat.py: same
    * vdat/gui/gui.py: add version to "About VDAT" menu; add links to
          documentation
    * vdat/gui/menu.py: pep8

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: version 0.2.1-pre
    * vdat/command_interpreter/types.py: extend the header type to allow
          formatting the values
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: write info log when a command start
          running
    * vdat/command_interpreter/types.py: add ``returns`` option to plain primary
          type
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: create a general section and use it in
          every command; fix biassubtract fits matching to skip thumbnail fits

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: different shots with multiple lamps are now
          collected in the same cal directory
    * vdat/config/vdat_setting.cfg: add config tell the symlinking which header
          keyword has the name of the lamps

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve error message when regex match
          does not work; fix bug with header type and multi-word header keyword
          parsing
    * tests/test_ci/test_types.py: test this 

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: fix couple of bugs and remove copied files if
          cloning fails
    * tests/test_tree_view.py: test 97% of the treeview_model.py (I don't think
          I can do more)

2016-03-31 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_tree_view.py: test checkboxes also from the tree view
          perspective

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/symlink on top of trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * merge branches/cmd_interpreter_update into trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/cmd_interpreter_update on to of trunk

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: connect the global logger to the VDAT main logger
    * vdat/command_interpreter/core.py: fix typo

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: Create a global logger signal
    * vdat/command_interpreter/helpers.py: move the old default implementation
          here
    * vdat/command_interpreter/core.py: use the new global logger
    * tests/test_ci/test_signals.py: test the global logger
    * tests/test_ci/test_helpers.py: same

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: update documentation

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: connect some signal in order to have some execution
          feedback

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: select directory also by enter key
    * tests/test_tree_view.py: test it (it's a workaround for the fact that
          there is a bug about testing clicks on tree view)

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: remove ``row`` from ReductionNode, as it's not
          used
    * tests/test_tree_view.py: same

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: use pytest-catchlog instead of pytest-capturelog
    * tox.ini: same
    * tests/test_command_interpreter.py: adapt to the change
    * tests/test_tree_view.py: same
    * tests/test_symlink.py: same; do the symlinking in the test function, not
          setup

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: bugfix
    * tests/test_tree_view.py: mark old tests as integration, unit-test 46% of the code

2016-03-17 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/database/models.py: add ``path`` attribute to the VDATExposures table
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/gui/treeview_model.py: correctly propagate VDATExposures information
          when cloning and removing directories; fixed bad bug in check/uncheck
    * tests/test_tree_view.py: rewrite tests for the tree view, 40% done

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Renamed Raw to Exp in Tab descriptions

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add CICommandDone signal
    * vdat/command_interpreter/core.py: use it
    * vdat/command_interpreter/helpers.py: add a receiver that prints out stuff
    * tests/test_ci/test_signals.py: test the new signal
    * tests/test_ci/test_helpers.py: test the new helper

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged with ^/trunk
        * tests/test_ci/test_types.py: update number of files

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: add @path@ to the @new_file@ type
    * tests/test_ci/test_types.py: add the tests
    * doc/_source/command_intepreter.rst: document it

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/libvdat/vdat.py: Moved first import of gui till after the
        XPA_METHOD was set based on config

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

        * merged ^/trunk

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove [args] section
    * vdat/database/models.py: remove ThumbnailScaling table
    * vdat/database/core.py: adapt
    * vdat/libvdat/callback.py: removed, as is unused
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/show_fits.py: same
    * doc/_source/codedoc/reduction.rst: remove callback

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: save the exposure database on files to be able to
          rebuild the database from already symlinked directories
    * vdat/utilities.py: add utility function for the exposure database dump
    * vdat/database/base.py: use public functions to get the data from the
          model; provides 3 properties to get some of the data
    * vdat/database/models.py: override the data_clean property to skip the
          foreign fields
    * tests/test_symlink.py: adjust the tests to the changes, test the new parts
    * tests/test_tree_view.py: little adjustment

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: update the new type names 
    * vdat/libvdat/symlink.py: adapt the vdatexposures names
    * vdat/gui/buttons_menu.py: show the empty widget if no button is defined
          for the type
    * vdat/gui/treeview_model.py: get the type names from the database

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: adjust log messages about the type of the
          symlinked shot

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: proper cleanup when the symlinking fails, small
          adjustments.
    * tests/conftest.py: add virus*** related fixtures
    * tests/test_symlink.py: test to 100% the symlinking

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: export the database to the package level
    * vdat/libvdat/symlink.py: make the insertion in the database and the
          symlinking more robust to failures
    * vdat/utilities.py: add new error

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk
    * tests/test_symlink.py: adapt the tests

2016-03-07 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/symlink.py: fix bug in @_find_nearest@, remove optional
          argument from @symlink@ function
    * pytest.ini: add marker for integration tests
    * tests/conftest.py: add night and virus00001 fixtures
    * tests/test_symlink.py: add some unit tests

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: allow unknown/nonstandard object type linking
    * vdat/config/vdat_setting.cfg: add little explanation about it
    * doc/_source/dirstruct.rst: document it

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-03-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: first part of the new_file type
          implementation
    * tests/test_ci/test_types.py: test the new_file type
    * vdat/command_interpreter/core.py: adapt to the above
    * tests/test_ci/test_command_interpreter.py: same
    * doc/_source/command_intepreter.rst: adjust documentation
        * vdat/config/vdat_commands.yml: deformer 4 is no more

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/__init__.py: import get_signal and
          get_signal_names at the module level
    * vdat/command_interpreter/types.py: fix documentation
    * vdat/command_interpreter/utils.py: fix documentation
    * tests/test_ci/test_utils.py: add test of id_
    * doc/_source/codedoc/command_interpreter/types.rst: fix documentation

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: set xpa_method to local to avoid test hanging
    * vdat/command_interpreter/helpers.py: remove __all__
    * vdat/command_interpreter/signals.py: same
    * vdat/command_interpreter/types.py: import numpy
    * doc/_source/codedoc/command_interpreter/index.rst: split the command
          interpreter documentation
    * doc/_source/codedoc/command_interpreter/*.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/relay.py: renambed signals
    * vdat/command_interpreter/signals.py: rewritten to have an behaviour
          similar to qt signals; CILogger not reimplemented; some signal missing
    * vdat/command_interpreter/__init__.py: remove the import of the relay
    * vdat/command_interpreter/core.py: update according to the above changes
    * vdat/command_interpreter/helpers.py: provide some function that can be
          plugged in
    * tests/test_ci/test_helpers.py: added
    * tests/test_ci/test_signals.py: added
    * doc/_source/command_intepreter.rst: relays -> signals
    * doc/_source/codedoc/command_interpreter.rst: moved to
          command_interpreter/index.rst
    * doc/_source/codedoc/index.rst: index in the codedoc to allow reshaping of
          the documentation
    * doc/_source/index.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add a method that returns a range to
          SliceLike
    * vdat/command_interpreter/types.py: use SliceLike in primary_loop; remove
          _to_number function
    * tests/test_ci/test_utils.py: test the range method
    * tests/test_config.py: fixture to fix seed of random for repeatability of
          tests

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: adapt types to use the new
          keyword_regex and do_split = False
    * tests/test_ci/test_types.py: add tests for all the secondary keywords
    * doc/_source/command_intepreter.rst: fix the documentation

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add string and format customization to
          SliceLike
    * tests/test_ci/test_utils.py: test it

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>
        
        * merge trunk

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve the keyword_regex functionality
    * vdat/command_interpreter/utils.py: homogenize doc
    * vdat/command_interpreter/core.py: move back types to class properties to be
          able to run in parallel (this needs investigation)
    * vdat/command_interpreter/exceptions.py: fix typo
    * tests/test_ci/test_types.py: test the keyword_regex functionality
    * doc/_source/command_intepreter.rst: document the new keyword_regex

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/conftest.py: move some fixture to session scope
    * vdat/command_interpreter/core.py: move the types initialisation into the
          __init__

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add SliceLike and copy some utils from
      types.py
    * vdat/command_interpreter/exceptions.py: import the future and add
      CISliceError
    * setup.cfg: add doctest
    * tests/test_ci/test_utils.py: added
        * tests/test_ci/test_command_interpreter.py: moved
    * tests/test_ci/test_types.py: added and partially implemented
    * doc/_source/codedoc/command_interpreter.rst: add types and utils
      documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added
2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added
2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: make sure that x11 can deal with threads

2016-05-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add n_primaries signal to
          documentation
    * vdat/gui/progress_bar.py: implement the progress bar and connect to
          command_interpreter signals
    * vdat/gui/mainwidget.py: use the object in progress_bar.py module
    * tests/test_ci/conftest.py: move clean_connected to test/conftest.py
    * tests/test_gui: created
    * tests/test_gui/test_progress_bar.py: added
    * tests/test_gui/test_tree_view.py: moved into test_gui
    * tests/test_ci/test_signals.py: make sure to clean the signals

2016-05-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: new n_primaries signal
    * vdat/command_interpreter/helpers.py: helper function for that
    * vdat/command_interpreter/core.py: emit the signal
    * tests/test_ci/test_helpers.py: update tests
    * tests/test_ci/test_signals.py: same

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: update the configuration documentation
    * vdat/config/tasks.yml: add all the remaining reduction steps
    * vdat/config/vdat_setting.cfg: set the default pixel scale to 0.5, to speed
          up the GUI startup
    * vdat/gui/fplane.py: don't raise an error if there are no tabs for a task

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/mainwidget.py: cleanup old ways of communication
    * vdat/gui/mainwindow.py: same
    * vdat/gui/relay.py: remove unused signals
    * vdat/gui/treeview_model.py: cleanup and mark method a pyqt slot

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Change default viewer size for
        reconstructed images
        * vdat/gui/ifu_widget.py: Fix possible memory leak in creation of
        binned images

2016-05-02 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: remove unused imports
    * vdat/gui/menubar.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/gui/fplane.py: use itertools.product for nested loops
    * vdat/gui/gui.py: removed
    * vdat/gui/ifu_viewer.py: PEP8
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/mainwidget.py: same
    * vdat/gui/tasks.py: same
    * doc/_source/codedoc/gui/index.rst: remove vdat.gui.gui

2016-05-02  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Show reconstructed images
        * vdat/gui/central.py: Made pixelscale for reconstructed images configurable
        * vdat/gui/ifu_widget.py: Show reconstructed images in ifu viewer
        fixes issues 1407 and 1409
        * vdat/config/vdat_setting.cfg: Added pixelscale for reconstructed images

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: add multiprocessing

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: require pyhetdex 0.7.0
    * tests/test_config/test_core.py: adapt tests to the new config files
    * doc/_source/codedoc/gui/index.rst: fix typo

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/gui.rst: document dither tab type
    * vdat/config/tasks.yml: add all reduction science steps up to dividing by
          pixel flats
    * vdat/gui/fplane.py: update dither type implementation
    * vdat/gui/ifu_widget.py: fix bug #1405

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: add cal reduction steps
    * vdat/gui/fplane.py: fix some bug with typ and fplane_single
    * vdat/gui/tasks.py: remove debugging prints
    * doc/_source/gui.rst: update documentation

2016-04-30 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.3.0
    * ReleaseNotes.md: update

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/tasks.yml: implement zro reduction steps
        * vdat/config/vdat_commands.yml: update commands to the latest reduction
          steps
    * vdat/gui/central.py: fix indentation bug when submitting commands to
      queue; improve string sent to the queue
    * vdat/gui/fplane.py: improve FplaneWidget.change_fplane; add
      documentation, fix bug with matching directory names
    * vdat/gui/gui.py: make documentation happy
    * vdat/gui/tasks.py: accept commands as string or as list
    * vdat/gui/treeview_model.py: on selection changed pass the path of the
      directory
    * doc/_source/codedoc/gui/index.rst: move it from ../gui.rst, add
      placeholder table
    * doc/_source/codedoc/index.rst: adapt
    * doc/_source/codedoc/reduction.rst: fix module name
    * doc/_source/gui.rst: begin documentin tasks.yml file

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/central.py: remove debug print
    * vdat/gui/fplane.py: same
    * vdat/gui/ifu_widget.py: fix python3 bug

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove tabs.yml and buttons.yml
    * vdat/config/core.py: update accordingly
    * vdat/config/entry_point.py: same
    * vdat/config/buttons.yml: remove
    * tests/test_buttons.py: same
    * vdat/config/tabs.yml: same
    * vdat/gui/buttons_menu.py: same

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: add multiprocessing arguments

2016-04-27 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: added
    * vdat/config/vdat_setting.cfg: move max_delta_zro into the symlink section
          and remove config_dirs
    * vdat/config/core.py: add config_dirs section when loading the config file
    * vdat/libvdat/symlink.py: adapt to the above; add warning when no shot file
          is found in a night
    * doc/_source/dirstruct.rst: document max_delta_zro
    * tests/test_config/test_core.py: adapt tests
    * tests/test_libvdat/test_symlink.py: add test for the above warning

2016-04-26 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: update documentation
    * doc/_source/launching.rst: same
    * vdat/config/vdat_setting.cfg: rename virus_dir to virus_instrument
    * tests/conftest.py: same
    * tests/test_libvdat/test_symlink.py: same
    * vdat/libvdat/symlink.py: update accordingly
    * vdat/libvdat/vdat.py: improve description

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: modify symlinking to comply to #1358
    * vdat/config/vdat_setting.cfg: add ``virus_dir`` entry to do the above
    * tests/data/raw/20151025/virus: add the virus directory to the test data
    * tests/conftest.py: adapt to the new directory structure
    * tests/test_ci/test_types.py: same
    * tests/test_libvdat/test_symlink.py: same

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add support for multiple raw or night directories
    * tests/test_libvdat/test_symlink.py: adapt the tests

2016-04-25 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: adjust docstring
    * tests/test_symlink.py: moved to tests/test_libvdat
    * tests/test_libvdat/test_vdat.py: added

2016-04-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_loggers.py: add some more tests

2016-04-28 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: fix bug in the command loggers
    * vdat/libvdat/loggers.py: clean up and fix few bugs
    * tests/test_loggers.py: add testing for the above modules

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: push variables to environment in a function, improve
      command line arguments
    * vdat/config/vdat_setting.cfg: add is_rawdir_night option
    * vdat/config/core.py: skip also empty lists when overriding configuration
    * tests/test_config/test_core.py: test it

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: bugfix with ConfigParser file names; use mapping
          interface to insert a value
    * tests/test_config/test_core.py: test the vdat.config.core module
    * tests/conftest.py: adapt to changes in the vdat.config.core module

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: some function moved around, override_conf added
    * vdat/libvdat/vdat.py: first draft of the new command line interface
    * tests/conftest.py: add fixture to clear the internal configuration
          dictionary
    * tests/test_config: created
    * tests/test_config/test_core.py: added
    * tests/test_config.py: moved and renamed tests/test_config/test_entry_point.py 

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * ReleaseNotes.md: I forgot to update the release notes

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: if a 100000 parameters in sql queries are allowed,
          returns it, otherwise search for the number

2016-04-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: remove SQLITE_MAX_COLUMN and add estimate of
          SQLITE_MAX_VARIABLE_NUMER
    * vdat/libvdat/symlink.py: use the latter when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/core.py: estimate SQLITE_MAX_COLUMN
    * vdat/libvdat/symlink.py: use the estimate when doing a bulk insert

2016-04-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: remove all the multiprocessing stuff and improve
          log messages
    * vdat/libvdat/vdat.py: no multiprocessing things happening here
    * tests/test_symlink.py: update tests to the changes

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: make the types instance attribute
    * vdat/command_interpreter/types.py: fix __getattr__ to play nicely with
          pickling

2016-04-20 Francesco Montesano <montefra@mpe.mpg.de>

     * tests/test_config.py: ignore .svn files
     * tests/conftest.py: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_ci/conftest.py: move here some useful fixture
    * tests/test_ci/test_signals.py: use the fixture
    * tests/test_ci/test_command_interpreter.py: test the core module to 99%
    * vdat/command_interpreter/core.py: if no file is collected return; improve
          error from subprocess crashing

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

     * vdat/command_interpreter/core.py: make multiprocessing work
     * tests/test_ci/test_command_interpreter.py: add multiprocessing to the
          tests
     * setup.py: add pytest-xdist dependency for improved coverage
     * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/conf.py: use sphinx.ext.todo instead of
          pyhetdex.doc.sphinxext.tod
        * setup.py: bump sphinx version
        * tox.ini: same

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: make sure that no error is raised when running the
          symlink of science frames

2016-04-19 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_symlink.py: improve testing the symlink and solve issue #1335
    * vdat/config/vdat_setting.cfg: improve regex to match also file names with
          decimal seconds

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

        * setup.py: bump required pyhetdex version to 0.6.0
    * vdat/command_interpreter/core.py: use DeferredResult when running jobs in
          single processor mode
    * tests/test_ci/test_command_interpreter.py: adapt the tests; test the
          filter_section keyword in action; some other little fix

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: move the logging from _run to run
          methods
    * vdat/command_interpreter/exceptions.py: add CISubprocessError
    * tests/test_ci/test_command_interpreter.py: adapt the tests

2016-04-14 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex version to 0.5
    * vdat/command_interpreter/core.py: worker created and removed in
          CommandInterpreter.run method
    * vdat/libvdat/symlink.py: worker created and removed in do_symlink function
    * vdat/libvdat/vdat.py: remove workers, as they are handled where they are
          used

2016-04-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: get and report exceptions when running
          the command
    * ReleaseNotes.md: update
    * setup.py: bump version to 0.2.4

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version to 0.2.3-post
    * vdat/command_interpreter/types.py: fix bug that makes file collection
          fails when using regex and directory names containing special characters

2016-04-15 Francesco Montesano <montefra@mpe.mpg.de>

        * ReleaseNotes.md: added; track history and help writing the report for the
          next release

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_interpreter.rst: renamed, update documentation with
          info about multiprocessing
    * doc/_source/conf.py: use only pyhetdex latest for intersphinx
    * doc/_source/dirstruct.rst: add info about multiprocessing
    * doc/_source/executables.rst: expand a bit
    * doc/_source/launching.rst: same
    * doc/_source/index.rst: reorder some section
    * vdat/command_interpreter/core.py: try to enable multiprocessing, fail
          miserably
    * vdat/gui/buttons_menu.py: pass multiprocessing keywords
    * vdat/libvdat/vdat.py: close also command_interpreter worker

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat: rebased on ^/trunk
    * setup.py: version 0.2.3-post
    * tox.ini: force DISPLAY=:0

2016-04-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: workaround bug with too many multiple insertions; #1345
    * vdat/gui/gui.py: brute force implementation of re-symlink from gui #1333;
          works, but needs review

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: negative error codes exists and are
          failures; fix the bug

2016-04-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: don't close the multiprocessing worker to allow
          reusing it; set non existing rawdir to empty string; make public two
          functions that might be used from further symlinking
        * vdat/libvdat/vdat.py: wait and close the symlink worker
    * tests/test_symlink.py: update the tests

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged: branches/multiple_objects@169
        * setup.py: version set to 0.2.2
    * vdat/command_interpreter/core.py: log also the target dir then starting a
          task

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: properly symlink science frames with empty OBJECT
          fields and add counter to repeated OBJECT from different shots
    * tests/test_symlink.py: change test function name. The above changes has
          been tested only by hand
    * doc/_source/dirstruct.rst: add info about this

2016-04-08 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump version
    * vdat/gui/treeview_model.py: add tool tip
    * tests/test_tree_view.py: test it
    * doc/_source/gui.rst: add some info about tooltip and right-click commands
          available on the tree view

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: advance version
    * vdat/libvdat/symlink.py: fix multiprocessing while symlinking, now it
          works
    * vdat/libvdat/vdat.py: little changes because of the above

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/dirstruct.rst: improve

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: add references to zero and cal directories to
          every type

2016-04-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: add version to command line
    * vdat/libvdat/vdat.py: same
    * vdat/gui/gui.py: add version to "About VDAT" menu; add links to
          documentation
    * vdat/gui/menu.py: pep8

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: version 0.2.1-pre
    * vdat/command_interpreter/types.py: extend the header type to allow
          formatting the values
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-06 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/core.py: write info log when a command start
          running
    * vdat/command_interpreter/types.py: add ``returns`` option to plain primary
          type
    * tests/test_ci/test_types.py: test it
    * doc/_source/command_intepreter.rst: document it

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: create a general section and use it in
          every command; fix biassubtract fits matching to skip thumbnail fits

2016-04-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: different shots with multiple lamps are now
          collected in the same cal directory
    * vdat/config/vdat_setting.cfg: add config tell the symlinking which header
          keyword has the name of the lamps

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve error message when regex match
          does not work; fix bug with header type and multi-word header keyword
          parsing
    * tests/test_ci/test_types.py: test this 

2016-04-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: fix couple of bugs and remove copied files if
          cloning fails
    * tests/test_tree_view.py: test 97% of the treeview_model.py (I don't think
          I can do more)

2016-03-31 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_tree_view.py: test checkboxes also from the tree view
          perspective

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/symlink on top of trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * merge branches/cmd_interpreter_update into trunk

2016-03-30 Francesco Montesano <montefra@mpe.mpg.de>

        * rebase branches/cmd_interpreter_update on to of trunk

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: connect the global logger to the VDAT main logger
    * vdat/command_interpreter/core.py: fix typo

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: Create a global logger signal
    * vdat/command_interpreter/helpers.py: move the old default implementation
          here
    * vdat/command_interpreter/core.py: use the new global logger
    * tests/test_ci/test_signals.py: test the global logger
    * tests/test_ci/test_helpers.py: same

2016-03-29 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: update documentation

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: connect some signal in order to have some execution
          feedback

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: select directory also by enter key
    * tests/test_tree_view.py: test it (it's a workaround for the fact that
          there is a bug about testing clicks on tree view)

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: remove ``row`` from ReductionNode, as it's not
          used
    * tests/test_tree_view.py: same

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: use pytest-catchlog instead of pytest-capturelog
    * tox.ini: same
    * tests/test_command_interpreter.py: adapt to the change
    * tests/test_tree_view.py: same
    * tests/test_symlink.py: same; do the symlinking in the test function, not
          setup

2016-03-21 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: bugfix
    * tests/test_tree_view.py: mark old tests as integration, unit-test 46% of the code

2016-03-17 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/database/models.py: add ``path`` attribute to the VDATExposures table
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/gui/treeview_model.py: correctly propagate VDATExposures information
          when cloning and removing directories; fixed bad bug in check/uncheck
    * tests/test_tree_view.py: rewrite tests for the tree view, 40% done

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/fplane.py: Renamed Raw to Exp in Tab descriptions

2016-03-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/signals.py: add CICommandDone signal
    * vdat/command_interpreter/core.py: use it
    * vdat/command_interpreter/helpers.py: add a receiver that prints out stuff
    * tests/test_ci/test_signals.py: test the new signal
    * tests/test_ci/test_helpers.py: test the new helper

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

        * merged with ^/trunk
        * tests/test_ci/test_types.py: update number of files

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: add @path@ to the @new_file@ type
    * tests/test_ci/test_types.py: add the tests
    * doc/_source/command_intepreter.rst: document it

2016-03-16  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/libvdat/vdat.py: Moved first import of gui till after the
        XPA_METHOD was set based on config

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

        * merged ^/trunk

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_setting.cfg: remove [args] section
    * vdat/database/models.py: remove ThumbnailScaling table
    * vdat/database/core.py: adapt
    * vdat/libvdat/callback.py: removed, as is unused
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/show_fits.py: same
    * doc/_source/codedoc/reduction.rst: remove callback

2016-03-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: save the exposure database on files to be able to
          rebuild the database from already symlinked directories
    * vdat/utilities.py: add utility function for the exposure database dump
    * vdat/database/base.py: use public functions to get the data from the
          model; provides 3 properties to get some of the data
    * vdat/database/models.py: override the data_clean property to skip the
          foreign fields
    * tests/test_symlink.py: adjust the tests to the changes, test the new parts
    * tests/test_tree_view.py: little adjustment

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/fplane.py: update the new type names 
    * vdat/libvdat/symlink.py: adapt the vdatexposures names
    * vdat/gui/buttons_menu.py: show the empty widget if no button is defined
          for the type
    * vdat/gui/treeview_model.py: get the type names from the database

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: adjust log messages about the type of the
          symlinked shot

2016-03-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: proper cleanup when the symlinking fails, small
          adjustments.
    * tests/conftest.py: add virus*** related fixtures
    * tests/test_symlink.py: test to 100% the symlinking

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: export the database to the package level
    * vdat/libvdat/symlink.py: make the insertion in the database and the
          symlinking more robust to failures
    * vdat/utilities.py: add new error

2016-03-08 Francesco Montesano <montefra@mpe.mpg.de>

    * merge ^/trunk
    * tests/test_symlink.py: adapt the tests

2016-03-07 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/libvdat/symlink.py: fix bug in @_find_nearest@, remove optional
          argument from @symlink@ function
    * pytest.ini: add marker for integration tests
    * tests/conftest.py: add night and virus00001 fixtures
    * tests/test_symlink.py: add some unit tests

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/symlink.py: allow unknown/nonstandard object type linking
    * vdat/config/vdat_setting.cfg: add little explanation about it
    * doc/_source/dirstruct.rst: document it

2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-03-04 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: first part of the new_file type
          implementation
    * tests/test_ci/test_types.py: test the new_file type
    * vdat/command_interpreter/core.py: adapt to the above
    * tests/test_ci/test_command_interpreter.py: same
    * doc/_source/command_intepreter.rst: adjust documentation
        * vdat/config/vdat_commands.yml: deformer 4 is no more

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/__init__.py: import get_signal and
          get_signal_names at the module level
    * vdat/command_interpreter/types.py: fix documentation
    * vdat/command_interpreter/utils.py: fix documentation
    * tests/test_ci/test_utils.py: add test of id_
    * doc/_source/codedoc/command_interpreter/types.rst: fix documentation

2016-02-29 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: set xpa_method to local to avoid test hanging
    * vdat/command_interpreter/helpers.py: remove __all__
    * vdat/command_interpreter/signals.py: same
    * vdat/command_interpreter/types.py: import numpy
    * doc/_source/codedoc/command_interpreter/index.rst: split the command
          interpreter documentation
    * doc/_source/codedoc/command_interpreter/*.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/relay.py: renambed signals
    * vdat/command_interpreter/signals.py: rewritten to have an behaviour
          similar to qt signals; CILogger not reimplemented; some signal missing
    * vdat/command_interpreter/__init__.py: remove the import of the relay
    * vdat/command_interpreter/core.py: update according to the above changes
    * vdat/command_interpreter/helpers.py: provide some function that can be
          plugged in
    * tests/test_ci/test_helpers.py: added
    * tests/test_ci/test_signals.py: added
    * doc/_source/command_intepreter.rst: relays -> signals
    * doc/_source/codedoc/command_interpreter.rst: moved to
          command_interpreter/index.rst
    * doc/_source/codedoc/index.rst: index in the codedoc to allow reshaping of
          the documentation
    * doc/_source/index.rst: same

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add a method that returns a range to
          SliceLike
    * vdat/command_interpreter/types.py: use SliceLike in primary_loop; remove
          _to_number function
    * tests/test_ci/test_utils.py: test the range method
    * tests/test_config.py: fixture to fix seed of random for repeatability of
          tests

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: adapt types to use the new
          keyword_regex and do_split = False
    * tests/test_ci/test_types.py: add tests for all the secondary keywords
    * doc/_source/command_intepreter.rst: fix the documentation

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add string and format customization to
          SliceLike
    * tests/test_ci/test_utils.py: test it

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>
        
        * merge trunk

2016-02-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/types.py: improve the keyword_regex functionality
    * vdat/command_interpreter/utils.py: homogenize doc
    * vdat/command_interpreter/core.py: move back types to class properties to be
          able to run in parallel (this needs investigation)
    * vdat/command_interpreter/exceptions.py: fix typo
    * tests/test_ci/test_types.py: test the keyword_regex functionality
    * doc/_source/command_intepreter.rst: document the new keyword_regex

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/conftest.py: move some fixture to session scope
    * vdat/command_interpreter/core.py: move the types initialisation into the
          __init__

2016-02-18 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter/utils.py: add SliceLike and copy some utils from
      types.py
    * vdat/command_interpreter/exceptions.py: import the future and add
      CISliceError
    * setup.cfg: add doctest
    * tests/test_ci/test_utils.py: added
        * tests/test_ci/test_command_interpreter.py: moved
    * tests/test_ci/test_types.py: added and partially implemented
    * doc/_source/codedoc/command_interpreter.rst: add types and utils
      documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added
2016-02-26 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bump pyhetdex requirement to 0.4
    * vdat/libvdat/symlink.py: get most of the information for the symlinking
          from the file names
    * vdat/config/vdat_setting.cfg: put together most of the options needed for
          symlinking
    * vdat/utilities.py: homogenize exceptions used by symlinking
    * doc/_source/dirstruct.rst: update documentation

2016-02-19 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore dist
    * setup.py: fix some packages minimum version, fix version number
    * tox.ini: fix some packages minimum version
    * vdat/command_interpreter/types.py: use Yields in documentation
    * vdat/gui/fplane.py: same
    * vdat/config/entry_point.py: vdat_config without subcommand behave the same
          in py2 and py3
    * vdat/gui/buttons_menu.py: add fplane_widget property
    * vdat/gui/gui.py: mark two methods for possible delection
    * tests/test_buttons.py: monkeypatch CommandButton.fplane_widget to test
          without selected IFUs
    * tests/test_config.py: fix test of empty vdat_config call
    * tests/test_tree_view.py: adapt to the new gui structure
    * doc/_source/conf.py: cleanup, PEP8 and try to guess the pyhetdex version
          to for intersphinx
    * doc/_source/install.rst: change link anchor name

2016-02-17 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: add relevant files to package
    * pytest.ini: move pytest specif configurations here
    * requirements.txt: removed
    * setup.cfg: alias pytest=test command, remove pytest specific options
    * setup.py: use pytest-runner, remove tox from setup
    * tox.ini: remove all spurious dependences that are now reachable with pip,
          add extra pypi url
    * vdat/__init__.py: get version from the package configuration
    * doc/_source/_templates/version.html: add version
    * doc/_source/conf.py: add the above version in the side bar
    * doc/_source/index.rst: add version number
    * doc/_source/install.rst: update installation info

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/entry_point.py: check if the target directory exists, even if
          the path is not "."
    * tests/test_config.py: add a couple of tests for the new features

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

        * : merge ^/trunk into ^/branches/issue1178

2016-01-29 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: temporary disable tox_requires to avoid installation issues
    * vdat/config/entry_point.py: fix #1178, improve output info and argument
          parser

2016-01-27  Jan Snigula  <snigula@mpe.mpg.de>

        * tests/test_buttons.py: Adapt do changes made to setup_buttons

2016-01-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/gui.py: isolate the FplaneWidget and buttons; isolate the menu;
          add ability to resize widgets; move logger widget into logger_widget.py
          module
    * vdat/libvdat/handlers.py: moved to vdat/gui/logger_widget.py
    * vdat/gui/logger_widget.py: add logger widget
    * vdat/gui/treeview_model.py: same
    * vdat/gui/buttons_menu.py: remove size constraints
    * vdat/gui/background.py: typo fixed

2016-01-19  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed missing X for missing IFUs
        * vdat/gui/gui.py: Pass fplane widget along
        * vdat/gui/buttons_menu.py: Same


2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_viewer.py: Pass basename through
        * vdat/gui/ifu_widget.py: Same
        * vdat/gui/fplane.py: Same

2016-01-18  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/ifu_widget.py: Fixed double click
        * vdat/gui/fplane.py: New thumbnails work now, zscaling mostly as
        well

2016-01-18 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add qimage2ndarray dependence
    * vdat/libvdat/symlink.py: use directory name into vdat exposure table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/gui/treeview_model.py: Changed a signal
        * vdat/gui/menu.py: Moved code to gui
        * vdat/database/core.py: Added new database table
        * vdat/config/tabs.yml: Updated regexes
        * vdat/gui/fplane.py: Restructured
        * vdat/gui/ifu_widget.py: Moved to direct fits file loading
        * vdat/database/models.py: Added new database table
        * vdat/gui/gui.py: Restructured
        * vdat/gui/buttons_menu.py: Changed yield behaviour
        * vdat/libvdat/symlink.py: Added new database table

2015-12-17  Jan Snigula  <snigula@mpe.mpg.de>

        * vdat/__init__.py: Bumped version to 0.1.0

2015-11-30 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/ifu_viewer.py: load it also if pyds9 fails to import; add
          notification about the import failure; add error box if
          pyds9 fails to connect to a ds9 session

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added starextract
    * vdat/config/buttons.yml: same

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/command_interpreter/types.py: add is_regex key to primary keywords;
          when getting file names match add the full path to the regex/wildcard
    * doc/_source/command_intepreter.rst: document is_regex
    * vdat/config/vdat_commands.yml: add detection step; fix file names and
          regex in various commands; streamline some keyword values
    * vdat/config/extra_files/IFUcen_HETDEX.txt: added
    * vdat/config/buttons.yml: add

2015-11-26 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .coverage files, but no .coveragerc
    * .coveragerc: added
    * doc/_source/contributions.rst: add more info about tox
    * doc/_source/index.rst: add link to coverage report
    * requirements.txt: remove numpy
    * scripts/remove_empty_coverage.sh: added
    * scripts/symlink_pyqt.sh: call the python script with the full path to
          ``scripts`` directory
    * setup.cfg: remove coverage configurations
    * tests/test_buttons.py: fix test bug when ``commands`` is a string
    * tox.ini: build the documentation and coverage report

2015-11-24 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: aesthetic change
    * vdat/command_interpreter/core.py: raise an CIRunError when the return
          value is not null
    * vdat/command_interpreter/types.py: add possibility to manipulate the
          return value of the ``loop`` primary key
    * doc/_source/command_intepreter.rst: document it
    * vdat/command_interpreter/utils.py: added
    * vdat/config/buttons.yml: add the button to create the dither file
    * vdat/config/extra_files/dither_positions.txt: added
    * vdat/config/vdat_commands.yml: add the instruction to create the dither
          files
    * vdat/gui/buttons_menu.py: fix documentation typo

2015-11-08 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: change master* names to values compatible
          with cure's DitherEnvironment, add symlink command to create better file
          names for the science frames
    * vdat/config/buttons.yml: add command for the symlinking

        use ``vdat_config copy`` to update the configuration files


2015-10-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/vdat.py: set xpa_method in the environment to local by
          default
    * vdat/config/vdat_setting.cfg: add option to modify the xpa_method and
          kdescription

2015-10-23 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: Added new tabs to display the products
                            of the new reduction buttons

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * doc/_source/command_intepreter.rst: more info about the selected IFU given
    * tests/data/raw/20120301: replaced with new simulations
    * tests/test_command_interpreter.py: adapt to it
    * tests/test_symlink.py: same

2015-10-23 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: pass the selected ifus to the command
          interpreter
    * vdat/gui/fplane.py: PEP8
    * vdat/config/vdat_commands.yml: add the ``filter_selected`` keyword;
          improve match only fits filename starting with number
    * tests/test_buttons.py: test ifu selection

2015-10-22 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: put commands on the queue
    * vdat/gui/queue.py: adapt the queue to accept and return CommandInterpreter
          instances; create set/get_queue functions
    * vdat/gui/background.py: set/get_background functions; adapt the
          background object to the above; fix bugs
    * vdat/gui/__init__.py: adapt to the above, remove callback
    * vdat/gui/relay.py: log also exception
    * vdat/gui/gui.py: fix some docstring
    * vdat/command_interpreter/core.py: fix a bug with template and exe
          substitution
    * vdat/command_interpreter/types.py: match the file name at the end of a
          string
    * vdat/libvdat/loggers.py: setup the loggers for the commands
    * vdat/libvdat/vdat.py: use it
    * vdat/config/core.py: better error handling when getting configurations
    * vdat/config/extra_files/*: added
    * vdat/config/entry_point.py: copy also the extra files
    * vdat/config/vdat_commands.yml: fix bugs and adjust paths
    * vdat/config/vdat_setting.cfg: fix the command logger configuration entries
    * tests/conftest.py: force copying the configuration to avoid troubles
    * tests/test_buttons.py: finish the testing of the buttons
    * tests/test_command_interpreter.py: test alias replacing
    * tests/test_config.py: adapt the tests to the changes due to extra
          configuration files in subdirectories

2015-10-19 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: move button to custom class, create
          CommandInterpreter instances when pushing the buttons and report problems
          with a dialog
    * vdat/gui/treeview_model.py: pep8
    * vdat/command_interpreter/exceptions.py: fix bug with CIExeError
    * vdat/config/vdat_commands.yml: masterarc needs an alias
    * vdat/config/vdat_setting.cfg: add comments about redux_dirs
    * vdat/database/models.py: PEP8
    * vdat/libvdat/vdat.py: inject CUREBIN into the path
    * tests/test_buttons.py: add a test clicking the buttons

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/buttons_menu.py: rewrite the creation of the buttons
    * vdat/gui/gui.py: use the new button menu
    * vdat/gui/treeview_model.py: connect the button menu to switch set of
          buttons when changing directory; use a signal to change the central and
          button panels
    * vdat/config/buttons.yml: configuration file driving the button creation
    * vdat/config/vdat_setting.cfg: add it
    * vdat/config/core.py: add it to the files to load
    * vdat/config/entry_point.py: add it to the files to copy
    * vdat/config/vdat_commands.yml: little formatting
    * tests/test_buttons.py: test the button widget; for now test that is
          correctly created and that the switching happens correctly
    * tests/test_command_interpreter.py: make sure to get a file for the ifu 34

2015-10-16 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/vdat_commands.yml: added
    * vdat/config/vdat_setting.cfg: add the above file
    * vdat/config/core.py: load vdat_commands.yml
    * vdat/config/entry_point.py: copy it; don't overwrite existing files by
          default
    * tests/test_config.py: test the vdat_config command

2015-10-14 Francesco Montesano <montefra@mpe.mpg.de>

        Tests run for python 2.7, 3.4 and 3.5

    * tests/test_command_interpreter.py: test also part of the run method. Still
          to test if exceptions are handled correctly
    * vdat/command_interpreter/core.py: fix bugs and improve error handling and
          logging
    * vdat/command_interpreter/relay.py: fix bugs with progress relay
    * vdat/command_interpreter/types.py: fix bugs and don't cover template
          functions
    * MANIFEST.in: add readme and requirement file to avoid tox building
          failures
    * requirements.txt: add numpy to avoid scipy building failures
    * setup.py: add new_file entry point

2015-10-14 Daniel Farrow <dfarrow@mpe.mpg.de>

     * vdat/gui/fplane.py: Aligned the scale combobox left to make it prettier 
     * vdat/libvdat/show_fits.py: replaced another call to astropy getdata with
                                  a ``with open(fn, 'rb')`` to avoid the astropy bug
     * vdat/gui/ifu_viewer.py: "Send to ds9" menu now generated dynamically when the
                               "ds9" menu is clicked. Only files from the currently
                               selected tab are sent to "ds9" when the menu item
                               is selected. 

2015-10-13 Daniel Farrow <dfarrow@mpe.mpg.de>

      * requirements.txt: added pyds9 repo
      * setup.py: added pyds9 repo
      * vdat/gui/ifu_viewer.py: wrapped get_header in with open(f) to avoid the 
                                astropy bug of not closing files.

2015-10-13 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: group together entripoints
    * vdat/command_interpreter/core.py: some bug fix, use execute types, some
          changes with the exception handling
    * vdat/command_interpreter/exceptions.py: rename some exception
    * vdat/command_interpreter/types.py: add execute type and implement all the
          necessary types
    * tests/test_command_interpreter.py: test most of the command interpreter
          initialisation
    * doc/_source/command_intepreter.rst: extend documentation
    * vdat/config/ci_documentation.yml: removed

2015-10-12 Daniel Farrow <dfarrow@mpe.mpg.de>:

    * vdat/gui/fplane.py: moved update IFUs from init to 
                          change_focal_plane, to avoid the
                          thumbnail generator looking for an
                          uninitialized fplane 
    * vdat/gui/ifu_viewer.py: Added option to select frames
                              and send them to a new or existing
                              ds9 session
    * setup.py: Added pyds9 to install requires

2015-10-09 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/database/core.py: added a table to store image brightness scaling parameters
    * vdat/database/models.py: as above
    * vdat/gui/fplane.py: Added a section to control the brightness scaling of the thumbnails in the
                          focal plane. User can select scaling per fits file, or a global
                          scaling (which can be user specified) for the whole focal plane.
                          The Fplane class in now its own QWidget.
    * vdat/gui/gui.py: Added comments
    * vdat/gui/ifu_viewer.py: Suppresses warnings from Ginga ;-)
    * vdat/gui/ifu_widget.py: IFU viewers are parented to the main window, so
                              they can persist when the user changes fplane
    * vdat/libvdat/show_fits.py: Casts the number of rows to an integer explicitly. Connects
                                 to a database to find, or set, global brightness
                                 scaling parameters when required for the thumbnails. Uses a
                                 file object with astropy getdata in order to avoid an 
                                 astropy bug.

2015-10-09 Francesco Montesano <montefra@mpe.mpg.de>

    * tests/test_command_interpreter.py: first tests added
    * vdat/command_interpreter/core.py: better exceptions
    * vdat/command_interpreter/exceptions.py: same

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: bootstrap setuptools if it's not installed
    * ez_setup.py: bootstrap module

2015-10-07 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config/core.py: separate the loading from the getting of the
          configurations: allow more homogeneous handling of the configuration files
    * vdat/config/vdat_setting.cfg: comment a bit more
    * vdat/config/entry_point.py: move here the implementation of the
          ``vdat_config`` executable; use pkg_resources to get copy the
          configuration files
    * setup.py: update the entry point
    * vdat/gui/fplane.py: use the new configuration interface; PEP8
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_viewer.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/queue.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * tests/conftest.py: same
    * doc/Makefile(livehtm): add vdat/config to the tracked directories
    * doc/_source/codedoc/config.rst: add code documentation
    * doc/_source/index.rst: same

2015-10-07 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/tabs.yml: Added new configuration for the upgraded thumbnail
                                creation (see below)
        * vdat/gui/background.py: Immediate background thread waits for last job to stop
                                  before running the next job. Toggle system
                                  for the isImmRunning flag removed as it depended
                                  on the main thread being available. Now the
                                  immediate background thread controls the isImmRunning
                                  flag is controlled by the Worker in the thread.
        * vdat/gui/fplane.py: Waits for jobs on immediate thread to stop, stops
                              QObjects still in use from being deleted.
        * vdat/gui/gui.py: Handles the uses clicking the close button, now waits
                           for running jobs on the immediate thread to end. This
                           stops seg faults from a sudden close.
        * vdat/gui/ifu_widget.py: Fixes a bug by removing the auto-regeneration
                                  of corrupted thumbnails. Simply dumps them instead.
        * vdat/libvdat/show_fits.py: Based on options in tabs.yml, create a grid of
                                     thumbnails for the IFU widget with entries
                                     for the different channels, amps.

2015-10-05 Daniel Farrow <dfarrow@mpe.mpg.de>

        * vdat/config/core.py: Added load_yaml
        * vdat/config/tabs.yml: Moved tabs subsections to be direcly under
                                the different node types (on the same level as 
                                the ifu_viewer and main subsections).
        * vdat/gui/fplane.py: Added tools to save and generate focal
                              plane panels. What is displayed as a thumbnail
                              is decided by the user via a combo box (i.e. the raw fits, fibre-collapsed
                              images, arcs, flats etc.). Defaults are set in the tabs.yml
        * vdat/gui/gui.py: Central panel now generated dynamically 
                           rather than at initialization.  
        * vdat/gui/ifu_viewer.py: Moved load_yaml to vdat.config
        * vdat/gui/relay.py: Added 'change_centralPanel' signal.
        * vdat/gui/treeview_model.py: Rather than prompting an update of the IFUs,
                                      selecting a node causes a whole new
                                      central panel to be created        
        * vdat/libvdat/show_fits.py: Now show_thumbnails takes a config object
                                     with a regex specifying the file type to
                                     display

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add yaml
    * vdat/libvdat/loggers.py: reorganize the loggers code to remove repetitions
    * vdat/config/vdat_setting.cfg: adapt the configuration to this
    * vdat/libvdat/vdat.py: create appropriate ginga logger
    * vdat/gui/ifu_viewer.py: PEP8 frenzy; use ginga logger
    * doc/_source/codedoc/reduction.rst: add logging documentation
    * doc/_source/gui.rst: fix warning
    * doc/_source/index.rst: add todo about logging

2015-10-05 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/command_interpreter: added
    * vdat/command_interpreter/__init__.py: import interface at module level
    * vdat/command_interpreter/core.py: implement the interpreter
    * vdat/command_interpreter/exceptions.py: define custom exceptions
    * vdat/command_interpreter/helpers.py: will contain some helper function
    * vdat/command_interpreter/relay.py: relay-like interface for communication
          between the interpreter and the world
    * vdat/command_interpreter/types.py: define classes to deal with types
    * vdat/config/ci_documentation.yml: very wordy yaml file to use for
          documentation purposes
    * doc/Makefile: add command_interpreter for auto-compilation
    * doc/_source/codedoc/command_interpreter.rst: added
    * doc/_source/command_interpreter.rst: added
    * doc/_source/index.rst: add the above documents
    * doc/_source/codedoc/reduction.rst: remove reduction module
    * vdat/libvdat/callback.py: get logger in method

2015-09-30 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/config/tabs.yml: configuration file that decides what is
                            displayed in different panels
    * vdat/config/vdat_setting.cfg: Add tabs.yml to config file
    * vdat/gui/background.py: Worker now passes **kwargs and *args
    * vdat/gui/ifu_viewer.py: Read in tabs.yml, creates tabs in the
                              viewer based on it.
    * vdat/gui/ifu_widget.py: When doduble clicked and no
                              directory selected, ask the user to select
                              one
    * vdat/gui/treeview_model.py: Passes the type of directory selected
                                  to show_fits
    * vdat/libvdat/loggers.py: Added a generic logger class to store
                               Ginga loggers
    * vdat/libvdat/reduction.py: ifuid -> ihmpid when deriving filenames
    * vdat/libvdat/show_fits.py: Saves the type of directory selected in the IFU object
                                 this might not be ideal
    * doc/_source/gui.rst: Added some GUI documentation
    * vdat/config/core.py: Added tabs.yml to CONFIG_FILES

2015-09-23 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore build and .eggs directories
    * setup.cfg: same
    * setup.py: create setuptools command @tox@ to fetch tox, if necessary, and
          run tox
    * scripts/symlink_pyqt.sh: don't print error if pyqt4 is not symlinked
    * doc/_source/contributions.rst: added; describe testing via tox and py.test
    * doc/_source/index.rst: add the above
    * doc/_source/install.rst: update dependency list

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: make the gui tests succeed on tox too

2015-09-22 Francesco Montesano <montefra@mpe.mpg.de>

    * tox.ini: added
    * setup.cfg: ignore .tox when discovering tests
    * svn:ignore: add .tox directory
    * MANIFEST.in: fix config directory name change
    * scripts/symlink_pyqt.{sh,py}: symlink pyqt4 and sip into the tox virtual
          enviroments
    * vdat/libvdat/symlink.py: do not try to commit if the redux directory is
          empty
    * tests/conftest.py: initialise the main logger

2015-09-21 Francesco Montesano <montefra@mpe.mpg.de>

    * svn:ignore: ignore .cache directory
    * setup.py: minimum pytest-qt version; fix console_scripts module name
    * tests/conftest.py: no need to get for fixtures to get the configuration
          and to start the database
    * tests/test_symlink.py: clean the loggers
    * tests/test_tree_view.py: no need to start database;
    * vdat/config/vdat_setting.cfg: disable multiprocessing by default; use only
          one max delta time for calibration
    * vdat/database/base.py: property to get data as dictionary
    * vdat/database/core.py: init get directory where the database should go;
          fix bug with @connect@
    * vdat/database/models.py: new table columns, method to create the path and
          merge multiple rows into one
    * vdat/libvdat/symlink.py: initialize, fill and update the database when doing the
          symlinking
    * vdat/gui/treeview_model.py: build the view from the database
    * vdat/libvdat/vdat.py: don't initialize the database
    * vdat/utilities.py: merge dictionaries function added; modify some errors

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

        * *py: use the __future__
    * vdat/database/__init__.py: split into sub modules and import only the
          "public" interface
    * vdat/database/base.py: define the database and the base model
    * vdat/database/core.py: initialise the database and deal with the
          connection
    * vdat/database/models.py: custom models are implemented here
    * vdat/database/old_database.py: removed
    * vdat/gui/treeview_model.py: use floor with datetime.timedelta
    * vdat/libvdat/symlink.py: same

2015-09-15 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/config: renamed from vdat/vdat_config
    * vdat/config/__init__.py: import only "public" interface
    * vdat/config/core.py: renamed from vdat/libvdat/config.py and adapted
    * setup.py: add ginga, adapt ``vdat_config`` entry point to new
      directories
    * vdat/gui/fplane.py: use new config subpackage
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/loggers.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/gui/relay.py: instantiate ``SignalClass`` inside a function and save
          in a local list to allow for testing
    * vdat/gui/__init__.py: use the new implementation
    * vdat/gui/ifu_viewer.py: same (plus PEP8)
    * vdat/gui/gui.py: same and config subpackage
    * vdat/gui/queue.py: same
    * vdat/libvdat/fits.py: same
    * vdat/utilities.py (config_directory): moved to vdat/config/core.py
    * tests/conftest.py: adapt to the above changes, use pyqt4 v2 api, add
          fixtures to start the database and to clear lists and dictionaries at the
          end of a test to allow reuse
    * tests/test_tree_view.py: use new fixtures

2015-09-14 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: dialog confirming deletion; fix bug with
          indexing

2015-09-11 Francesco Montesano <montefra@mpe.mpg.de>

    * MANIFEST.in: corrected
        * doc/_source: created; conf.py, the _template and _static directories and
          all the rst files has been moved into this directory
    * doc/Makefile: adapted to the changes
        * doc/_source/*: small improvements
    * setup.py: add vdat_config entry point
    * vdat/libvdat/config.py: implement ``vdat_config copy`` command
    * vdat/utilities.py: returns the configuration directory
    * vdat/libvdat/callback.py: make the documentation happy

2015-09-10 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/database/__init__.py: add extra fields in preparation for issues #1048
          #1049 and #1053
    * vdat/gui/treeview_model.py: add context menu and handle clone and remove
          actions as per #1048, adapt the building of the tree view to account for
          this
    * vdat/libvdat/symlink.py: add ``is_clone`` entry to the shot_file and
          ignore cloned directories when re-symlinking
    * vdat/utilities.py(write_to_shot_file): possible to chose between write
          and append mode when writing
        * vdat/gui/background.py(Background): rename ``cls`` to ``self`` for
          consistency

2015-09-07 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add peewee dependency
    * vdat/libvdat/database.py: moved to vdat/database/__init__.py
    * vdat/database/__init__.py: implement the database table associated
          with the entries in the tree view
    * vdat/database/old_database.py: keep it for reference, it will be
      eventually removed
    * vdat/gui/treeview_model.py: populate the database
        * vdat/utilities.py: move here from libvdat/symlink.py the functions to
          read and write the shot files
    * vdat/libvdat/symlink.py: modify accordingly
    * vdat/libvdat/vdat.py: initialise the database

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

        * vdat/gui/queue.py(ModifyableListWidget.keyPressEvent): for keys other than
          the selected one, call the parent class implementation; no return
    * vdat/gui/gui.py: move the buttons setup to buttons_menu module
    * vdat/gui/buttons_menu.py: same, set buttons max size to 400
    * vdat/gui/fplane.py: the layout is an attribute, no need for a function
    * vdat/gui/treeview_model.py: set max width for the panel to 400

2015-09-03 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: save ticked directories into the configuration
    * vdat/libvdat/reduction.py: adapt to the new directory structure
    * vdat/libvdat/loggers.py: set up the cure task loggers
    * vdat/libvdat/cure_interface.py: move the logger setting up to loggers.py
    * vdat/vdat_config/vdat_setting.cfg: add cure task loggers options

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/background.py: moved into vdat/gui as it uses all qt stuff
    * vdat/gui/background.py(Background): make it a proper class, initialising
          the threads with a parent to get rid of qt warnings about objects not
          owned by anything
    * vdat/gui/background.py(get_background): create and/or return a Background
          instance; once created it returns always the same instance
    * vdat/gui/__init__.py: use get_background
    * vdat/gui/treeview_model.py: same

2015-08-31 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: PEP8
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/treeview_model.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/background.py: same
    * vdat/libvdat/show_fits.py: same
    * vdat/gui/ifu_widget.py: same, plus variable names fixed
    * vdat/gui/menu.py: PEP8, move the action for the queue and all connections
          to queue.py
    * vdat/gui/queue.py: implement here the queue action and connect the signals
          properly

2015-08-28 Daniel Farrow <dfarrow@mpe.mpg.de>

    * setup.py: Added ginga to requires
    * vdat/gui/__init__.py: set the QString and QVariant types for ginga compatibility
    * vdat/gui/ifu_viewer.py: Tells ginga to use pyqt4
    * vdat/libvdat/callback.py: import show_fits instead of create_thumbnails (bug 1037)
    * vdat/libvdat/show_fits.py: Checks if any files are found before creating thumbnail

2015-08-25 Francesco Montesano <montefra@mpe.mpg.de>

    * doc: ignore build directory
    * doc/codedoc/gui.rst: move the treeview model here
    * doc/codedoc/reduction.rst: remove the treeview model
    * doc/conf.py: set matplotlib backend to agg to avoid pyqt4/5 conflicts

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>
    * vdat/gui/ifu_viewer.py: A Ginja based panel that
                              displays a zoomable, pan-able
                              colourscale-able image of a FITs file,
                              with an added display for the header
    * vdat/gui/ifu_widget.py: Launches and IFUViewer on double-click

2015-08-25 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/fplane.py: Added yield all IFUs function,
                          added a flag that when set stops
                          looping over IFUs (to stop
                          jobs more cleanly)
    * vdat/gui/gui.py: Added import to flag above (for later)
    * vdat/gui/ifu_widget.py: Test to see if a thumbnail
                               image of IFU is corrupted, if yes
                               try to regenerate
    * vdat/gui/relay.py: Added parent argument ot initialisation
    * vdat/gui/treeview_model.py: Calls function to show postage
                                  stamps of FITs images when
                                  a directory is selected.
    * vdat/libvdat/background.py: Added a run_now function, and an
                                  extra thread for it. This is designed
                                  for important tasks to jump the queue.
    * vdat/libvdat/callback.py: Added a comment
    * vdat/libvdat/show_fits.py: New module which generates PNG images
                                 of the detector FITs files

2015-08-20 Daniel Farrow <dfarrow@mpe.mpg.de>

    * doc/command_line_tool.rst: Draft specifiation for command line tool
    * doc/index.rst: Added link to above
    * vdat/gui/fplane.py: Moved 'yield_selected_ifus' here, added select all and 
                          select none functions
    * vdat/gui/ifu_widget.py: Exists and selected are now properties
    * vdat/gui/menu.py: Add a selection menu with 'select all' and 'select none'
    * vdat/libvdat/reduction.py: Removed 'yield_selected_ifus' from here

2015-08-14 Daniel Farrow <dfarrow@mpe.mpg.de>

    * vdat/gui/__init__.py: Now sets the parent of the signal relay
    * vdat/gui/gui.py: Renamed MainWindow -> mainWindow as it's not a class
    * vdat/gui/menu.py: Sets up the new menu bar at the top of the GUI 
    * vdat/gui/queue.py: Queue window can be hidden and revealed from the new menu bar
    * vdat/gui/relay.py: Uses dictionaries to store signals

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/__init__.py: the main frame must be saved in a variable, even if
          it's not used, in the qt app to work properly

2015-08-13 Francesco Montesano <montefra@mpe.mpg.de>

        As now it's not possible to run more than one test running the gui at a
        time, as it crashes. This is very likely due to the fact that there are qt
        objects around without a parent, and this confuses the qtbot

    * setup.py: add pytest-qt dependency
    * tests/conftest.py: use matplotlib agg backend to avoid pyqt4/5 clashes.
          Add fixtures and move some common code away from test_symlink
    * tests/test_symlink.py: adapt to the above
    * tests/test_tree_view.py: test 93% of the tree view
    * vdat/gui/__init__.py: isolate the code making the main and queue window
          to allow setting up tests
    * vdat/libvdat/handlers.py: add parent widget in the handler
    * vdat/gui/gui.py: adapt to the above
    * vdat/gui/treeview_model.py: set the ReductionTreeviewModel as child of the
          ReductionQTreeView
    * vdat/libvdat/background.py: add a todo

2015-08-11 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/gui/treeview_model.py: moved to gui
    * vdat/libvdat/treeview_model.py: create the tree view from the redux
          directory structure, make only directory containing the fits file
          selectable, make calibration directories checkable to allow select
          specific calibrations during reduction.
    * vdat/gui/buttons_menu.py: add temporary button to test the tree view
          model. Will be removed once the other buttons will be reimplemented
    * vdat/gui/gui.py: move the creation of the tree view to the proper module;
          add the above button
        * vdat/libvdat/reduction.py: fixed bug with missing configuration section

2015-08-04 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * .: ignore coverage output files and directories
    * setup.py: convert to pytest
    * setup.cfg: same
    * vdat/libvdat/symlink.py: make rerun symlink more robust and write a file
          "SHOT_FILE" with all the relevant informations of the symlinked shot as a
          json
    * vdat/utilities.py: add json serialisation and de-serialisation of datetime
          instances
    * vdat/vdat_config/vdat_setting.cfg: add max_delta_zro option
    * vdat/gui/__init__.py: don't import symlink module
    * tests: add tests
    * tests/data/raw: add fits files for testing: zro, sci, flt, arc shots, 3
          IFUs and 3 exposures each
    * tests/conftest.py: add fixtures
    * tests/test_symlink.py: test the symlinking (edge cases still missing)

2015-07-30 Francesco Montesano <montefra@mpe.mpg.de>

        WARNING: this changes break the gui button functionalities

    * vdat/libvdat/symlink.py: almost completely rewritten; data symlinked at
          the shot level; calibration frames divided in subdirectories; flat and arc
          collected in the same 'cal' directory
    * vdat/libvdat/vdat.py: symlink done before calling the gui; multiprocessing
          set up
    * vdat/utilities.py: custom exceptions added
    * vdat/vdat_config/vdat_setting.cfg: add raw directory, add multiprocessing,
          add maximum time delta to use when grouping flat and arc frames
    * vdat/libvdat/loggers.py: set logger level to debug
    * vdat/gui/__init__.py: don't do the symlink here

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * vdat/libvdat/loggers.py: created moving code out of vdat.py and
          reorganizing it
    * vdat/libvdat/vdat.py: updated according to the above
    * vdat/vdat_config/vdat_setting.cfg: more logging configuration given

2015-07-27 Francesco Montesano <montefra@mpe.mpg.de>

    * setup.py: add six dependency
    * vdat/gui/__init__.py: PEP8
    * vdat/gui/buttons_menu.py: PEP8 and documentation fixes
    * vdat/gui/fplane.py: same
    * vdat/gui/gui.py: same
    * vdat/gui/ifu_widget.py: same
    * vdat/gui/relay.py: same
    * vdat/gui/queue.py: same, plus using self instead of parent class method
    * vdat/libvdat/background.py: same
    * vdat/libvdat/callback.py: same
    * vdat/libvdat/config.py: same
    * vdat/libvdat/cure_interface.py: same
    * vdat/libvdat/database.py: same
    * vdat/libvdat/fits.py: same
    * vdat/libvdat/handlers.py: same
    * vdat/libvdat/reduction.py: same
    * vdat/libvdat/symlink.py: same
    * vdat/libvdat/treeview_model.py: same
    * vdat/libvdat/vdat.py: same
    * vdat/utilities.py: same

2015-07-02 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/libvdat/reduction.py: Added routine for creating error files with photon
                                    noise, extracting the data region of the files
                                    and joining the amplifiers
       * vdat/vdat_config/vdat_setting.cfg: Added options for the new commands
       * vdat/gui/gui.py:     Added buttons for the new routines

2015-07-01 Daniel Farrow <dfarrow@mpe.mpg.de>
       * vdat/gui/gui.py: Switched from file browser to a custom model in the treeview widget. Currently
                          it just gives a hard-coded example of the new custom model's 
                          capabilities.
       * vdat/libvdat/treeview_model.py: Added a customisable model for the treeview widget to 
                                         use. It can show different reduction steps in a
                                         branching hierachy. 
                                         


2015-06-16 Daniel Farrow <dfarrow@mpe.mpg.de>
 
       * vdat/gui/__init__.py: Create a queue
       * vdat/gui/buttons_menu.py: Added comments
       * vdat/gui/fplane.py: Got rid of the unneccessary extra IFU type 
                             now there is just one type defined in 
                             ifu_widget
       * vdat/gui/gui.py: Added a button
       * vdat/gui/ifu_widget.py: Turned into a pyhetdex IFU type, added 
                                 methods to update the picture in the IFU
                                 to reflect whether the IFU has input files
                                 or not.
       * vdat/gui/queue.py: A queue window, which keeps track of the 
                            commands a user has requested and runs 
                            them when they reach the head of the queue. The
                            user can also delete these commands.
       * vdat/gui/static/unreduced.png: New image to differentiate
                                        between IFUs with and without input files
       * vdat/libvdat/background.py: Uses the queue
       * vdat/libvdat/callback.py: Uses the queue
       * vdat/libvdat/reduction.py: New function the subtract masterbias and overscan from files
       * vdat/libvdat/symlink.py: Tells the IFU object it exists if it finds FITs files from it

       Updated documentation and installation files:
       * doc/codedoc/gui.rst
       * doc/codedoc/reduction.rst
       * doc/index.rst
       * doc/queue.rst
       * requirements.txt
       * MANIFEST.in

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>

        * MANIFEST.in: Added fplane.txt file, so it is also installed!
        * doc/install.rst: Tweaked documentation
        * doc/launching.rst: As above
        * requirements.txt: Added command to install pyhetdex 
        * vdat/libvdat/vdat.py: Added check to see if config file exists

2015-06-12 Daniel Farrow <dfarrow@mpe.mpg.de>
 
        Added Sphinx documentation (under doc/), minor
        modifications to comments

        * AUTHORS
        * LICENSE
        * README.md: Added new dependencies
        * doc/: Added documentation here
        * vdat/gui/gui.py
        * vdat/libvdat/reduction.py



2015-06-11 Daniel Farrow <dfarrow@mpe.mpg.de>

        *  vdat/gui/buttons_menu.py: Fixed python3 compatibility by using String instead of QString
        *  vdat/gui/fplane.py: Added a custom IFU class with a variable indicating if the IFU is selected 
        *  vdat/gui/gui.py:    Added a create masterbias button
        *  vdat/gui/ifu_widget.py: Made the widget selectable, add blue frame when not selected
        *  vdat/libvdat/cure_interface.py: Now tells the worker to clear jobs, so the progress bar is refreshed 
        *  vdat/libvdat/reduction.py: Added create master bias function, subtract overscan now only works on selected IFUs
        *  vdat/libvdat/symlink.py 
        *  vdat/vdat_config/vdat_setting.cfg: Added a format statement specifying the VIRUS filename structure



2015-06-01 Daniel Farrow <dfarrow@mpe.mpg.de>
          
          Started using the multiprocessing tools
          from pyhetdex to run jobs in parallel. 
          Implemented a progress bar to check how
          far a job has gone. Moved logs to a 
          user specified log directory. A few improvements
          in commenting and other minor things.

         *  setup.py: Added APlpy to list of required Python modules
         *  vdat/gui/buttons_menu.py: Now supports displaying a tooltip
         *  vdat/gui/fplane.py: Improved comments
         *  vdat/gui/gui.py: Got rid of silly buttons like "Make Coffee"
         *  vdat/gui/relay.py: A module to send signals to the GUI (i.e. update progress bar etc)
         *  vdat/libvdat/background.py
         *  vdat/libvdat/cure_interface.py: Functions to wrap around CURE, runs in parallel
         *  vdat/libvdat/fits.py: Uses multiprocessing
         *  vdat/libvdat/handlers.py
         *  vdat/libvdat/reduction.py: Uses cure_interface
         *  vdat/libvdat/symlink.py: Tells the user when symlinking is done
         *  vdat/libvdat/vdat.py: Set up log directory
         *  vdat/vdat_config/vdat_setting.cfg: Added log directory and changed wildcards to conform 
                                               to pyhetdex:r74
           


2015-05-29 Francesco Montesano <montefra@mpe.mpg.de>

          * vdat/libvdat/symlink.py: update ``scan_dirs`` after pyhetdex:r74. PEP8
                and numpydoc compliant

2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

       A few minor modifications to style based on
       Francesco's comments. Added a subtract overscan
       routine. Switched to using file names rather
       than a database when running commands. Added
       a module to make it easier for the code
       to signal the GUI.


       * vdat/gui/buttons_menu.py
       * vdat/gui/fplane.py
       * vdat/gui/gui.py
       * vdat/gui/ifu_widget.py
       * vdat/gui/relay.py: Module to relay signals to the GUI
       * vdat/libvdat/background.py
       * vdat/libvdat/callback.py
       * vdat/libvdat/database.py
       * vdat/libvdat/fits.py
       * vdat/libvdat/handlers.py
       * vdat/libvdat/reduction.py: Added function to subtract overscans
       * vdat/libvdat/symlink.py: Tells GUI to update file browser panel when symlink done
       * vdat/vdat_config/vdat_setting.cfg: Added some wildcards to find files


2015-05-21 Daniel Farrow <dfarrow@mpe.mpg.de>

     Added an internal sqlite3 database to keep track
     of what files are available. Created a background
     thread with which to run things so they don't lock
     up the GUI when they're running. Implemented
     a simple code which loops through all fits files
     and converts them to PNGs. 

     * vdat/gui/__init__.py: Moved call to symlink to here
     * vdat/gui/gui.py:    Added a (currently disabled) progress bar
     * vdat/libvdat/background.py: run jobs in a separate thread
     * vdat/libvdat/callback.py: Added calls to Background
     * vdat/libvdat/database.py: Internal database to keep track of files
     * vdat/libvdat/fits.py:   Implements a simple fits -> PNG conversion
     * vdat/libvdat/handlers.py: Now uses signals to interface with GUI to be thread safe
     * vdat/libvdat/symlink.py: Can read rawdir from config file
     * vdat/libvdat/vdat.py:  Moved symlink from here.


2015-05-18 Daniel Farrow <dfarrow@mpe.mpg.de>
     
        Switched to using PyQt4 and fixed python 2.7
        compatibility. Added symlink function as 
        described by issue #821 

      * vdat/gui/__init__.py:   ... switched to PyQt4
      * vdat/gui/buttons_menu.py:  PyQt4
      * vdat/gui/fplane.py:  PyQt4 
      * vdat/gui/gui.py: PyQt4
      * vdat/gui/ifu_widget.py: PyQt4
      * vdat/libvdat/callback.py: Function factory to return functions to connect to
        button clicks. Currently just returns a function that prints "Not implemented"
      * vdat/libvdat/config.py: Read options to do with logging
      * vdat/libvdat/handlers.py: PyQt4
      * vdat/libvdat/symlink.py: symlinks files from raw to redux directory (issue 821)
      * vdat/libvdat/vdat.py: Sets up logging, switched to PyQt4
      * vdat/vdat_config/vdat_setting.cfg: Added options to do with logging


2015-05-14 Daniel Farrow <dfarrow@mpe.mpg.de>

        Added a new handler for the logger which 
        prints colour-coded messaged to the text
        panel of the VDAT GUI

        * libvdat/handler.py: Created a new Handler for logging
        * gui/gui.py:  Attached the QTextEdit panel to the Handler
        * gui/__init__: Prints a welcome message using the new logger


2015-05-05  Daniel Farrow <dfarrow@mpe.mpg.de>
 
        * setup.py: Modified to point to vdat.py:main()
        * libvdat/__init__.py: added (empty file)
        * libvdat/vdat.py: added, reads in config file, starts GUI
        * vdat_config/vdat_settings.cfg: added
        * vdat_config/fplane.txt: added
        * gui/fplane.py:  Reads in fplane.txt and displays it
        * gui/ifu_widget.py: Added. Derives QLabel, shows the IFU 
        * gui/ifu_widget.py: Includes a custom handler for resize events
        * gui/resources/empty.png: Copied from Quicklook
        * MANINFEST.in: Read by pip to tell it to install the empty.png file

2015-05-04  Francesco Montesano  <montefra@mpe.mpg.de>

        * gui: moved to vdat/gui
        * README.md: some basic installation info added
        * setup.py: install vdat package and create ``vdat`` executable
        * setup.cfg: setup configuration
        * vdat/__init__.py: version number
        * vdat/gui/buttons_menu.py: absolute import, some PEP8
        * vdat/gui/fplane.py: absolute import, some PEP8
        * vdat/gui/gui.py: absolute import, some PEP8
        * vdat/gui/__init__.py: same, isolate main function
        * svn:ignore: egg dir added