ynput / OpenPype

OpenPype has been surpassed by AYON and is now read only.
https://ayon.ynput.io
MIT License
287 stars 129 forks source link

Hiero publishment error #3606

Open aramadan0096 opened 2 years ago

aramadan0096 commented 2 years ago

Describe the bug Publishing shots from Hiero.

To Reproduce Steps to reproduce the behavior:

  1. creating a kitsu project
  2. creating sequences and shots on kitsu
  3. creating an kitsu asset named conform
  4. runnig (sync-service) successfully.
  5. runing the conform asset task on Hiero
  6. importing the footage
  7. selecting all the footage and run "Create" Screenshot 2022-08-01 221121
  8. then "Publish" Screenshot 2022-08-03 022755
Instance: 
Conforming_workfile
Message: 
Anatomy template "{root[work]}/{project[name]}/{hierarchy}/Publish/{asset}/{task[name]}/v{version:0>3}/{project[code]}_{asset}_v{version}_{frame}.{ext}" is unsolved. Missing keys: "frame".

Screenshot 2022-08-01 222435 Screenshot 2022-08-01 222528 Screenshot 2022-08-03 042157

Screenshot 2022-08-01 222555

  1. See error

Expected behavior I should be able to load the footage in nuke scripts later.

Desktop (please complete the following information):

Logs reviewer

>>> [ Installed event callback for 'taskChanged'.. ]
>>> [ Registering Hiero plug-ins.. ]
>>> [ Registering events for: kBeforeNewProjectCreated, kAfterNewProjectCreated, kBeforeProjectLoad, kAfterProjectLoad, kBeforeProjectSave, kAfterProjectSave, kBeforeProjectClose, kAfterProjectClose, kShutdown, kStartup, kSelectionChanged ]
>>> [ after project load event... ]
>>> [ after project load event... ]
>>> [ ___ track_item: TrackItem('Sq01_Sh0010') ]
>>> [ ___ valid trackitem: TrackItem('Sq01_Sh0010') ]
>>> [ ___ track_item: TrackItem('Sq01_Sh0020') ]
>>> [ ___ valid trackitem: TrackItem('Sq01_Sh0020') ]
>>> [ ___ track_item: TrackItem('Sq01_Sh0030') ]
>>> [ ___ valid trackitem: TrackItem('Sq01_Sh0030') ]
>>> [ ___ track_item: TrackItem('Sq01_Sh0040') ]
>>> [ ___ valid trackitem: TrackItem('Sq01_Sh0040') ]
>>> [ ___ track_item: TrackItem('Sq01_Sh0050') ]
>>> [ ___ valid trackitem: TrackItem('Sq01_Sh0050') ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C7088> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146C7448> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C3F08> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146C3308> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C9488> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146CE208> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C3DC8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146C34C8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146E1F08> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146D2EC8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C0648> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146C9BC8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146E1708> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146C8448> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C0AC8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146C0908> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C3308> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146C8448> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D146C0DC8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D146CE208> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
>>> [ ___ track_item: TrackItem('Sh0010') ]
>>> [ ___ valid trackitem: TrackItem('Sh0010') ]
>>> [ ___ track_item: TrackItem('Sh0020') ]
>>> [ ___ valid trackitem: TrackItem('Sh0020') ]
>>> [ ___ track_item: TrackItem('Sh0030') ]
>>> [ ___ valid trackitem: TrackItem('Sh0030') ]
>>> [ ___ track_item: TrackItem('Sh0040') ]
>>> [ ___ valid trackitem: TrackItem('Sh0040') ]
>>> [ ___ track_item: TrackItem('Sh0050') ]
>>> [ ___ valid trackitem: TrackItem('Sh0050') ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D14693488> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D1A0034C8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D18CE3588> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D18CE3C48> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D18C83788> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D18C83D48> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D18C85E88> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D18C85988> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D18769488> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D187691C8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D22E72808> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D22E72B88> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D22E727C8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D22E72608> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D22E72DC8> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D22E72B48> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D17F5DE48> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D17F5DD88> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.BinOp object at 0x0000018D22E72D08> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ malformed node or string: <_ast.Attribute object at 0x0000018D22E72F88> ]
*** WRN: >>> { openpype.hosts.hiero.api.lib }: [ invalid syntax (<unknown>, line 1) ]
>>> [ Found match in root "work". ]
>>> [ Found match in root "work". ]
>>> [ Found match in root "work". ]
>>> [ Found match in root "work". ]

[cuID:OP-3685]

iLLiCiTiT commented 2 years ago

It looks like you've removed optional marks for frame key. Default publish template looks like this: {root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/{@version}/{project[code]}_{asset}_{subset}_{@version}<_{output}><.{@frame}><_{udim}>.{ext}

{@frame} is replaced by content in project_anatomy/templates/defaults/frame to make sure frames have same padding. The same can be said about {@version} it looks like you've both replaced with {frame} and {version} in file template. Content between <{something ... }> is "optional", that being said if contains missing keys during formating they're just skipped. It looks like you've removed them too.

If you'll change the publish templates it should work just fine. Folder: {root[work]}/{project[name]}/{hierarchy}/Publish/{asset}/{task[name]}/{@version} File: {project[code]}_{asset}_{@version}<_{@frame}><_{udim}>.{ext}

Issue n2: Conform in kitsu will maybe cause some other unrelated issues to integrator. At this moment kitsu can't handle instances with different assets, that is base of editorial publishing.