From 4859dbaea702a64748fbe9bd79389c17e77978dd Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 6 Aug 2019 14:49:15 +0200 Subject: [PATCH 1/7] changed edit_in/out, start/endFrame to frameStart/End --- avalon/inventory.py | 8 ++++---- avalon/maya/commands.py | 20 +++++++++++--------- avalon/schema/subset-2.0.json | 6 +++--- avalon/tools/cbloader/model.py | 17 +++++++++-------- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/avalon/inventory.py b/avalon/inventory.py index 54bc07572..475e2d12b 100644 --- a/avalon/inventory.py +++ b/avalon/inventory.py @@ -80,13 +80,13 @@ "film": [ { "name": "shot1", - "edit_in": 1000, - "edit_out": 1143 + "frameStart": 1000, + "frameEnd": 1143 }, { "name": "shot2", - "edit_in": 1000, - "edit_out": 1081 + "frameStart": 1000, + "frameEnd": 1081 }, ] } diff --git a/avalon/maya/commands.py b/avalon/maya/commands.py index f31205504..6450ab291 100644 --- a/avalon/maya/commands.py +++ b/avalon/maya/commands.py @@ -17,9 +17,11 @@ def reset_frame_range(): shot = api.Session["AVALON_ASSET"] shot = io.find_one({"name": shot, "type": "asset"}) + shot_data = shot["data"] try: - edit_in = shot["data"]["edit_in"] - edit_out = shot["data"]["edit_out"] + + frame_start = shot["data"].get("frameStart", shot["data"]["edit_in"]) + frame_end = shot["data"].get("frameEnd", shot["data"]["edit_out"]) except KeyError: cmds.warning("No edit information found for %s" % shot["name"]) return @@ -38,13 +40,13 @@ def reset_frame_range(): cmds.currentUnit(time=fps) - cmds.playbackOptions(minTime=edit_in) - cmds.playbackOptions(maxTime=edit_out) - cmds.playbackOptions(animationStartTime=edit_in) - cmds.playbackOptions(animationEndTime=edit_out) - cmds.playbackOptions(minTime=edit_in) - cmds.playbackOptions(maxTime=edit_out) - cmds.currentTime(edit_in) + cmds.playbackOptions(minTime=frame_start) + cmds.playbackOptions(maxTime=frame_end) + cmds.playbackOptions(animationStartTime=frame_start) + cmds.playbackOptions(animationEndTime=frame_end) + cmds.playbackOptions(minTime=frame_start) + cmds.playbackOptions(maxTime=frame_end) + cmds.currentTime(frame_start) def reset_resolution(): diff --git a/avalon/schema/subset-2.0.json b/avalon/schema/subset-2.0.json index e79e0d1be..22625610d 100644 --- a/avalon/schema/subset-2.0.json +++ b/avalon/schema/subset-2.0.json @@ -43,9 +43,9 @@ "type": "object", "description": "Document metadata", "example": { - "startFrame": 1000, - "endFrame": 1201 + "frameStart": 1000, + "frameEnd": 1201 } } } -} \ No newline at end of file +} diff --git a/avalon/tools/cbloader/model.py b/avalon/tools/cbloader/model.py index 756f9ec93..6bfc5c4b8 100644 --- a/avalon/tools/cbloader/model.py +++ b/avalon/tools/cbloader/model.py @@ -72,16 +72,17 @@ def set_version(self, index, version): version_data = version.get("data", dict()) # Compute frame ranges (if data is present) - start = version_data.get("startFrame", None) - end = version_data.get("endFrame", None) handles = version_data.get("handles", None) - if start is not None and end is not None: + frame_start = version_data.get("frameStart", None) + frame_end = version_data.get("frameEnd", None) + + if frame_start is not None and frame_end is not None: # Remove superfluous zeros from numbers (3.0 -> 3) to improve # readability for most frame ranges - start_clean = ('%f' % start).rstrip('0').rstrip('.') - end_clean = ('%f' % end).rstrip('0').rstrip('.') + start_clean = ('%f' % frame_start).rstrip('0').rstrip('.') + end_clean = ('%f' % frame_end).rstrip('0').rstrip('.') frames = "{0}-{1}".format(start_clean, end_clean) - duration = end - start + 1 + duration = frame_end - frame_start + 1 else: frames = None duration = None @@ -99,8 +100,8 @@ def set_version(self, index, version): "familyLabel": family_config.get("label", family), "familyIcon": family_config.get('icon', None), "families": set(families), - "startFrame": start, - "endFrame": end, + "frameStart": frame_start, + "frameEnd": frame_end, "duration": duration, "handles": handles, "frames": frames, From df540ba487e5af3ada79daed4aa3d158c7269db6 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 6 Aug 2019 14:55:01 +0200 Subject: [PATCH 2/7] handles can be store as handleStart/End --- avalon/tools/cbloader/model.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/avalon/tools/cbloader/model.py b/avalon/tools/cbloader/model.py index 6bfc5c4b8..f2f581a75 100644 --- a/avalon/tools/cbloader/model.py +++ b/avalon/tools/cbloader/model.py @@ -72,10 +72,16 @@ def set_version(self, index, version): version_data = version.get("data", dict()) # Compute frame ranges (if data is present) - handles = version_data.get("handles", None) frame_start = version_data.get("frameStart", None) frame_end = version_data.get("frameEnd", None) + handle_start = version_data.get("handleStart", None) + handle_end = version_data.get("handleEnd", None) + if handle_start is not None and handle_end is not None: + handles = "{}-{}".format(str(handle_start), str(handle_end)) + else: + handles = version_data.get("handles", None) + if frame_start is not None and frame_end is not None: # Remove superfluous zeros from numbers (3.0 -> 3) to improve # readability for most frame ranges From 5da70bc6710d74abd3ed988d753b96d351536545 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 6 Aug 2019 14:55:53 +0200 Subject: [PATCH 3/7] attr name resolution_width/height changed to resolutionWidth/Height (let backwards compatible) --- avalon/maya/commands.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/avalon/maya/commands.py b/avalon/maya/commands.py index 6450ab291..f9021cfa3 100644 --- a/avalon/maya/commands.py +++ b/avalon/maya/commands.py @@ -53,8 +53,18 @@ def reset_resolution(): project = io.find_one({"type": "project"}) try: - resolution_width = project["data"].get("resolution_width", 1920) - resolution_height = project["data"].get("resolution_height", 1080) + resolution_width = project["data"].get( + "resolutionWidth", project["data"].get( + "resolution_width", + 1920 + ) + ) + resolution_height = project["data"].get( + "resolutionHeight", project["data"].get( + "resolution_height", + 1080 + ) + ) except KeyError: cmds.warning("No resolution information found for %s" % project["name"]) From 79e9ea128d2641fb5d73bc17401bba788b28a84d Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 6 Aug 2019 14:59:12 +0200 Subject: [PATCH 4/7] removed unnecessary line --- avalon/maya/commands.py | 1 - 1 file changed, 1 deletion(-) diff --git a/avalon/maya/commands.py b/avalon/maya/commands.py index f9021cfa3..8a882d918 100644 --- a/avalon/maya/commands.py +++ b/avalon/maya/commands.py @@ -17,7 +17,6 @@ def reset_frame_range(): shot = api.Session["AVALON_ASSET"] shot = io.find_one({"name": shot, "type": "asset"}) - shot_data = shot["data"] try: frame_start = shot["data"].get("frameStart", shot["data"]["edit_in"]) From aa2935cf107aff31e2c1fd03dea7c196690b0bd3 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 6 Aug 2019 18:47:05 +0200 Subject: [PATCH 5/7] (fix) backwards compatibility --- avalon/tools/cbloader/model.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/avalon/tools/cbloader/model.py b/avalon/tools/cbloader/model.py index f2f581a75..3a11f6869 100644 --- a/avalon/tools/cbloader/model.py +++ b/avalon/tools/cbloader/model.py @@ -72,8 +72,14 @@ def set_version(self, index, version): version_data = version.get("data", dict()) # Compute frame ranges (if data is present) - frame_start = version_data.get("frameStart", None) - frame_end = version_data.get("frameEnd", None) + frame_start = version_data.get( + "frameStart", + version_data.get("startFrame", None) + ) + frame_end = version_data.get( + "frameEnd", + version_data.get("endFrame", None) + ) handle_start = version_data.get("handleStart", None) handle_end = version_data.get("handleEnd", None) From 00aa6eb4b02b301a04e8fd8fd154b92c510bc6d4 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 6 Aug 2019 18:47:52 +0200 Subject: [PATCH 6/7] (fix) proper way to get data --- avalon/maya/commands.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/avalon/maya/commands.py b/avalon/maya/commands.py index 8a882d918..41dd9ff29 100644 --- a/avalon/maya/commands.py +++ b/avalon/maya/commands.py @@ -19,8 +19,14 @@ def reset_frame_range(): try: - frame_start = shot["data"].get("frameStart", shot["data"]["edit_in"]) - frame_end = shot["data"].get("frameEnd", shot["data"]["edit_out"]) + frame_start = shot["data"].get( + "frameStart", + shot["data"].get("edit_in") + ) + frame_end = shot["data"].get( + "frameEnd", + shot["data"].get("edit_out") + ) except KeyError: cmds.warning("No edit information found for %s" % shot["name"]) return From 3f66bdb51bf2a4dd1269e64229ea374111a424e9 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Tue, 6 Aug 2019 19:57:19 +0200 Subject: [PATCH 7/7] added comments to specify backwards compatibility in code --- avalon/maya/commands.py | 16 ++++++++-------- avalon/tools/cbloader/model.py | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/avalon/maya/commands.py b/avalon/maya/commands.py index 41dd9ff29..0b3a35abc 100644 --- a/avalon/maya/commands.py +++ b/avalon/maya/commands.py @@ -21,10 +21,12 @@ def reset_frame_range(): frame_start = shot["data"].get( "frameStart", + # backwards compatibility shot["data"].get("edit_in") ) frame_end = shot["data"].get( "frameEnd", + # backwards compatibility shot["data"].get("edit_out") ) except KeyError: @@ -59,16 +61,14 @@ def reset_resolution(): try: resolution_width = project["data"].get( - "resolutionWidth", project["data"].get( - "resolution_width", - 1920 - ) + "resolutionWidth", + # backwards compatibility + project["data"].get("resolution_width", 1920) ) resolution_height = project["data"].get( - "resolutionHeight", project["data"].get( - "resolution_height", - 1080 - ) + "resolutionHeight", + # backwards compatibility + project["data"].get("resolution_height", 1080) ) except KeyError: cmds.warning("No resolution information found for %s" diff --git a/avalon/tools/cbloader/model.py b/avalon/tools/cbloader/model.py index 3a11f6869..289bcb446 100644 --- a/avalon/tools/cbloader/model.py +++ b/avalon/tools/cbloader/model.py @@ -74,10 +74,12 @@ def set_version(self, index, version): # Compute frame ranges (if data is present) frame_start = version_data.get( "frameStart", + # backwards compatibility version_data.get("startFrame", None) ) frame_end = version_data.get( "frameEnd", + # backwards compatibility version_data.get("endFrame", None) )