"""This module contains all of the important meta-information for
Hypatia such as the author's name, the copyright and license, status,
and so on.

"""

__author__     = "Lillian Lemmer"
__copyright__  = "Copyright 2015 Lillian Lemmer"
__credits__    = ["Lillian Lemmer"]
__license__    = "MIT"
__maintainer__ = __author__
__site__       = "http://lillian-lemmer.github.io/hypatia/"
__email__      = "lillian.lynn.lemmer@gmail.com"
__status__     = "Development"
__version__    = "0.2.8"

__contributors__ = [
    "Lillian Lemmer",
    "Brian Houston Morrow",
    "Eric James Michael Ritz"
]

"""This module contains all of the important meta-information for
Hypatia such as the author's name, the copyright and license, status,
and so on.

"""

__author__     = "Lillian Lemmer"
__copyright__  = "Copyright 2015 Lillian Lemmer"
__credits__    = ["Lillian Lemmer"]
__license__    = "MIT"
__maintainer__ = __author__
__site__       = "http://lillian-lemmer.github.io/hypatia/"
__email__      = "lillian.lynn.lemmer@gmail.com"
__status__     = "Development"



class Version:
    """A represntation of Hypatia's current version.

    This class contains integer fields for the major, minor, and patch
    version numbers, respectively.  This is useful for comparison
    within code if it becomes necessary to have code behave
    differently based on the version, e.g. for backwards
    compatibility.  The class also supports str() which converts an
    instance into a human-readable string, e.g. '0.2.8'.

    Public Properties:

    * major
    * minor
    * patch

    """
    def __init__(self, major, minor, patch):
        self.major = major
        self.minor = minor
        self.patch = patch

    def __str__(self):
        return "%d.%d.%d" % (self.major, self.minor, self.patch)


# str(__version__) will produce a string like "0.2.8"
__version__ = Version(0, 2, 8)



__contributors__ = [
    "Lillian Lemmer",
    "Brian Houston Morrow",
    "Eric James Michael Ritz"
]

Add a class for representing the current version
[Feature] Add a class for representing the current version

This patch implements the `Version` class inside of the `__init__.py`
file alongside the rest of Hypatia's meta-data.  The class has public
integer properties representing the major, minor, and patch portions
of the version number.  This makes it possible for other code in the
engine to support or deprecate features based on the version by
comparing their numeric values, e.g.

    if Version.major < 3:
        # Report some error about a deprecated feature.

The `Version` class also implements `__str__()` so that it is possible
to convert `__version__` into a string, e.g. for `print()`, for the
purpose of output, e.g.

    print(__version__)    # "0.2.8"

Signed-off-by: Eric James Michael Ritz <3d928645612786af07f011fdfbce45f81efe5a40@plutono.com>
