[Python-modules-commits] [python-colour] 01/04: New upstream version 0.1.5

Antoine Beaupré anarcat at moszumanska.debian.org
Sat Dec 30 16:21:47 UTC 2017


This is an automated email from the git hooks/post-receive script.

anarcat pushed a commit to branch master
in repository python-colour.

commit ca7e1abc7e7106dbdaf316577b2661296baa9719
Author: Antoine Beaupré <anarcat at debian.org>
Date:   Sat Dec 30 11:09:31 2017 -0500

    New upstream version 0.1.5
---
 CHANGELOG.rst                        |  106 ++++
 LICENSE                              |   23 +
 MANIFEST.in                          |    1 +
 PKG-INFO                             |  626 +++++++++++++++++++
 README.rst                           |  492 +++++++++++++++
 TODO.rst                             |    7 +
 colour.egg-info/PKG-INFO             |  626 +++++++++++++++++++
 colour.egg-info/SOURCES.txt          |   14 +
 colour.egg-info/dependency_links.txt |    1 +
 colour.egg-info/not-zip-safe         |    1 +
 colour.egg-info/requires.txt         |    3 +
 colour.egg-info/top_level.txt        |    1 +
 colour.py                            | 1124 ++++++++++++++++++++++++++++++++++
 setup.cfg                            |   57 ++
 setup.py                             |   65 ++
 15 files changed, 3147 insertions(+)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
new file mode 100644
index 0000000..bbb9efd
--- /dev/null
+++ b/CHANGELOG.rst
@@ -0,0 +1,106 @@
+Changelog
+=========
+
+
+0.1.4 (2017-04-19)
+------------------
+
+Fix
+~~~
+- ``rgb2hsl`` would produce invalid hsl triplet when red, blue, green
+  component would be all very close to ``1.0``. (fixes #30) [Valentin
+  Lab]
+
+  Typically, saturation would shoot out of range 0.0..1.0. That could then
+  lead to exceptions being casts afterwards when trying to reconvert this
+  HSL triplet to RGB values.
+
+
+0.1.3 (2017-04-08)
+------------------
+
+Fix
+~~~
+- Unexpected behavior with ``!=`` operator. (fixes #26) [Valentin Lab]
+- Added mention of the ``hex_l`` property. (fixes #27) [Valentin Lab]
+
+
+0.1.2 (2015-09-15)
+------------------
+
+Fix
+~~~
+- Support for corner case 1-wide ``range_to`` color scale. (fixes #18)
+  [Valentin Lab]
+
+
+0.1.1 (2015-03-29)
+------------------
+
+Fix
+~~~
+- Avoid casting an exception when comparing to non-``Colour`` instances.
+  (fixes #14) [Riziq Sayegh]
+
+
+0.0.6 (2014-11-18)
+------------------
+
+New
+~~~
+- Provide all missing *2* function by combination with other existing
+  ones (fixes #13). [Valentin Lab]
+- Provide full access to any color name in HSL, RGB, HEX convenience
+  instances. [Valentin Lab]
+
+  Now you can call ``colour.HSL.cyan``, or ``colour.HEX.red`` for a direct encoding of
+  ``human`` colour labels to the 3 representations.
+
+
+0.0.5 (2013-09-16)
+------------------
+
+New
+~~~
+- Color names are case insensitive. [Chris Priest]
+
+  The color-name structure have their names capitalized. And color names
+  that are made of only one word will be displayed lowercased.
+
+Fix
+~~~
+- Now using W3C color recommandation. [Chris Priest]
+
+  Was using X11 color scheme before, which is slightly different from
+  W3C web color specifications.
+- Inconsistency in licence information (removed GPL mention). (fixes #8)
+  [Valentin Lab]
+- Removed ``gitchangelog`` from ``setup.py`` require list. (fixes #9)
+  [Valentin Lab]
+
+
+0.0.4 (2013-06-21)
+------------------
+
+New
+~~~
+- Added ``make_color_factory`` to customize some common color
+  attributes. [Valentin Lab]
+- Pick color to identify any python object (fixes #6) [Jonathan Ballet]
+- Equality support between colors, customizable if needed. (fixes #3)
+  [Valentin Lab]
+
+
+0.0.3 (2013-06-19)
+------------------
+
+New
+~~~
+- Colour is now compatible with python3. [Ryan Leckey]
+
+
+0.0.1 (2012-06-11)
+------------------
+- First import. [Valentin Lab]
+
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c4ed93b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2012-2017, Valentin Lab
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..c74cefe
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1 @@
+include *.rst LICENSE
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..5791755
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,626 @@
+Metadata-Version: 1.1
+Name: colour
+Version: 0.1.5
+Summary: converts and manipulates various color representation (HSL, RVB, web, X11, ...)
+Home-page: http://github.com/vaab/colour
+Author: Valentin LAB
+Author-email: valentin.lab at kalysto.org
+License: BSD 3-Clause License
+Description: ======
+        Colour
+        ======
+        
+        .. image:: http://img.shields.io/pypi/v/colour.svg?style=flat
+           :target: https://pypi.python.org/pypi/colour/
+           :alt: Latest PyPI version
+        
+        .. image:: https://img.shields.io/pypi/l/gitchangelog.svg?style=flat
+           :target: https://github.com/vaab/gitchangelog/blob/master/LICENSE
+           :alt: License
+        
+        .. image:: https://img.shields.io/pypi/pyversions/gitchangelog.svg?style=flat
+           :target: https://pypi.python.org/pypi/gitchangelog/
+           :alt: Compatible python versions
+        
+        .. image:: http://img.shields.io/pypi/dm/colour.svg?style=flat
+           :target: https://pypi.python.org/pypi/colour/
+           :alt: Number of PyPI downloads
+        
+        .. image:: http://img.shields.io/travis/vaab/colour/master.svg?style=flat
+           :target: https://travis-ci.org/vaab/colour/
+           :alt: Travis CI build status
+        
+        .. image:: https://img.shields.io/appveyor/ci/vaab/colour.svg
+           :target: https://ci.appveyor.com/project/vaab/colour/branch/master
+           :alt: Appveyor CI build status
+        
+        .. image:: http://img.shields.io/codecov/c/github/vaab/colour.svg?style=flat
+           :target: https://codecov.io/gh/vaab/colour/
+           :alt: Test coverage
+        
+        
+        Converts and manipulates common color representation (RGB, HSL, web, ...)
+        
+        
+        Feature
+        =======
+        
+        - Damn simple and pythonic way to manipulate color representation (see
+          examples below)
+        
+        - Full conversion between RGB, HSL, 6-digit hex, 3-digit hex, human color
+        
+        - One object (``Color``) or bunch of single purpose function (``rgb2hex``,
+          ``hsl2rgb`` ...)
+        
+        - ``web`` format that use the smallest representation between
+          6-digit (e.g. ``#fa3b2c``), 3-digit (e.g. ``#fbb``), fully spelled
+          color (e.g. ``white``), following `W3C color naming`_ for compatible
+          CSS or HTML color specifications.
+        
+        - smooth intuitive color scale generation choosing N color gradients.
+        
+        - can pick colors for you to identify objects of your application.
+        
+        
+        .. _W3C color naming: http://www.w3.org/TR/css3-color/#svg-color
+        
+        
+        Installation
+        ============
+        
+        You don't need to download the GIT version of the code as ``colour`` is
+        available on the PyPI. So you should be able to run::
+        
+            pip install colour
+        
+        If you have downloaded the GIT sources, then you could add the ``colour.py``
+        directly to one of your ``site-packages`` (thanks to a symlink). Or install
+        the current version via traditional::
+        
+            python setup.py install
+        
+        And if you don't have the GIT sources but would like to get the latest
+        master or branch from github, you could also::
+        
+            pip install git+https://github.com/vaab/colour
+        
+        Or even select a specific revision (branch/tag/commit)::
+        
+            pip install git+https://github.com/vaab/colour@master
+        
+        
+        Usage
+        =====
+        
+        To get complete demo of each function, please read the source code which is
+        heavily documented and provide a lot of examples in doctest format.
+        
+        Here is a reduced sample of a common usage scenario:
+        
+        
+        Instantiation
+        -------------
+        
+        Let's create blue color::
+        
+            >>> from colour import Color
+            >>> c = Color("blue")
+            >>> c
+            <Color blue>
+        
+        Please note that all of these are equivalent examples to create the red color::
+        
+            Color("red")           ## human, web compatible representation
+            Color(red=1)           ## default amount of blue and green is 0.0
+            Color("blue", hue=0)   ## hue of blue is 0.66, hue of red is 0.0
+            Color("#f00")          ## standard 3 hex digit web compatible representation
+            Color("#ff0000")       ## standard 6 hex digit web compatible representation
+            Color(hue=0, saturation=1, luminance=0.5)
+            Color(hsl=(0, 1, 0.5)) ## full 3-uple HSL specification
+            Color(rgb=(1, 0, 0))   ## full 3-uple RGB specification
+            Color(Color("red"))    ## recursion doesn't break object
+        
+        
+        Reading values
+        --------------
+        
+        Several representations are accessible::
+        
+            >>> c.hex
+            '#00f'
+            >>> c.hsl  # doctest: +ELLIPSIS
+            (0.66..., 1.0, 0.5)
+            >>> c.rgb
+            (0.0, 0.0, 1.0)
+        
+        And their different parts are also independently accessible, as the different
+        amount of red, blue, green, in the RGB format::
+        
+            >>> c.red
+            0.0
+            >>> c.blue
+            1.0
+            >>> c.green
+            0.0
+        
+        Or the hue, saturation and luminance of the HSL representation::
+        
+            >>> c.hue  # doctest: +ELLIPSIS
+            0.66...
+            >>> c.saturation
+            1.0
+            >>> c.luminance
+            0.5
+        
+        A note on the ``.hex`` property, it'll return the smallest valid value
+        when possible. If you are only interested by the long value, use
+        ``.hex_l``::
+        
+            >>> c.hex_l
+            '#0000ff'
+        
+        
+        Modifying color objects
+        -----------------------
+        
+        All of these properties are read/write, so let's add some red to this color::
+        
+            >>> c.red = 1
+            >>> c
+            <Color magenta>
+        
+        We might want to de-saturate this color::
+        
+            >>> c.saturation = 0.5
+            >>> c
+            <Color #bf40bf>
+        
+        And of course, the string conversion will give the web representation which is
+        human, or 3-digit, or 6-digit hex representation depending which is usable::
+        
+            >>> "%s" % c
+            '#bf40bf'
+        
+            >>> c.luminance = 1
+            >>> "%s" % c
+            'white'
+        
+        
+        Ranges of colors
+        ----------------
+        
+        You can get some color scale of variation between two ``Color`` objects quite
+        easily. Here, is the color scale of the rainbow between red and blue::
+        
+            >>> red = Color("red")
+            >>> blue = Color("blue")
+            >>> list(red.range_to(blue, 5))
+            [<Color red>, <Color yellow>, <Color lime>, <Color cyan>, <Color blue>]
+        
+        Or the different amount of gray between black and white::
+        
+            >>> black = Color("black")
+            >>> white = Color("white")
+            >>> list(black.range_to(white, 6))
+            [<Color black>, <Color #333>, <Color #666>, <Color #999>, <Color #ccc>, <Color white>]
+        
+        
+        If you have to create graphical representation with color scale
+        between red and green ('lime' color is full green)::
+        
+            >>> lime = Color("lime")
+            >>> list(red.range_to(lime, 5))
+            [<Color red>, <Color #ff7f00>, <Color yellow>, <Color chartreuse>, <Color lime>]
+        
+        Notice how naturally, the yellow is displayed in human format and in
+        the middle of the scale. And that the quite unusual (but compatible)
+        'chartreuse' color specification has been used in place of the
+        hexadecimal representation.
+        
+        
+        Color comparison
+        ----------------
+        
+        Sane default
+        ~~~~~~~~~~~~
+        
+        Color comparison is a vast subject. However, it might seem quite straightforward for
+        you. ``Colour`` uses a configurable default way of comparing color that might suit
+        your needs::
+        
+            >>> Color("red") == Color("#f00") == Color("blue", hue=0)
+            True
+        
+        The default comparison algorithm focuses only on the "web" representation which is
+        equivalent to comparing the long hex representation (e.g. #FF0000) or to be more
+        specific, it is equivalent to compare the amount of red, green, and blue composition
+        of the RGB representation, each of these value being quantized to a 256 value scale.
+        
+        This default comparison is a practical and convenient way to measure the actual
+        color equivalence on your screen, or in your video card memory.
+        
+        But this comparison wouldn't make the difference between a black red, and a
+        black blue, which both are black::
+        
+           >>> black_red = Color("red", luminance=0)
+           >>> black_blue = Color("blue", luminance=0)
+        
+           >>> black_red == black_blue
+           True
+        
+        
+        Customization
+        ~~~~~~~~~~~~~
+        
+        But, this is not the sole way to compare two colors. As I'm quite lazy, I'm providing
+        you a way to customize it to your needs. Thus::
+        
+           >>> from colour import RGB_equivalence, HSL_equivalence
+           >>> black_red = Color("red", luminance=0, equality=HSL_equivalence)
+           >>> black_blue = Color("blue", luminance=0, equality=HSL_equivalence)
+        
+           >>> black_red == black_blue
+           False
+        
+        As you might have already guessed, the sane default is ``RGB_equivalence``, so::
+        
+           >>> black_red = Color("red", luminance=0, equality=RGB_equivalence)
+           >>> black_blue = Color("blue", luminance=0, equality=RGB_equivalence)
+        
+           >>> black_red == black_blue
+           True
+        
+        Here's how you could implement your unique comparison function::
+        
+           >>> saturation_equivalence = lambda c1, c2: c1.saturation == c2.saturation
+           >>> red = Color("red", equality=saturation_equivalence)
+           >>> blue = Color("blue", equality=saturation_equivalence)
+           >>> white = Color("white", equality=saturation_equivalence)
+        
+           >>> red == blue
+           True
+           >>> white == red
+           False
+        
+        Note: When comparing 2 colors, *only* the equality function *of the first
+        color will be used*. Thus::
+        
+           >>> black_red = Color("red", luminance=0, equality=RGB_equivalence)
+           >>> black_blue = Color("blue", luminance=0, equality=HSL_equivalence)
+        
+           >>> black_red == black_blue
+           True
+        
+        But reverse operation is not equivalent !::
+        
+           >>> black_blue == black_red
+           False
+        
+        
+        Equality to non-Colour objects
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+        
+        As a side note, whatever your custom equality function is, it won't be
+        used if you compare to anything else than a ``Colour`` instance::
+        
+            >>> red = Color("red", equality=lambda c1, c2: True)
+            >>> blue = Color("blue", equality=lambda c1, c2: True)
+        
+        Note that these instances would compare as equal to any other color::
+        
+            >>> red == blue
+            True
+        
+        But on another non-Colour object::
+        
+            >>> red == None
+            False
+            >>> red != None
+            True
+        
+        Actually, ``Colour`` instances will, politely enough, leave
+        the other side of the equality have a chance to decide of the output,
+        (by executing its own ``__eq__``), so::
+        
+            >>> class OtherColorImplem(object):
+            ...     def __init__(self, color):
+            ...         self.color = color
+            ...     def __eq__(self, other):
+            ...         return self.color == other.web
+        
+            >>> alien_red = OtherColorImplem("red")
+            >>> red == alien_red
+            True
+            >>> blue == alien_red
+            False
+        
+        And inequality (using ``__ne__``) are also polite::
+        
+            >>> class AnotherColorImplem(OtherColorImplem):
+            ...     def __ne__(self, other):
+            ...         return self.color != other.web
+        
+            >>> new_alien_red = AnotherColorImplem("red")
+            >>> red != new_alien_red
+            False
+            >>> blue != new_alien_red
+            True
+        
+        
+        Picking arbitrary color for a python object
+        -------------------------------------------
+        
+        Basic Usage
+        ~~~~~~~~~~~
+        
+        Sometimes, you just want to pick a color for an object in your application
+        often to visually identify this object. Thus, the picked color should be the
+        same for same objects, and different for different object::
+        
+            >>> foo = object()
+            >>> bar = object()
+        
+            >>> Color(pick_for=foo)  # doctest: +ELLIPSIS
+            <Color ...>
+            >>> Color(pick_for=foo) == Color(pick_for=foo)
+            True
+            >>> Color(pick_for=foo) == Color(pick_for=bar)
+            False
+        
+        Of course, although there's a tiny probability that different strings yield the
+        same color, most of the time, different inputs will produce different colors.
+        
+        Advanced Usage
+        ~~~~~~~~~~~~~~
+        
+        You can customize your color picking algorithm by providing a ``picker``. A
+        ``picker`` is a callable that takes an object, and returns something that can
+        be instantiated as a color by ``Color``::
+        
+            >>> my_picker = lambda obj: "red" if isinstance(obj, int) else "blue"
+            >>> Color(pick_for=3, picker=my_picker, pick_key=None)
+            <Color red>
+            >>> Color(pick_for="foo", picker=my_picker, pick_key=None)
+            <Color blue>
+        
+        You might want to use a particular picker, but enforce how the picker will
+        identify two object as the same (or not). So there's a ``pick_key`` attribute
+        that is provided and defaults as equivalent of ``hash`` method and if hash is
+        not supported by your object, it'll default to the ``str`` of your object salted
+        with the class name.
+        
+        Thus::
+        
+            >>> class MyObj(str): pass
+            >>> my_obj_color = Color(pick_for=MyObj("foo"))
+            >>> my_str_color = Color(pick_for="foo")
+            >>> my_obj_color == my_str_color
+            False
+        
+        Please make sure your object is hashable or "stringable" before using the
+        ``RGB_color_picker`` picking mechanism or provide another color picker. Nearly
+        all python object are hashable by default so this shouldn't be an issue (e.g. 
+        instances of ``object`` and subclasses are hashable).
+        
+        Neither ``hash`` nor ``str`` are perfect solution. So feel free to use
+        ``pick_key`` at ``Color`` instantiation time to set your way to identify
+        objects, for instance::
+        
+            >>> a = object()
+            >>> b = object()
+            >>> Color(pick_for=a, pick_key=id) == Color(pick_for=b, pick_key=id)
+            False
+        
+        When choosing a pick key, you should closely consider if you want your color
+        to be consistent between runs (this is NOT the case with the last example),
+        or consistent with the content of your object if it is a mutable object.
+        
+        Default value of ``pick_key`` and ``picker`` ensures that the same color will
+        be attributed to same object between different run on different computer for
+        most python object.
+        
+        
+        Color factory
+        -------------
+        
+        As you might have noticed, there are few attributes that you might want to see
+        attached to all of your colors as ``equality`` for equality comparison support,
+        or ``picker``, ``pick_key`` to configure your object color picker.
+        
+        You can create a customized ``Color`` factory thanks to the ``make_color_factory``::
+        
+            >>> from colour import make_color_factory, HSL_equivalence, RGB_color_picker
+        
+            >>> get_color = make_color_factory(
+            ...    equality=HSL_equivalence,
+            ...    picker=RGB_color_picker,
+            ...    pick_key=str,
+            ... )
+        
+        All color created thanks to ``CustomColor`` class instead of the default one
+        would get the specified attributes by default::
+        
+            >>> black_red = get_color("red", luminance=0)
+            >>> black_blue = get_color("blue", luminance=0)
+        
+        Of course, these are always instances of ``Color`` class::
+        
+            >>> isinstance(black_red, Color)
+            True
+        
+        Equality was changed from normal defaults, so::
+        
+            >>> black_red == black_blue
+            False
+        
+        This because the default equivalence of ``Color`` was set to
+        ``HSL_equivalence``.
+        
+        
+        Contributing
+        ============
+        
+        Any suggestion or issue is welcome. Push request are very welcome,
+        please check out the guidelines.
+        
+        
+        Push Request Guidelines
+        -----------------------
+        
+        You can send any code. I'll look at it and will integrate it myself in
+        the code base and leave you as the author. This process can take time and
+        it'll take less time if you follow the following guidelines:
+        
+        - check your code with PEP8 or pylint. Try to stick to 80 columns wide.
+        - separate your commits per smallest concern.
+        - each commit should pass the tests (to allow easy bisect)
+        - each functionality/bugfix commit should contain the code, tests,
+          and doc.
+        - prior minor commit with typographic or code cosmetic changes are
+          very welcome. These should be tagged in their commit summary with
+          ``!minor``.
+        - the commit message should follow gitchangelog rules (check the git
+          log to get examples)
+        - if the commit fixes an issue or finished the implementation of a
+          feature, please mention it in the summary.
+        
+        If you have some questions about guidelines which is not answered here,
+        please check the current ``git log``, you might find previous commit that
+        would show you how to deal with your issue.
+        
+        
+        License
+        =======
+        
+        Copyright (c) 2012-2017 Valentin Lab.
+        
+        Licensed under the `BSD License`_.
+        
+        .. _BSD License: http://raw.github.com/vaab/colour/master/LICENSE
+        
+        Changelog
+        =========
+        
+        
+        0.1.4 (2017-04-19)
+        ------------------
+        
+        Fix
+        ~~~
+        - ``rgb2hsl`` would produce invalid hsl triplet when red, blue, green
+          component would be all very close to ``1.0``. (fixes #30) [Valentin
+          Lab]
+        
+          Typically, saturation would shoot out of range 0.0..1.0. That could then
+          lead to exceptions being casts afterwards when trying to reconvert this
+          HSL triplet to RGB values.
+        
+        
+        0.1.3 (2017-04-08)
+        ------------------
+        
+        Fix
+        ~~~
+        - Unexpected behavior with ``!=`` operator. (fixes #26) [Valentin Lab]
+        - Added mention of the ``hex_l`` property. (fixes #27) [Valentin Lab]
+        
+        
+        0.1.2 (2015-09-15)
+        ------------------
+        
+        Fix
+        ~~~
+        - Support for corner case 1-wide ``range_to`` color scale. (fixes #18)
+          [Valentin Lab]
+        
+        
+        0.1.1 (2015-03-29)
+        ------------------
+        
+        Fix
+        ~~~
+        - Avoid casting an exception when comparing to non-``Colour`` instances.
+          (fixes #14) [Riziq Sayegh]
+        
+        
+        0.0.6 (2014-11-18)
+        ------------------
+        
+        New
+        ~~~
+        - Provide all missing *2* function by combination with other existing
+          ones (fixes #13). [Valentin Lab]
+        - Provide full access to any color name in HSL, RGB, HEX convenience
+          instances. [Valentin Lab]
+        
+          Now you can call ``colour.HSL.cyan``, or ``colour.HEX.red`` for a direct encoding of
+          ``human`` colour labels to the 3 representations.
+        
+        
+        0.0.5 (2013-09-16)
+        ------------------
+        
+        New
+        ~~~
+        - Color names are case insensitive. [Chris Priest]
+        
+          The color-name structure have their names capitalized. And color names
+          that are made of only one word will be displayed lowercased.
+        
+        Fix
+        ~~~
+        - Now using W3C color recommandation. [Chris Priest]
+        
+          Was using X11 color scheme before, which is slightly different from
+          W3C web color specifications.
+        - Inconsistency in licence information (removed GPL mention). (fixes #8)
+          [Valentin Lab]
+        - Removed ``gitchangelog`` from ``setup.py`` require list. (fixes #9)
+          [Valentin Lab]
+        
+        
+        0.0.4 (2013-06-21)
+        ------------------
+        
+        New
+        ~~~
+        - Added ``make_color_factory`` to customize some common color
+          attributes. [Valentin Lab]
+        - Pick color to identify any python object (fixes #6) [Jonathan Ballet]
+        - Equality support between colors, customizable if needed. (fixes #3)
+          [Valentin Lab]
+        
+        
+        0.0.3 (2013-06-19)
+        ------------------
+        
+        New
+        ~~~
+        - Colour is now compatible with python3. [Ryan Leckey]
+        
+        
+        0.0.1 (2012-06-11)
+        ------------------
+        - First import. [Valentin Lab]
+        
+        TODO
+        ====
+        
+        - ANSI 16-color and 256-color escape sequence generation
+        - YUV, HSV, CMYK support
+        
+        
+Platform: UNKNOWN
+Classifier: Programming Language :: Python
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Development Status :: 3 - Alpha
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Intended Audience :: Developers
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..a64f505
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,492 @@
+======
+Colour
+======
+
+.. image:: http://img.shields.io/pypi/v/colour.svg?style=flat
+   :target: https://pypi.python.org/pypi/colour/
+   :alt: Latest PyPI version
+
+.. image:: https://img.shields.io/pypi/l/gitchangelog.svg?style=flat
+   :target: https://github.com/vaab/gitchangelog/blob/master/LICENSE
+   :alt: License
+
+.. image:: https://img.shields.io/pypi/pyversions/gitchangelog.svg?style=flat
+   :target: https://pypi.python.org/pypi/gitchangelog/
+   :alt: Compatible python versions
+
+.. image:: http://img.shields.io/pypi/dm/colour.svg?style=flat
+   :target: https://pypi.python.org/pypi/colour/
+   :alt: Number of PyPI downloads
+
+.. image:: http://img.shields.io/travis/vaab/colour/master.svg?style=flat
+   :target: https://travis-ci.org/vaab/colour/
+   :alt: Travis CI build status
+
+.. image:: https://img.shields.io/appveyor/ci/vaab/colour.svg
+   :target: https://ci.appveyor.com/project/vaab/colour/branch/master
+   :alt: Appveyor CI build status
+
+.. image:: http://img.shields.io/codecov/c/github/vaab/colour.svg?style=flat
+   :target: https://codecov.io/gh/vaab/colour/
+   :alt: Test coverage
+
+
+Converts and manipulates common color representation (RGB, HSL, web, ...)
+
+
+Feature
+=======
+
+- Damn simple and pythonic way to manipulate color representation (see
+  examples below)
+
+- Full conversion between RGB, HSL, 6-digit hex, 3-digit hex, human color
+
+- One object (``Color``) or bunch of single purpose function (``rgb2hex``,
+  ``hsl2rgb`` ...)
+
+- ``web`` format that use the smallest representation between
+  6-digit (e.g. ``#fa3b2c``), 3-digit (e.g. ``#fbb``), fully spelled
+  color (e.g. ``white``), following `W3C color naming`_ for compatible
+  CSS or HTML color specifications.
+
+- smooth intuitive color scale generation choosing N color gradients.
+
+- can pick colors for you to identify objects of your application.
+
+
+.. _W3C color naming: http://www.w3.org/TR/css3-color/#svg-color
+
+
+Installation
+============
+
+You don't need to download the GIT version of the code as ``colour`` is
+available on the PyPI. So you should be able to run::
+
+    pip install colour
+
+If you have downloaded the GIT sources, then you could add the ``colour.py``
+directly to one of your ``site-packages`` (thanks to a symlink). Or install
+the current version via traditional::
+
+    python setup.py install
+
+And if you don't have the GIT sources but would like to get the latest
+master or branch from github, you could also::
+
+    pip install git+https://github.com/vaab/colour
+
+Or even select a specific revision (branch/tag/commit)::
+
+    pip install git+https://github.com/vaab/colour@master
+
+
+Usage
+=====
+
+To get complete demo of each function, please read the source code which is
+heavily documented and provide a lot of examples in doctest format.
+
+Here is a reduced sample of a common usage scenario:
+
+
+Instantiation
+-------------
+
+Let's create blue color::
+
+    >>> from colour import Color
+    >>> c = Color("blue")
+    >>> c
+    <Color blue>
+
+Please note that all of these are equivalent examples to create the red color::
+
+    Color("red")           ## human, web compatible representation
+    Color(red=1)           ## default amount of blue and green is 0.0
+    Color("blue", hue=0)   ## hue of blue is 0.66, hue of red is 0.0
+    Color("#f00")          ## standard 3 hex digit web compatible representation
+    Color("#ff0000")       ## standard 6 hex digit web compatible representation
+    Color(hue=0, saturation=1, luminance=0.5)
+    Color(hsl=(0, 1, 0.5)) ## full 3-uple HSL specification
+    Color(rgb=(1, 0, 0))   ## full 3-uple RGB specification
+    Color(Color("red"))    ## recursion doesn't break object
+
+
+Reading values
+--------------
+
+Several representations are accessible::
+
+    >>> c.hex
+    '#00f'
+    >>> c.hsl  # doctest: +ELLIPSIS
+    (0.66..., 1.0, 0.5)
+    >>> c.rgb
+    (0.0, 0.0, 1.0)
+
+And their different parts are also independently accessible, as the different
+amount of red, blue, green, in the RGB format::
+
+    >>> c.red
+    0.0
+    >>> c.blue
+    1.0
+    >>> c.green
+    0.0
+
+Or the hue, saturation and luminance of the HSL representation::
+
+    >>> c.hue  # doctest: +ELLIPSIS
+    0.66...
+    >>> c.saturation
+    1.0
+    >>> c.luminance
+    0.5
+
+A note on the ``.hex`` property, it'll return the smallest valid value
+when possible. If you are only interested by the long value, use
+``.hex_l``::
+
+    >>> c.hex_l
+    '#0000ff'
+
+
+Modifying color objects
+-----------------------
+
+All of these properties are read/write, so let's add some red to this color::
+
+    >>> c.red = 1
+    >>> c
+    <Color magenta>
+
+We might want to de-saturate this color::
+
+    >>> c.saturation = 0.5
+    >>> c
+    <Color #bf40bf>
+
+And of course, the string conversion will give the web representation which is
+human, or 3-digit, or 6-digit hex representation depending which is usable::
+
+    >>> "%s" % c
+    '#bf40bf'
+
+    >>> c.luminance = 1
+    >>> "%s" % c
+    'white'
+
+
+Ranges of colors
+----------------
+
+You can get some color scale of variation between two ``Color`` objects quite
+easily. Here, is the color scale of the rainbow between red and blue::
+
+    >>> red = Color("red")
+    >>> blue = Color("blue")
+    >>> list(red.range_to(blue, 5))
+    [<Color red>, <Color yellow>, <Color lime>, <Color cyan>, <Color blue>]
... 2261 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-colour.git



More information about the Python-modules-commits mailing list