Skip to content

Commit ba9520c

Browse files
committed
Shifter: Guide Export: Fix metadata refresh and speed up export
Fix metadata not updating on export by syncing paramDefs cache in refresh_user_metadata. Reuse parsed guide instance instead of double setFromHierarchy call for faster export. Fix docstring style to Google convention and sort imports in core/utils.py.
1 parent 62350e0 commit ba9520c

3 files changed

Lines changed: 23 additions & 10 deletions

File tree

release/scripts/mgear/core/utils.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
"""Utility functions"""
22

33

4+
import datetime
5+
import getpass
46
import os
57
import sys
68
import timeit
79
from functools import wraps
8-
import datetime
9-
import getpass
1010

1111
from maya import cmds
1212
import mgear.pymaya as pm
@@ -446,14 +446,14 @@ def get_maya_path():
446446

447447

448448
def get_user_metadata():
449+
"""Get current user metadata.
450+
451+
Returns:
452+
dict: Username, date, Maya version, and mGear version.
449453
"""
450-
:return: User metadata including username, date, Maya version, and mGear version.
451-
:rtype: dict[str, str]
452-
"""
453-
data = {
454+
return {
454455
"user": getpass.getuser(),
455456
"date": str(datetime.datetime.now()),
456457
"maya_version": str(mel.eval("getApplicationVersionAsFloat")),
457458
"gear_version": mgear.getVersion(),
458459
}
459-
return data

release/scripts/mgear/shifter/guide.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,9 +1081,17 @@ def get_guide_template_dict(self, meta=None):
10811081
return self.guide_template_dict
10821082

10831083
def refresh_user_metadata(self):
1084+
"""Update guide metadata attrs with current user info.
1085+
1086+
Refreshes user, date, maya_version, and gear_version on the
1087+
guide root node and internal paramDefs cache so exported
1088+
templates reflect the current session rather than values
1089+
from when the guide was created.
1090+
"""
10841091
for k, v in utils.get_user_metadata().items():
1085-
attr = self.model.attr(k)
1086-
attr.set(v)
1092+
self.model.attr(k).set(v)
1093+
if k in self.paramDefs:
1094+
self.paramDefs[k].value = v
10871095

10881096
def addOptionsValues(self):
10891097
"""Gather or change some options values according to some others.

release/scripts/mgear/shifter/io.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,12 @@ def export_guide_template(filePath=None, meta=None, conf=None, *args):
158158
rig = shifter.Rig()
159159
rig.guide.setFromHierarchy(selection[0])
160160
rig.guide.refresh_user_metadata()
161-
conf = get_template_from_selection(meta)
161+
conf = rig.guide.get_guide_template_dict(meta)
162+
else:
163+
pm.displayWarning(
164+
"Guide root or guide component must be selected"
165+
)
166+
return
162167
if conf:
163168
data_string = json.dumps(conf, indent=4, sort_keys=True)
164169
if not filePath:

0 commit comments

Comments
 (0)