Skip to content

Commit

Permalink
Implement initial support for "AMF" relations.
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Mansencal <[email protected]>
  • Loading branch information
KelSolaar committed Aug 19, 2023
1 parent f9e9003 commit 016bfb5
Show file tree
Hide file tree
Showing 12 changed files with 589 additions and 153 deletions.
3 changes: 2 additions & 1 deletion docs/opencolorio_config_aces.config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ Reference Configuration
classify_aces_ctl_transforms
discover_aces_ctl_transforms
filter_ctl_transforms
generate_amf_components
print_aces_taxonomy
unclassify_ctl_transforms

Expand Down Expand Up @@ -100,7 +101,7 @@ Reference Configuration
.. autosummary::
:toctree: generated/

ColorspaceDescriptionStyle
DescriptionStyle
version_config_mapping_file
generate_config_aces

Expand Down
4 changes: 2 additions & 2 deletions opencolorio_config_aces/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
version_config_mapping_file,
)
from .config import (
ColorspaceDescriptionStyle,
DescriptionStyle,
generate_config_aces,
)
from .config import generate_config_cg, generate_config_studio
Expand Down Expand Up @@ -114,7 +114,7 @@
"version_config_mapping_file",
]
__all__ += [
"ColorspaceDescriptionStyle",
"DescriptionStyle",
"generate_config_aces",
]
__all__ += ["generate_config_cg", "generate_config_studio"]
Expand Down
52 changes: 49 additions & 3 deletions opencolorio_config_aces/clf/discover/classify.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
from collections import defaultdict
from collections.abc import Mapping

from opencolorio_config_aces.config.reference.discover.classify import (
ACESTransformID,
)
from opencolorio_config_aces.utilities import (
attest,
message_box,
Expand Down Expand Up @@ -475,6 +478,8 @@ class CLFTransform:
*CLF* transform family, e.g. *aces*
genus : unicode, optional
*CLF* transform genus, e.g. *undefined*
siblings : array_like, optional
*CLF* transform siblings, e.g. inverse transform.
Attributes
----------
Expand All @@ -497,7 +502,10 @@ class CLFTransform:
__ne__
"""

def __init__(self, path, family=None, genus=None):
def __init__(self, path, family=None, genus=None, siblings=None):
if siblings is None:
siblings = []

self._path = os.path.abspath(os.path.normpath(path))

self._code = None
Expand All @@ -510,6 +518,7 @@ def __init__(self, path, family=None, genus=None):

self._family = family
self._genus = genus
self._siblings = siblings

self._parse()

Expand Down Expand Up @@ -692,6 +701,24 @@ def genus(self):

return self._genus

@property
def siblings(self):
"""
Getter property for the *CLF* transform siblings, e.g. inverse
transform.
Returns
-------
unicode
*CLF* transform siblings.
Notes
-----
- This property is read only.
"""

return self._siblings

def __getattr__(self, item):
"""
Reimplement the :meth:`object.__getattr__` so that unsuccessful
Expand Down Expand Up @@ -809,7 +836,9 @@ def _parse(self):
iter(information.findall("./ACEStransformID")), None
)
if aces_transform_id is not None:
self._information["ACEStransformID"] = aces_transform_id.text
self._information["ACEStransformID"] = ACESTransformID(
aces_transform_id.text
)

builtin_transform = next(
iter(information.findall("./BuiltinTransform")), None
Expand Down Expand Up @@ -999,7 +1028,12 @@ def stem(path):
clf_transform_pairs[basename][
"inverse_transform"
] = clf_transforms[1]

clf_transform_pairs[basename]["forward_transform"].siblings.append(
clf_transform_pairs[basename]["inverse_transform"]
)
clf_transform_pairs[basename]["inverse_transform"].siblings.append(
clf_transform_pairs[basename]["forward_transform"]
)
return clf_transform_pairs


Expand Down Expand Up @@ -1295,12 +1329,24 @@ def print_clf_taxonomy():
clf_transform.source,
clf_transform.target,
)
logger.info(
'\t\tCLFtransformID : "%s"',
clf_transform.clf_transform_id.clf_transform_id,
)
elif isinstance(clf_transform, CLFTransformPair):
logger.info(
'\t\t"%s" <--> "%s"',
clf_transform.forward_transform.source,
clf_transform.forward_transform.target,
)
logger.info(
'\t\tACEStransformID : "%s"',
clf_transform.forward_transform.clf_transform_id.clf_transform_id,
)
logger.info(
'\t\tACEStransformID : "%s"',
clf_transform.inverse_transform.clf_transform_id.clf_transform_id,
)


if __name__ == "__main__":
Expand Down
6 changes: 4 additions & 2 deletions opencolorio_config_aces/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
discover_aces_ctl_transforms,
filter_ctl_transforms,
filter_nodes,
generate_amf_components,
node_to_ctl_transform,
plot_aces_conversion_graph,
print_aces_taxonomy,
Expand All @@ -38,7 +39,7 @@
version_config_mapping_file,
)
from .reference import (
ColorspaceDescriptionStyle,
DescriptionStyle,
generate_config_aces,
)
from .cg import generate_config_cg
Expand Down Expand Up @@ -73,6 +74,7 @@
"discover_aces_ctl_transforms",
"filter_ctl_transforms",
"filter_nodes",
"generate_amf_components",
"node_to_ctl_transform",
"plot_aces_conversion_graph",
"print_aces_taxonomy",
Expand All @@ -81,7 +83,7 @@
"version_config_mapping_file",
]
__all__ += [
"ColorspaceDescriptionStyle",
"DescriptionStyle",
"generate_config_aces",
]
__all__ += ["generate_config_cg"]
Expand Down
Loading

0 comments on commit 016bfb5

Please sign in to comment.