ChangelogΒΆ

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