X-Git-Url: http://users.mur.at/ms/git/gitweb/?a=blobdiff_plain;f=aces_1.0.0%2Fpython%2Faces_ocio%2Futilities.py;h=75222f18a87e15fc6b805bcca020dad8afafcbdf;hb=24460c4f42d9e44101d414ef15579e5f7d250bb7;hp=54a495e32c97062be2035af216b479da1a8ebbd6;hpb=7a7ab56ee2c9a096f14667e9060a14617370e43d;p=OpenColorIO-Configs.git diff --git a/aces_1.0.0/python/aces_ocio/utilities.py b/aces_1.0.0/python/aces_ocio/utilities.py index 54a495e..75222f1 100644 --- a/aces_1.0.0/python/aces_ocio/utilities.py +++ b/aces_1.0.0/python/aces_ocio/utilities.py @@ -5,8 +5,11 @@ Defines various package utilities objects. """ +from __future__ import division + import os import re +from collections import OrderedDict import PyOpenColorIO as OCIO @@ -21,7 +24,9 @@ __all__ = ['ColorSpace', 'mat44_from_mat33', 'filter_words', 'files_walker', - 'sanitize_path'] + 'replace', + 'sanitize', + 'compact'] class ColorSpace(object): @@ -40,7 +45,7 @@ class ColorSpace(object): to_reference_transforms=[], from_reference_transforms=[], allocation_type=OCIO.Constants.ALLOCATION_UNIFORM, - allocation_vars=[0.0, 1.0]): + allocation_vars=[0, 1]): """ Object description. @@ -83,10 +88,10 @@ def mat44_from_mat33(mat33): Return value description. """ - return [mat33[0], mat33[1], mat33[2], 0.0, - mat33[3], mat33[4], mat33[5], 0.0, - mat33[6], mat33[7], mat33[8], 0.0, - 0, 0, 0, 1.0] + return [mat33[0], mat33[1], mat33[2], 0, + mat33[3], mat33[4], mat33[5], 0, + mat33[6], mat33[7], mat33[8], 0, + 0, 0, 0, 1] def filter_words(words, filters_in=None, filters_out=None, flags=0): @@ -154,7 +159,39 @@ def files_walker(directory, filters_in=None, filters_out=None, flags=0): yield path -def sanitize_path(path): +def replace(string, data): + """ + Replaces the data occurrences in the string. + + Parameters + ---------- + string : str or unicode + String to manipulate. + data : dict + Replacement occurrences. + + Returns + ------- + unicode + Manipulated string. + + Examples + -------- + >>> patterns = {"John" : "Luke", + ... "Jane" : "Anakin", + ... "Doe" : "Skywalker", + ... "Z6PO" : "R2D2"} + >>> data = "Users are: John Doe, Jane Doe, Z6PO." + >>> replace(data,patterns ) + u'Users are: Luke Skywalker, Anakin Skywalker, R2D2.' + """ + + for old, new in data.iteritems(): + string = string.replace(old, new) + return string + + +def sanitize(path): """ Object description. @@ -169,32 +206,30 @@ def sanitize_path(path): Return value description. """ - return path.replace(' ', '_').replace(')', '_').replace('(', '_') + return replace(path, {' ': '_', ')': '_', '(': '_'}) + def compact(string): """ - Removes blanks, underscores, dashes and parentheses + Removes blanks, underscores, dashes and parentheses. Parameters ---------- - parameter : type - A string. + string : str or unicode + String to compact. Returns ------- - type + str or unicode A compact version of that string. """ - compact = string - compact = compact.lower() - compact = compact.replace(' ', '_') - compact = compact.replace('(', '_') - compact = compact.replace(')', '_') - compact = compact.replace('.', '_') - compact = compact.replace('-', '_') - compact = compact.replace('___', '_') - compact = compact.replace('__', '_') - compact = compact.replace('_', '') - - return compact + return replace(string.lower(), + OrderedDict(((' ', '_'), + ('(', '_'), + (')', '_'), + ('.', '_'), + ('-', '_'), + ('___', '_'), + ('__', '_'), + ('_', ''))))