Change log
==========

The releases are numbered according to the `Semantic Versioning Specification
<http://semver.org>`_.

v0.11.1_ (2014-5-21) -- Updates:

   - Fixed the release to PyPI.

v0.11.0_ (2014-5-21) -- Updates:

   - Added IPython notebooks (`tutorial
     <http://nbviewer.ipython.org/github/kdavies4/ModelicaRes/blob/release/examples/tutorial.ipynb>`_
     and
     `advanced <http://nbviewer.ipython.org/github/kdavies4/ModelicaRes/blob/release/examples/advanced.ipynb>`_).
   - Decoupled the Dymola-specific algorithms and placed them in a submodule.
     ModelicaRes is now independent with respect to the simulation tool.
   - New classes :class:`~modelicares.simres.SimResList` and
     :class:`~modelicares.linres.LinResList` to manage, sort, and plot multiple
     simulation and linearization results (based on the old
     :mod:`~modelicares.multi` submodule).
   - Now supports Python 3.
   - Now supports format version 1.0 Dymola/OpenModelica files (previously only
     1.1).
   - Improved the speed of loading files and retrieving data.
   - Improved test coverage, with continuous integration testing (thanks to
     `Travis CI <https://travis-ci.org/>`_).
   - Improved installation setup and instructions.
   - Added a simpler, more powerful API for accessing data attributes; removed
     the *get_* methods of :class:`~modelicares.simres.SimRes`.
   - Added time-based indexing to :class:`~modelicares.simres.SimRes.arrays`,
     :class:`~modelicares.simres.SimRes.time`, and
     :class:`~modelicares.simres.SimRes.values`; accepts time, list of times, or
     slice of time.
   - Added :meth:`~modelicares.simres.SimRes.to_pandas` to return a
     `pandas DataFrame`_ of selected data.
   - Added *f1* and *f2* arguments to plot additional expressions using
     :meth:`~modelicares.simres.SimRes.plot`.
   - Plotting examples are now included as scripts in the *examples* folder.
     Only the plots are show in the documentation, with links to the source
     files.
   - :class:`~modelicares.simres.SimRes` and :class:`~modelicares.linres.LinRes`
     now require the file extension to load files.
   - Added :meth:`~modelicares.simres.SimRes.n_constants` to return the number
     of constants in a simulation.
   - wx is now optional---only required for variable browser.
   - Added option to :class:`~modelicares.simres.SimRes.names` to list only the
     constants.
   - Added :mod:`~modelicares.util.si_prefix` (previously nested in
     :mod:`~modelicares.texunit`)
   - The *fname* atribute in :class:`~modelicares.simres.SimRes` and
     :class:`~modelicares.linres.LinRes` now includes the absolute path.
     :meth:`~modelicares.simres.SimRes.fbase` returns the base filename without
     directory or extension.
   - Added :meth:`~modelicares.linres.LinRes.to_tf` to return a selected
     transfer function from the state-space representation.
   - Added pattern matching to :meth:`~modelicares.simres.SimRes.nametree`.
   - Proper handling of unicode in simulation files.
   - Eliminated the dependence on :mod:`easygui`; using :mod:`PySide` (Qt)
     instead.
   - Renamed :mod:`~modelicares.base` to :mod:`~modelicares.util` for clarity.
     It is a package of utility functions and classes, not base classes.
   - Renamed internal submodules with leading underscore to denote that they
     are not meant for external use.
   - Renamed :meth:`~modelicares.texunit.label_number` to
     :meth:`~modelicares.texunit.label_number` and
     :meth:`~modelicares.texunit.label_quantity` to
     :meth:`~modelicares.texunit.quantity_str`.
   - Merged :meth:`~modelicares.exps.modelica_array` and
     :meth:`~modelicares.exps.modelica_boolean` into a new function,
     :meth:`~modelicares.exps.modelica_str`.
   - Removed :class:`~modelicares.util.Quantity` and
     :meth:`~modelicares.util.convert` from :mod:`~modelicares.util`.
   - Removed :meth:`~modelicares.simres.merge_times`.  It is not used internally
     and probably is not very helpful externally.
   - Removed :meth:`~modelicares.util.animate`.  matplotlib_ now has built-in
     methods for this; see http://matplotlib.org/api/animation_api.html.

v0.10.0_ (2014-4-30) -- Updates:

   - Added :meth:`~modelicares.simres.SimRes.get_tuple` to get time, value
     tuples for variables.
   - Removed the *external/control* folder.  Instead, using PyPI/distutils to
     install the `control package <https://pypi.python.org/pypi/control>`_.
   - Added functions to calculate the minimum, maximum, and mean of variables
     (:meth:`~modelicares.simres.SimRes.get_min`,
     :meth:`~modelicares.simres.SimRes.get_max`, and
     :meth:`~modelicares.simres.SimRes.get_mean`).
   - Removed :meth:`~modelicares.simres.SimRes.variables`,
     :meth:`~modelicares.simres.SimRes.variables`, and
     :meth:`~modelicares.simres.SimRes.glob` from
     :meth:`~modelicares.simres.SimRes`.  Use
     :meth:`~modelicares.simres.SimRes.names` instead.
   - Merged the pattern-matching functionality of
     :meth:`~modelicares.simres.SimRes.glob` into
     :meth:`~modelicares.simres.SimRes.names` and added the option to use
     regular expressions.  By default, :meth:`~modelicares.simres.SimRes.names`
     still returns all variable names.

v0.9.0_ (2014-3-17) -- Updates:

   - Improved support for `IPython <http://ipython.org/>`_.
   - Added dependence on `easygui <http://easygui.sourceforge.net/>`_.
   - Removed spaces in fahrenheit and celsius.
   - Improved :meth:`~modelicares.exps.write_params` and
     :meth:`~modelicares.exps.read_params`:

        1. More flexible with respect to whitespace
        2. Now accepts square brackets in parameter name

   - Changed MATLAB® file string encoding to 'latin-1' per
     `arnoutaertgeerts <https://github.com/arnoutaertgeerts>`_.
   - Updated links to `PySimulator <https://github.com/PySimulator/PySimulator>`_
     per `tbeu <https://github.com/tbeu>`_.
   - Updated the credits.
   - Added *doc/_images* per tbeu_.
   - Narrowed the margins in HTML documentation.
   - Explained setup in the :mod:`loadres` example.
   - Updated expected example output.
   - Updated *matplotlibrc*.

v0.8.2_ (2013-10-16) -- Updates:

   - Fixed installation issues (:mod:`setup.py`).

v0.8.1_ (2013-8-6) -- Updates:

   - Added missing :mod:`bin/loadres` script.

v0.8.0_ (2013-8-6) -- Updates:

   - Updated :doc:`matplotlibrc` (default formatting).
   - Added patterns to :meth:`~modelicares.exps.write_params` to match more
     entries in a dsin file.
   - :meth:`~modelicares.exps.write_script` now clears the log between runs.
   - Fixed bug so that :meth:`~modelicares.simres.SimRes.plot` keeps the axis
     labels blank when *xlabel* = "", *ylabel1* = "", or *ylabel2* = "".
   - :meth:`~modelicares.texunit.label_number` now uses "in" instead of "/" to
     denote a quantity in a unit that involves a function other than simple
     scaling (e.g., degC, dB).
   - :meth:`~modelicares.texunit.unit2tex` now automatically formats some units
     and constants.
   - Added *color* option to :meth:`~modelicares.multi.multiplot`.
   - Added :meth:`~modelicares.simres.SimRes.variables` method to list variable
     names (same as :meth:`~modelicares.simres.SimRes.keys` and
     :meth:`~modelicares.simres.SimRes.names`).
   - Added :meth:`~modelicares.simres.SimRes.glob` to return variables that
     match a pattern.
   - Removed the :mod:`simres.info` submodule.  It is better to use the methods
     of :class:`~modelicares.simres.SimRes` directly.

v0.7.2_ (2013-7-9) -- Updates:

   - When a variable cannot be found, suggestions are now given.  See the
     example in :meth:`~modelicares.simres.SimRes.get_values`.
   - :meth:`~modelicares.exps.write_script` now allows initialization scripts.
   - Added warning message in :meth:`~modelicares.simres.SimRes.plot` if y-axis
     variable descriptions are different.
   - :meth:`~modelicares.exps.write_script` now writes scripts that are more
     readable.

v0.7.1_ (2013-7-7) -- Updates:

   - Added missing files to :doc:`MANIFEST`.

v0.7.0_ (2013-7-7) -- Updates:

   - Added :meth:`~modelicares.multi.multibode` and
     :meth:`~modelicares.multi.multinyquist` to create Bode and Nyquist diagrams
     of multiple linearizations.
   - Fixed and improved specification of axes in
     :meth:`~modelicares.linres.LinRes.bode` and
     :meth:`~modelicares.linres.LinRes.nyquist`.  The argument *ax* argument to
     :meth:`~modelicares.linres.LinRes.bode` is now *axes* instead---a tuple
     (pair) of axes.
   - Fixed error with chosen directory in :meth:`~modelicares.base.save`
   - Added function to generate one-factor-at-a-time experiments.  The old
     *permute* argument to :meth:`~modelicares.exps.gen_experiments` is now
     generalized to *design*, as in design of experiments.  Now, assign a
     function from :mod:`~modelicares.exps.doe` to that argument.
   - Square axes are now the default for Nyquist plots.

v0.6.2_ (2013-7-4) -- Updates:

   - Updated `python-control <http://sourceforge.net/apps/mediawiki/python-control>`_
     to 0.6c.  The *mark* argument has been removed from
     :meth:`~modelicares.linres.LinRes.nyquist`.  Use *labelFreq* to label every
     *labelFreq* th frequency.  The *w_min* and *w_max* arguments have been
     removed from :meth:`~modelicares.linres.LinRes.bode` and
     :meth:`~modelicares.linres.LinRes.nyquist`.  Instead, use *omega* with
     bounds or a list of frequencies.
   - :meth:`~modelicares.exps.write_script` now saves the Dymola command log
     with translation information.
   - Fixed error in :mod:`loadres` script in loading from a folder.
   - Added option to :class:`~modelicares.simres.SimRes` (*constants_only*) to
     load only constants.
   - Added :meth:`~modelicares.simres.SimRes.keys` method to list variable names
     (same as :meth:`~modelicares.simres.SimRes.names`).
   - Added methods from :class:`~modelicares.simres.Info` to :mod:`simres.info`
     submodule.

v0.6.1_ (2013-7-2) -- Updates:

   - Fixed :doc:`README.txt`.

v0.6.0_ (2013-7-2) -- Updates:

   - Added :meth:`~modelicares.base.save` to save the current figure.
   - Added *use_paren* option to :meth:`~modelicares.simres.SimRes.plot`.
   - Changed :meth:`~modelicares.exps.write_script` to put results in folders
     instead of special renaming scheme.
   - Improved organization of the *examples* folder.

v0.5.2_ (2013-6-30) -- Updates:

   - Fixed error so that by default
     :meth:`~modelicares.simres.SimRes.get_values` and
     :meth:`~modelicares.simres.SimRes.get_times` include the final value and
     time.
   - Added function to scale time.

v0.5.1_ (2013-6-18) -- Updates:

   - Fixed errors in :meth:`~modelicares.base.load_csv`.

v0.5_ (2013-6-5) -- Updates:

   - Updated :doc:`README.txt`.

v0.4_ (2012-12-10) -- Updates:

   - Added default of *label* = '' to :meth:`~modelicares.base.figure`.
   - Updated documentation for Windows.
   - Added check for Python version (currently requires 2.7).

v0.3_ (2012-12-4) -- Updates:

   - Added support for Windows.  :mod:`~modelicares.aux` is now
     :mod:`~modelicares.base`.

v0.2_ (2012-11-20) -- Updates:

   - Fixed bug when file or folder selection is canceled.
   - Updated documentation.

v0.1_ (2012-11-8) -- Initial release


.. _v0.11.0: https://github.com/kdavies4/ModelicaRes/archive/v0.11.0.zip
.. _v0.10.0: https://github.com/kdavies4/ModelicaRes/archive/v0.10.0.zip
.. _v0.9.0: https://github.com/kdavies4/ModelicaRes/archive/v0.9.0.zip
.. _v0.8.2: https://github.com/kdavies4/ModelicaRes/archive/v0.8.2.zip
.. _v0.8.1: https://github.com/kdavies4/ModelicaRes/archive/v0.8.1.zip
.. _v0.8.0: https://github.com/kdavies4/ModelicaRes/archive/v0.8.0.zip
.. _v0.7.2: https://github.com/kdavies4/ModelicaRes/archive/v0.7.2.zip
.. _v0.7.1: https://github.com/kdavies4/ModelicaRes/archive/v0.7.1.zip
.. _v0.7.0: https://github.com/kdavies4/ModelicaRes/archive/v0.7.0.zip
.. _v0.6.2: https://github.com/kdavies4/ModelicaRes/archive/v0.6.2.zip
.. _v0.6.1: https://github.com/kdavies4/ModelicaRes/archive/v0.6.1.zip
.. _v0.6.0: https://github.com/kdavies4/ModelicaRes/archive/v0.6.0.zip
.. _v0.5.2: https://github.com/kdavies4/ModelicaRes/archive/v0.5.2.zip
.. _v0.5.1: https://github.com/kdavies4/ModelicaRes/archive/v0.5.1.zip
.. _v0.5: https://github.com/kdavies4/ModelicaRes/archive/v0.5.zip
.. _v0.4: https://github.com/kdavies4/ModelicaRes/archive/v0.4.zip
.. _v0.3: https://github.com/kdavies4/ModelicaRes/archive/v0.3.zip
.. _v0.2: https://github.com/kdavies4/ModelicaRes/archive/v0.2.zip
.. _v0.1: https://github.com/kdavies4/ModelicaRes/archive/v0.1.zip

.. _matplotlib: http://matplotlib.org/
.. _Pandas DataFrame: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html?highlight=dataframe#pandas.DataFrame
