X-Git-Url: http://users.mur.at/ms/git/gitweb/?p=OpenColorIO-Configs.git;a=blobdiff_plain;f=aces_1.0.0%2Fpython%2Faces_ocio%2Futilities.py;h=1d426d98a659a28a45f09d23040d33ef8f31fbb9;hp=e5982219316b9a36ea4687016a67546a8b28c6ee;hb=cad9d48a0f1067769435904348e9fffeffd25eb9;hpb=01bc8e5971bed3bf33197715d7c38c785f41467d diff --git a/aces_1.0.0/python/aces_ocio/utilities.py b/aces_1.0.0/python/aces_ocio/utilities.py index e598221..1d426d9 100644 --- a/aces_1.0.0/python/aces_ocio/utilities.py +++ b/aces_1.0.0/python/aces_ocio/utilities.py @@ -7,6 +7,7 @@ Defines various package utilities objects. from __future__ import division +import itertools import os import re from collections import OrderedDict @@ -26,7 +27,9 @@ __all__ = ['ColorSpace', 'files_walker', 'replace', 'sanitize', - 'compact'] + 'compact', + 'colorspace_prefixed_name', + 'unpack_default'] class ColorSpace(object): @@ -74,6 +77,7 @@ class ColorSpace(object): self.allocation_vars = allocation_vars self.aces_transform_id = aces_transform_id + def mat44_from_mat33(mat33): """ Creates a 4x4 matrix from given 3x3 matrix. @@ -233,3 +237,46 @@ def compact(string): ('___', '_'), ('__', '_'), ('_', '')))) + + +def colorspace_prefixed_name(colorspace): + """ + Returns given *OCIO* colorspace prefixed name with its family name. + + Parameters + ---------- + colorspace : Colorspace + Colorspace to prefix. + + Returns + ------- + str or unicode + Family prefixed *OCIO* colorspace name. + """ + prefix = colorspace.family.replace('/', ' - ') + + return '%s - %s' % (prefix, colorspace.name) + + +def unpack_default(iterable, length=3, default=None): + """ + Unpacks given iterable maintaining given length and filling missing + entries with given default. + + Parameters + ---------- + iterable : object + Iterable. + length : int + Iterable length. + default : object + Filling default object. + + Returns + ------- + iterable + """ + + return itertools.islice(itertools.chain(iter(iterable), + itertools.repeat(default)), + length)