Return value description.
"""
- interpolation_options = {
- 'linear': ocio.Constants.INTERP_LINEAR,
- 'nearest': ocio.Constants.INTERP_NEAREST,
- 'tetrahedral': ocio.Constants.INTERP_TETRAHEDRAL}
-
direction_options = {
'forward': ocio.Constants.TRANSFORM_DIR_FORWARD,
'inverse': ocio.Constants.TRANSFORM_DIR_INVERSE}
for alias_name in colorspace_alias_names:
if alias_name.lower() == colorspace.name.lower():
- print(
- 'Skipping alias creation for %s, alias %s, because lower cased names match' % (
- colorspace.name, alias_name))
+ print('Skipping alias creation for %s, alias %s, '
+ 'because lower cased names match' % (
+ colorspace.name, alias_name))
continue
print('Adding alias colorspace space %s, alias to %s' % (
description = colorspace.description
if colorspace.aces_transform_id:
- description += '\n\nACES Transform ID : %s' % colorspace.aces_transform_id
+ description += (
+ '\n\nACES Transform ID : %s' % colorspace.aces_transform_id)
ocio_colorspace_alias = ocio.ColorSpace(
name=alias_name,
def add_look(config,
look,
- prefix,
custom_lut_dir,
reference_name,
- config_data,
- multiple_displays=False):
+ config_data):
"""
Object description.
# Copy look lut
#
if custom_lut_dir:
- if not '$' in look_lut:
+ if '$' not in look_lut:
print('Getting ready to copy look lut : %s' % look_lut)
shutil.copy2(look_lut, custom_lut_dir)
look_lut = os.path.split(look_lut)[1]
print()
-def integrate_looks_into_views(config,
- looks,
+def integrate_looks_into_views(looks,
reference_name,
config_data,
multiple_displays=False):
# - Add these new copied colorspaces for the Displays / Views
else:
for display, view_list in config_data['displays'].iteritems():
- output_colorspace_copy = None
+ output_colorspace_c = None
look_names_string = ''
for view_name, output_colorspace in view_list.iteritems():
if view_name == 'Output Transform':
print('Adding new View that incorporates looks')
# Make a copy of the output colorspace
- output_colorspace_copy = copy.deepcopy(output_colorspace)
+ output_colorspace_c = copy.deepcopy(output_colorspace)
# for look_name in look_names:
for i in range(len(look_names)):
look_name = look_names[i]
- # Add the LookTransform to the head of the from_reference transform list
- if output_colorspace_copy.from_reference_transforms:
- output_colorspace_copy.from_reference_transforms.insert(
+ # Add the LookTransform to the head of the
+ # from_reference transform list.
+ if output_colorspace_c.from_reference_transforms:
+ output_colorspace_c.from_reference_transforms.insert(
i, {'type': 'look',
'look': look_name,
'src': reference_name,
'dst': reference_name,
'direction': 'forward'})
- # Add the LookTransform to the end of the to_reference transform list
- if output_colorspace_copy.to_reference_transforms:
+ # Add the LookTransform to the end of
+ # the to_reference transform list.
+ if output_colorspace_c.to_reference_transforms:
inverse_look_name = look_names[
len(look_names) - 1 - i]
- output_colorspace_copy.to_reference_transforms.append(
+ output_colorspace_c.to_reference_transforms.append(
{'type': 'look',
'look': inverse_look_name,
'src': reference_name,
'dst': reference_name,
'direction': 'inverse'})
- if not look_name in config_data['looks']:
+ if look_name not in config_data['looks']:
config_data['looks'].append(look_name)
look_names_string = ', '.join(look_names)
- output_colorspace_copy.name = '%s with %s' % (
- output_colorspace.name, look_names_string)
- output_colorspace_copy.aliases = [
- 'out_%s' % compact(output_colorspace_copy.name)]
+ output_colorspace_c.name = '%s with %s' % (
+ output_colorspace.name, look_names_string)
+ output_colorspace_c.aliases = [
+ 'out_%s' % compact(output_colorspace_c.name)]
- print(
- 'Colorspace that incorporates looks created : %s' % output_colorspace_copy.name)
+ print('Colorspace that incorporates looks '
+ 'created : %s' % output_colorspace_c.name)
- config_data['colorSpaces'].append(output_colorspace_copy)
+ config_data['colorSpaces'].append(output_colorspace_c)
- if output_colorspace_copy:
- print(
- 'Adding colorspace that incorporates looks into view list')
+ if output_colorspace_c:
+ print('Adding colorspace that incorporates looks '
+ 'into view list')
# Change the name of the View
- view_list[
- 'Output Transform with %s' % look_names_string] = output_colorspace_copy
+ view_list['Output Transform with %s' % look_names_string] = (
+ output_colorspace_c)
config_data['displays'][display] = view_list
- # print( 'Display : %s, View List : %s' % (display, ', '.join(view_list)) )
+ # print('Display : %s, View List : %s' % (
+ # display, ', '.join(view_list)) )
def create_config(config_data,
config.setDescription('An ACES config generated from python')
# Setting configuration search path.
- searchPath = ['luts']
+ search_path = ['luts']
if custom_lut_dir:
- searchPath.append('custom')
- config.setSearchPath(':'.join(searchPath))
+ search_path.append('custom')
+ config.setSearchPath(':'.join(search_path))
# Defining the reference colorspace.
reference_data = config_data['referenceColorSpace']
if reference_data.aliases:
# add_colorspace_alias(config, reference_data,
# reference_data, reference_data.aliases)
- # defer adding alias colorspaces until end. Helps with some applications
+ # defer adding alias colorspaces until end.
+ # Helps with some applications.
alias_colorspaces.append(
[reference_data, reference_data, reference_data.aliases])
print()
- # print( 'color spaces : %s' % [x.name for x in sorted(config_data['colorSpaces'])])
+ # print('color spaces : %s' % [
+ # x.name for x in sorted(config_data['colorSpaces'])])
#
# Add Looks and Look colorspaces
for look in look_info:
add_look(config,
look,
- prefix,
custom_lut_dir,
reference_data.name,
config_data)
# Integrate looks with displays, views
- integrate_looks_into_views(config,
- look_info,
+ integrate_looks_into_views(look_info,
reference_data.name,
config_data,
multiple_displays)
description = colorspace.description
if colorspace.aces_transform_id:
- description += '\n\nACES Transform ID : %s' % colorspace.aces_transform_id
+ description += (
+ '\n\nACES Transform ID : %s' % colorspace.aces_transform_id)
ocio_colorspace = ocio.ColorSpace(
name=colorspace.name,
if colorspace.aliases:
# add_colorspace_alias(config, reference_data,
# colorspace, colorspace.aliases)
- # defer adding alias colorspaces until end. Helps with some applications
+ # defer adding alias colorspaces until end.
+ # Helps with some applications.
alias_colorspaces.append(
[reference_data, colorspace, colorspace.aliases])
print()
#
- # We add roles early so we can create alias colorspaces with the names of the roles
- # before the rest of the colorspace aliases are added to the config.
- #
+ # We add roles early so we can create alias colorspaces with the names
+ # of the roles before the rest of the colorspace aliases are added
+ # to the config.
print('Setting the roles')
if prefix:
texture_paint=prefixed_names[
config_data['roles']['texture_paint']])
- # Not allowed for the moment. role names can not overlap with colorspace names.
+ # Not allowed for the moment. role names can not overlap
+ # with colorspace names.
"""
# Add the aliased colorspaces for each role
for role_name, role_colorspace_name in config_data['roles'].iteritems():
print( 'Finding colorspace : %s' % role_colorspace_prefixed_name )
# Find the colorspace pointed to by the role
- role_colorspaces = [colorspace for colorspace in config_data['colorSpaces'] if colorspace.name == role_colorspace_prefixed_name]
+ role_colorspaces = [colorspace
+ for colorspace in config_data['colorSpaces']
+ if colorspace.name == role_colorspace_prefixed_name]
role_colorspace = None
if len(role_colorspaces) > 0:
role_colorspace = role_colorspaces[0]
print( 'Adding an alias colorspace named %s, pointing to %s' % (
role_name, role_colorspace.name))
- add_colorspace_aliases(config, reference_data, role_colorspace, [role_name], 'Roles')
+ add_colorspace_aliases(
+ config, reference_data, role_colorspace, [role_name], 'Roles')
"""
else:
scene_linear=config_data['roles']['scene_linear'],
texture_paint=config_data['roles']['texture_paint'])
- # Not allowed for the moment. role names can not overlap with colorspace names.
+ # Not allowed for the moment. role names can not overlap
+ # with colorspace names.
"""
# Add the aliased colorspaces for each role
for role_name, role_colorspace_name in config_data['roles'].iteritems():
# Find the colorspace pointed to by the role
- role_colorspaces = [colorspace for colorspace in config_data['colorSpaces'] if colorspace.name == role_colorspace_name]
+ role_colorspaces = [colorspace
+ for colorspace in config_data['colorSpaces']
+ if colorspace.name == role_colorspace_name]
role_colorspace = None
if len(role_colorspaces) > 0:
role_colorspace = role_colorspaces[0]
print( 'Adding an alias colorspace named %s, pointing to %s' % (
role_name, role_colorspace.name))
- add_colorspace_aliases(config, reference_data, role_colorspace, [role_name], 'Roles')
+ add_colorspace_aliases(
+ config, reference_data, role_colorspace, [role_name], 'Roles')
"""
print()
- # We add these at the end as some applications use the order of the colorspaces
- # definitions in the config to order the colorspaces in their selection lists.
- # Other go alphabetically. This should keep the alias colorspaces out of the way
- # for the apps that use the order of definition in the config.
+ # We add these at the end as some applications use the order of the
+ # colorspaces definitions in the config to order the colorspaces
+ # in their selection lists.
+ # Other go alphabetically. This should keep the alias colorspaces out
+ # of the way for the apps that use the order of definition in the config.
print('Adding the alias colorspaces')
for reference, colorspace, aliases in alias_colorspaces:
add_colorspace_aliases(config, reference, colorspace, aliases)
print('Adding the diplays and views')
- # Set the color_picking role to be the first Display's Output Transform View
+ # Set the color_picking role to be
+ # the first Display's Output Transform View.
default_display_name = config_data['defaultDisplay']
default_display_views = config_data['displays'][default_display_name]
default_display_colorspace = default_display_views['Output Transform']
print('Creating multiple displays, with looks : %s' % looks)
# Note: We don't reorder the Displays to put the 'defaultDisplay' first
- # because OCIO will order them alphabetically when the config is written to disk.
+ # because OCIO will order them alphabetically
+ # when the config is written to disk.
# Create Displays, Views
for display, view_list in config_data['displays'].iteritems():
# We use the Display names as the View names in this case
# as there is a single Display that contains all views.
- # This works for more applications than not, as of the time of this implementation.
+ # This works for more applications than not,
+ # as of the time of this implementation.
# Maya 2016 doesn't like parentheses in View names
display_cleaned = replace(display, {')': '', '(': ''})
if 'with' in view_name:
# Integrate looks into view name
display_cleaned = '%s with %s' % (
- display_cleaned, look_names)
+ display_cleaned, look_names)
- viewsWithLooksAtEnd = False
- # Storing combo of display, view and colorspace name in a list so we can
- # add them to the end of the list
- if viewsWithLooksAtEnd:
+ views_with_looks_at_end = False
+ # Storing combo of display, view and colorspace name
+ # in a list so we can add them to the end of the list.
+ if views_with_looks_at_end:
displays_views_colorspaces.append(
[single_display_name, display_cleaned,
colorspace.name])
if not (display_cleaned in views):
views.append(display_cleaned)
- # Add to config any display, view combinations that were saved for later
- # This list will be empty unless viewsWithLooksAtEnd is set to True above
+ # Add to config any display, view combinations that were saved
+ # for later. This list will be empty unless views_with_looks_at_end is
+ # set to True above.
for display_view_colorspace in displays_views_colorspaces:
- single_display_name, display_cleaned, colorspace_name = display_view_colorspace
+ single_display_name, display_cleaned, colorspace_name = (
+ display_view_colorspace)
# Add to config
config.addDisplay(single_display_name, display_cleaned,
# -------------------------------------------------------------------------
# *ARRI Log-C* to *ACES*.
- arri_colorSpaces = arri.create_colorspaces(lut_directory,
+ arri_colorspaces = arri.create_colorspaces(lut_directory,
lut_resolution_1d)
- for cs in arri_colorSpaces:
+ for cs in arri_colorspaces:
config_data['colorSpaces'].append(cs)
# *Canon-Log* to *ACES*.
config_data['colorSpaces'].append(cs)
# *Panasonic V-Log* to *ACES*.
- panasonic_colorSpaces = panasonic.create_colorspaces(lut_directory,
+ panasonic_colorspaces = panasonic.create_colorspaces(lut_directory,
lut_resolution_1d)
- for cs in panasonic_colorSpaces:
+ for cs in panasonic_colorspaces:
config_data['colorSpaces'].append(cs)
# *RED* colorspaces to *ACES*.
config_data['colorSpaces'].append(cs)
# *S-Log* to *ACES*.
- sony_colorSpaces = sony.create_colorspaces(lut_directory,
+ sony_colorspaces = sony.create_colorspaces(lut_directory,
lut_resolution_1d)
- for cs in sony_colorSpaces:
+ for cs in sony_colorspaces:
config_data['colorSpaces'].append(cs)
# -------------------------------------------------------------------------
# General Color Spaces
# -------------------------------------------------------------------------
- general_colorSpaces = general.create_colorspaces(lut_directory,
- lut_resolution_1d,
- lut_resolution_3d)
- for cs in general_colorSpaces:
+ general_colorspaces = general.create_colorspaces(lut_directory,
+ lut_resolution_1d)
+ for cs in general_colorspaces:
config_data['colorSpaces'].append(cs)
# The *Raw* color space
shaper_name,
baked_directory,
config_path,
- lut_resolution_1d,
lut_resolution_3d,
lut_resolution_shaper=1024,
prefix=False):
odt_info_C = dict(odt_info)
# Uncomment if you would like to support the older behavior where ODTs
- # that have support for full and legal range output generate a LUT for each.
+ # that have support for full and legal range output generate
+ # a LUT for each.
"""
# Create two entries for ODTs that have full and legal range support
for odt_ctl_name, odt_values in odt_info.iteritems():
def create_config_dir(config_directory,
- bake_secondary_LUTs=False,
+ bake_secondary_luts=False,
custom_lut_dir=None):
"""
Object description.
lut_directory = os.path.join(config_directory, 'luts')
dirs = [config_directory, lut_directory]
- if bake_secondary_LUTs:
+ if bake_secondary_luts:
dirs.extend([os.path.join(config_directory, 'baked'),
os.path.join(config_directory, 'baked', 'flame'),
os.path.join(config_directory, 'baked', 'photoshop'),
config_directory,
lut_resolution_1d=4096,
lut_resolution_3d=64,
- bake_secondary_LUTs=True,
+ bake_secondary_luts=True,
multiple_displays=False,
look_info=None,
copy_custom_luts=True,
custom_lut_dir = os.path.join(config_directory, 'custom')
lut_directory = create_config_dir(config_directory,
- bake_secondary_LUTs,
+ bake_secondary_luts,
custom_lut_dir)
odt_info = aces.get_ODTs_info(aces_ctl_directory)
write_config(config,
os.path.join(config_directory, 'config.ocio'))
- if bake_secondary_LUTs:
+ if bake_secondary_luts:
generate_baked_LUTs(odt_info,
shaper_name,
os.path.join(config_directory, 'baked'),
os.path.join(config_directory, 'config.ocio'),
- lut_resolution_1d,
lut_resolution_3d,
lut_resolution_1d,
prefix=prefix_colorspaces_with_family_names)
usage += '\n'
usage += 'Command line examples'
usage += '\n'
- usage += 'Create a GUI-friendly ACES 1.0 config with no secondary, baked LUTs : \n'
- usage += '\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl --lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 --dontBakeSecondaryLUTs'
+ usage += ('Create a GUI-friendly ACES 1.0 config with no secondary, '
+ 'baked LUTs : \n')
+ usage += ('\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl '
+ '--lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 '
+ '--dontBakeSecondaryLUTs')
usage += '\n'
usage += 'Create a more OCIO-compliant ACES 1.0 config : \n'
- usage += '\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl --lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 --createMultipleDisplays'
+ usage += ('\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl '
+ '--lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 '
+ '--createMultipleDisplays')
usage += '\n'
usage += '\n'
usage += 'Adding custom looks'
usage += '\n'
- usage += 'Create a GUI-friendly ACES 1.0 config with an ACES-style CDL (will be applied in the ACEScc colorspace): \n'
- usage += '\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl --lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 \n\t\t--addACESLookCDL ACESCDLName /path/to/SampleCDL.ccc cc03345'
+ usage += ('Create a GUI-friendly ACES 1.0 config with an ACES-style CDL '
+ '(will be applied in the ACEScc colorspace): \n')
+ usage += ('\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl '
+ '--lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 '
+ '\n\t\t--addACESLookCDL ACESCDLName '
+ '/path/to/SampleCDL.ccc cc03345')
usage += '\n'
usage += 'Create a GUI-friendly ACES 1.0 config with an general CDL: \n'
- usage += '\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl --lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 \n\t\t--addCustomLookCDL CustomCDLName "ACES - ACEScc" /path/to/SampleCDL.ccc cc03345'
+ usage += ('\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl '
+ '--lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 '
+ '\n\t\t--addCustomLookCDL CustomCDLName "ACES - ACEScc" '
+ '/path/to/SampleCDL.ccc cc03345')
usage += '\n'
- usage += '\tIn this example, the CDL will be applied in the ACEScc colorspace, but the user could choose other spaces by changing the argument after the name of the look. \n'
+ usage += ('\tIn this example, the CDL will be applied in the '
+ 'ACEScc colorspace, but the user could choose other spaces '
+ 'by changing the argument after the name of the look. \n')
usage += '\n'
- usage += 'Create a GUI-friendly ACES 1.0 config with an ACES-style LUT (will be applied in the ACEScc colorspace): \n'
- usage += '\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl --lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 \n\t\t--addACESLookLUT ACESLUTName /path/to/SampleCDL.ccc cc03345'
+ usage += ('Create a GUI-friendly ACES 1.0 config with an ACES-style LUT '
+ '(will be applied in the ACEScc colorspace): \n')
+ usage += ('\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl '
+ '--lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 '
+ '\n\t\t--addACESLookLUT ACESLUTName '
+ '/path/to/SampleCDL.ccc cc03345')
usage += '\n'
usage += 'Create a GUI-friendly ACES 1.0 config with an general LUT: \n'
- usage += '\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl --lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 \n\t\t--addCustomLookLUT CustomLUTName "ACES - ACEScc" /path/to/SampleCDL.ccc cc03345'
+ usage += ('\tcreate_aces_config -a /path/to/aces-dev/transforms/ctl '
+ '--lutResolution1d 1024 --lutResolution3d 33 -c aces_1.0.0 '
+ '\n\t\t--addCustomLookLUT CustomLUTName "ACES - ACEScc" '
+ '/path/to/SampleCDL.ccc cc03345')
usage += '\n'
- usage += '\tIn this example, the LUT will be applied in the ACEScc colorspace, but the user could choose other spaces by changing the argument after the name of the look. \n'
+ usage += ('\tIn this example, the LUT will be applied in the '
+ 'ACEScc colorspace, but the user could choose other spaces '
+ 'by changing the argument after the name of the look. \n')
usage += '\n'
look_info = []