mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
Squashed commit of the following:
commit2312a5432cMerge:af6415562b309565Author: Milan Kolar <milan@orbi.tools> Date: Wed Nov 27 11:13:41 2019 +0000 Merged in hotfix/integrate_ftrack_hierarchy_exception (pull request #385) fix(ftrack): removing gibberish code - just a quick patch for a case Approved-by: Milan Kolar <milan@orbi.tools> commitaf64155661Merge:f7551605ea379739Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 26 11:25:44 2019 +0000 Merged in feature/PYPE-504_run_action_on_auto_sync (pull request #380) feature/PYPE-504_run_action_on_auto_sync Approved-by: Milan Kolar <milan@orbi.tools> commitea3797391bMerge:aeaef2faf7551605Author: Milan Kolar <milan@orbi.tools> Date: Tue Nov 26 12:24:07 2019 +0100 Merge branch 'refs/heads/develop' into feature/PYPE-504_run_action_on_auto_sync # Conflicts: # pype/ftrack/events/event_sync_to_avalon.py commitf755160591Merge:be1618177dcf0d5fAuthor: Milan Kolar <milan@orbi.tools> Date: Tue Nov 26 12:15:28 2019 +0100 Merge branch 'develop' of bitbucket.org:pypeclub/pype into develop commit2b30956579Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 26 12:12:12 2019 +0100 fix(ftrack): removing gibberish code - just a quick patch for a case commitbe161817f7Author: Milan Kolar <milan@orbi.tools> Date: Tue Nov 26 12:00:24 2019 +0100 hotfix wrong imports commit7dcf0d5ffaMerge:474e241eecc3716dAuthor: Jakub Ježek <jakub@pype.club> Date: Tue Nov 26 10:43:21 2019 +0000 Merged in hotfix/publish-plugin-improvements (pull request #377) Publishing plugin improvements Approved-by: Milan Kolar <milan@orbi.tools> commit474e241e16Author: Milan Kolar <milan@orbi.tools> Date: Tue Nov 26 11:38:12 2019 +0100 fix add task to assetversion only if needed commite231f4f5d2Author: Milan Kolar <milan@orbi.tools> Date: Tue Nov 26 11:37:50 2019 +0100 bugfix: sync to avalon to use latest ftrack api commit799991d77fMerge:f63dd1c09a167becAuthor: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 26 10:30:36 2019 +0000 Merged in hotfix/rest_api_minor_fixes (pull request #382) Hotfix/rest api minor fixes Approved-by: Milan Kolar <milan@orbi.tools> commit9a167bec7fAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Nov 25 10:50:46 2019 +0100 CustomNone moved to pype's lib commitd30cc41e8bAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Nov 25 10:50:22 2019 +0100 import fixes commit343cdf55c1Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Nov 25 10:49:52 2019 +0100 formatting fixes commitf63dd1c048Author: Milan Kolar <milan@orbi.tools> Date: Fri Nov 22 18:15:57 2019 +0100 return capture to vendors commit6e2fdb880cAuthor: Milan Kolar <milan@orbi.tools> Date: Fri Nov 22 17:46:19 2019 +0100 remove all but ftrack old api packages and change imports commit593a98a385Merge:b8603db673886c50Author: Toke Jepsen <tokejepsen@bumpybox.com> Date: Thu Nov 21 20:12:32 2019 +0000 Merged in tokejepsen/pype/feature/nuke_validate_knobs (pull request #280) Validate knobs to studio presets. Approved-by: Milan Kolar <milan@orbi.tools> commitb8603db6faMerge:e561384e562c5a8eAuthor: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Nov 21 20:10:30 2019 +0000 Merged in feature/trigger_event_method (pull request #372) added trigger event method to base handler Approved-by: Milan Kolar <milan@orbi.tools> commite561384eaeMerge:3ed1b4e738198124Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Nov 21 20:09:45 2019 +0000 Merged in bugfix/fix_status_changes_on_app (pull request #369) Bugfix/fix status changes on app Approved-by: Milan Kolar <milan@orbi.tools> commit3ed1b4e7beMerge:1b8b9760413dfc6aAuthor: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Nov 21 20:03:52 2019 +0000 Merged in feature/seed_ftrack_action (pull request #375) feature/seed ftrack action Approved-by: Milan Kolar <milan@orbi.tools> commit1b8b976088Merge:c6e7e9fd3f3932cfAuthor: Toke Jepsen <tokejepsen@bumpybox.com> Date: Thu Nov 21 20:00:39 2019 +0000 Merged in tokejepsen/pype/feature/maya_look_force_copy (pull request #275) Enable "Force Copy" option. Approved-by: Milan Kolar <milan@orbi.tools> commitc6e7e9fd2bMerge:0351c05d246072f3Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Nov 21 19:55:59 2019 +0000 Merged in bugfix/event_server_traceback (pull request #371) use logging traceback print instead of traceback module Approved-by: Milan Kolar <milan@orbi.tools> commit0351c05d2eMerge:61b8ebdc40ff5309Author: Jakub Ježek <jakub@pype.club> Date: Thu Nov 21 17:39:52 2019 +0000 Merged in feature/nuke-validate-write-legacy (pull request #374) Nuke Validate Write Node Lekacy Approved-by: Milan Kolar <milan@orbi.tools> commit40ff53098fAuthor: Jakub Jezek <jakub@pype.club> Date: Thu Nov 21 18:33:07 2019 +0100 typo(nuke): fixing add_family commit61b8ebdcf7Merge:4201ba17256377c3Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Nov 21 13:45:25 2019 +0000 Merged in bugfix/PYPE-591_hier_attrs_fix (pull request #379) bugfix/PYPE-591_hier_attrs_fix Approved-by: Milan Kolar <milan@orbi.tools> commitaeaef2fa02Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Thu Nov 21 11:50:42 2019 +0100 current sync to avalon will trigger sync to avalon action on checked auto-sync commit256377c36fAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Nov 20 19:49:52 2019 +0100 replaced CustomAttributeValue with ContextCustomAttributeValue in queries to get all attributes commitecc3716d1bMerge:ba5796eb4201ba17Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 20 09:26:00 2019 +0100 Merge branch 'develop' into hotfix/publish-plugin-improvements commitba5796ebd8Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 20 09:25:02 2019 +0100 doc(nuke): improving assert message commit20270715ccAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 20 09:24:19 2019 +0100 fix(global): removing duplicity in families commit5c321a6747Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 20 09:23:42 2019 +0100 feat(global): cleanup is now turned on only if successful publishing commit4201ba173dMerge:6f2282600af320f9Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 19 22:26:41 2019 +0000 Merged in feature/mongo_or_query (pull request #356) feature/mongo_or_query Approved-by: Milan Kolar <milan@orbi.tools> commit6f22826041Merge:dc0bd2dd06e55d53Author: Ondřej Samohel <annatar@annatar.net> Date: Tue Nov 19 22:25:51 2019 +0000 Merged in sync-with-3de (pull request #367) added plugins from 3de Approved-by: Milan Kolar <milan@orbi.tools> commitdc0bd2dd39Merge:eebb2511e2ede5d0Author: Ondřej Samohel <annatar@annatar.net> Date: Tue Nov 19 22:24:26 2019 +0000 Merged in bugfix/3de-sync-fixes (pull request #368) small bugfixes arising from syncing with 3de Approved-by: Milan Kolar <milan@orbi.tools> commiteebb251112Merge:f8d389a50b1caf5cAuthor: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 19 22:23:12 2019 +0000 Merged in bugfix/ftrack_session_rollback (pull request #376) Bugfix/ftrack session rollback Approved-by: Milan Kolar <milan@orbi.tools> commitf8d389a5cbMerge:3cf76abff25aac63Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 19 22:21:24 2019 +0000 Merged in bugfix/auto_reconnect_actions (pull request #370) Bugfix/auto reconnect actions Approved-by: Milan Kolar <milan@orbi.tools> commit3cf76abf9dMerge:061e0056b5267574Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 19 22:18:45 2019 +0000 Merged in feature/PYPE-506_sync_to_avalon_action (pull request #373) feature/PYPE-506_sync_to_avalon_action Approved-by: Milan Kolar <milan@orbi.tools> commitb526757405Author: Milan Kolar <milan@pype.club> Date: Tue Nov 19 23:17:59 2019 +0100 fix grammar and tone of the user messages commit0b1caf5c0fAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 19 19:25:28 2019 +0100 removed underscores from class names commit4326e2b91eAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 19 19:24:24 2019 +0100 added few rollbacks to ftrack actions and events to prevent uncommitable session commit9924231834Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 19 19:00:50 2019 +0100 added session rollbacks to ftrack plugins commit413dfc6a03Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 19 18:33:51 2019 +0100 added current project to project list commit81dbc9a17eAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 19 18:33:38 2019 +0100 user can change number of created instances commit9e74d08670Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 19 18:14:19 2019 +0100 added icon commit6acbd7c799Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 19 18:09:46 2019 +0100 first version of seed action for project entities seeding commit1e67a5bc5bAuthor: Jakub Jezek <jakub@pype.club> Date: Tue Nov 19 17:47:16 2019 +0100 feat(nuke): improvements on fix method commitf0618af38eAuthor: Jakub Jezek <jakub@pype.club> Date: Tue Nov 19 17:46:52 2019 +0100 feat(nuke): upgrading collect legacy write to see new version of write commit30f854e872Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 19 17:46:16 2019 +0100 fix(nuke): family and families definition improvement collect instances commit061e0056e5Merge:d15c57b53833adb3Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 19 15:21:47 2019 +0000 Merged in feature/action_preregister_implementation (pull request #354) Feature/action preregister implementation Approved-by: Milan Kolar <milan@orbi.tools> commitd15c57b57fMerge:b567af16312d3c96Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Nov 19 14:52:30 2019 +0000 Merged in feature/advanced_rest_api (pull request #334) Feature/advanced rest api Approved-by: Milan Kolar <milan@orbi.tools> commitf25aac63b2Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 18:38:36 2019 +0100 removed unnecessary bool changes commitedd3ad2e57Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 18:35:08 2019 +0100 action server is not in daemon thread anymore commit0e5cb8652cAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 18:15:41 2019 +0100 added one more check on start action server commitdb77c06555Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 18:15:25 2019 +0100 log fix commit1750d565b4Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 17:44:46 2019 +0100 close connections to mongo and ftrack after synchronization commitccc99c50e0Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 17:42:12 2019 +0100 fixed discovery of sync to avalon action commit78a1172ad9Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 17:41:44 2019 +0100 enhanced mongo db connector commitb609e7e892Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 17:07:34 2019 +0100 sync to avalon and hierarchical attrs actions were removed and replaced with new sync to avalon commit562c5a8e69Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 16:30:42 2019 +0100 added trigger event method to base handler commit246072f39fAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 16:28:57 2019 +0100 use logging traceback print instead of traceback module commit0f7c320ad4Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 16:13:29 2019 +0100 changed bool for visibility of reset action server to not confuse users that reset is not there but stop is commit2f8f0c5bcaAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 16:11:11 2019 +0100 changed logic of action server processing in ftrack module, now is checking if is possible to connect to ftrack in while loop commit2c3ebb0c13Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 16:08:06 2019 +0100 added exception message when there are no events to register commitdaee320863Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 16:07:36 2019 +0100 check_ftrack_url has moved from event_server_cli to lib to be importable commit38198124e4Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 14:36:37 2019 +0100 removed unnecesary commit commite66a3e1b38Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 14:25:13 2019 +0100 added more necessary rollbacks commit67e9089638Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Nov 15 14:19:00 2019 +0100 added while loop so more than one status may be tried and rollback is called on session if change failed commitb567af166dAuthor: Milan Kolar <milan@orbi.tools> Date: Thu Nov 14 11:21:55 2019 +0100 bugfix/environment_crashing_on_floats commite2ede5d047Author: Ondrej Samohel <ondrej@samohel.cz> Date: Wed Nov 13 22:39:37 2019 +0100 small bugfixes arising from syncing with 3de commitf263eabe82Merge:13c46a8ca03e4862Author: Jakub Ježek <jakub@pype.club> Date: Wed Nov 13 14:12:18 2019 +0000 Merged in feature/nuke-publish-grouping (pull request #366) Nuke Subset Grouping commit13c46a8cd8Merge:df29a22e752af5e5Author: Toke Jepsen <tokejepsen@bumpybox.com> Date: Wed Nov 13 13:45:47 2019 +0000 Merged in tokejepsen/pype/feature/nukestudio_comments (pull request #279) Publish comments from NukeStudio. commitdf29a22e87Merge:1e523caa963d6fb1Author: Toke Jepsen <tokejepsen@bumpybox.com> Date: Wed Nov 13 13:20:58 2019 +0000 Merged in tokejepsen/pype/validate_containers (pull request #348) Validate containers. commit06e55d533aAuthor: Ondrej Samohel <ondrej@samohel.cz> Date: Wed Nov 13 11:59:22 2019 +0100 added plugins from 3de commit1e523caa52Merge:ade6a02190da0921Author: Jakub Ježek <jakub@pype.club> Date: Wed Nov 13 09:17:59 2019 +0000 Merged in feature/nuke-create-backdrop (pull request #360) Nuke: Create plugin for backdrop creation commita03e486265Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 13 10:12:29 2019 +0100 fix(nuke): validate render frames correct family if `no` render commit561c54cab2Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 13 10:11:18 2019 +0100 fix(nuke): validators change to correct `render` family commit256c23d8ecAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 13 10:10:06 2019 +0100 feat(nuke): collector are now adding subset group attr to instance commit330b9bad87Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 13 10:09:20 2019 +0100 fix(nuke): collect instances getting correctly writes family commitcc866903c8Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 13 10:08:36 2019 +0100 fix(nuke): create write family and families mismatch commitcb8aff44a4Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 13 10:07:48 2019 +0100 feat(global): integrate new added support for subset group attribute commitade6a02115Merge:2100a3e6378d363bAuthor: Ondřej Samohel <annatar@annatar.net> Date: Wed Nov 13 08:33:58 2019 +0000 Merged in fix/maya-fps-mapping (pull request #365) fixed casting to integer for fps Approved-by: Milan Kolar <milan@orbi.tools> commit48c4bd2103Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 12 17:50:08 2019 +0100 feat(nuke): adding grouping subset to write instances commitc3452d3594Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 12 17:49:44 2019 +0100 feat(global): adding subset grouping ability to integrate new commit378d363ba8Author: Ondrej Samohel <ondrej@samohel.cz> Date: Tue Nov 12 13:57:19 2019 +0100 fixed casting to integer for fps commit2100a3e666Merge:69639b30ca922280Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 12 12:53:41 2019 +0100 Merge remote-tracking branch 'origin/develop' into develop commit14d4f4ff8aMerge:43d916af509578c4Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 12 12:53:15 2019 +0100 Merge branch 'hotfix/nuke-workfile-publish' commit69639b30a0Merge:68bad839509578c4Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 12 12:53:14 2019 +0100 Merge branch 'hotfix/nuke-workfile-publish' into develop commit509578c4efAuthor: Jakub Jezek <jakub@pype.club> Date: Tue Nov 12 12:52:57 2019 +0100 fix(nuke): nuke little fixes commitca9222804bAuthor: Milan Kolar <milan@orbi.tools> Date: Mon Nov 11 13:30:31 2019 +0100 missing variable when mongo is unavailable commit1559b8db91Merge:8c07ebf143d916afAuthor: Milan Kolar <milan@orbi.tools> Date: Mon Nov 11 12:20:01 2019 +0100 Merge tag 'sigkill_arguments' into develop commit43d916af6aMerge:b37586b6129c264fAuthor: Milan Kolar <milan@orbi.tools> Date: Mon Nov 11 12:20:00 2019 +0100 Merge branch 'hotfix/sigkill_arguments' commit129c264f49Author: Milan Kolar <milan@orbi.tools> Date: Mon Nov 11 12:19:37 2019 +0100 fixing signal errors commitb37586b6b1Merge:c5aa175894e302eeAuthor: Milan Kolar <milan@orbi.tools> Date: Mon Nov 11 11:49:45 2019 +0100 Merge branch 'master' of bitbucket.org:pypeclub/pype commit8c07ebf104Merge:ecc7ac5368bad839Author: Milan Kolar <milan@orbi.tools> Date: Mon Nov 11 11:43:51 2019 +0100 Merge branch 'develop' of bitbucket.org:pypeclub/pype into develop commit68bad8394fMerge:5ecb747661c9de58Author: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 19:26:35 2019 +0100 Merge remote-tracking branch 'origin/develop' into develop commit94e302eed6Merge:6d2a481af3549af4Author: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 19:26:22 2019 +0100 Merge remote-tracking branch 'origin/master' commit5ecb74760aMerge:1fca6f1d6ae508d3Author: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 19:25:46 2019 +0100 Merge branch 'hotfix/nuke-publish-fixes' into develop commit6d2a481a59Merge:714131906ae508d3Author: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 19:25:46 2019 +0100 Merge branch 'hotfix/nuke-publish-fixes' commit6ae508d383Author: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 19:24:43 2019 +0100 typo(nuke): removing prints commitecc7ac5335Merge:61c9de58c5aa1758Author: Milan Kolar <milan@orbi.tools> Date: Thu Nov 7 18:40:45 2019 +0100 Merge tag 'mixed_unc_and_mapped_paths' into develop commitc5aa17583eMerge:f3549af4e99df15bAuthor: Milan Kolar <milan@orbi.tools> Date: Thu Nov 7 18:40:44 2019 +0100 Merge branch 'hotfix/mixed_unc_and_mapped_paths' commite99df15b1aAuthor: Milan Kolar <milan@orbi.tools> Date: Thu Nov 7 18:39:55 2019 +0100 make sure we're not comparing mounted to UNC path in integrator. commit59b4178fdaAuthor: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 18:10:49 2019 +0100 fix(nuke): create read from write - wasn't returning correctly if nothing found in file path commitf3549af450Merge:71413190d64bc838Author: Ondřej Samohel <annatar@annatar.net> Date: Thu Nov 7 16:24:05 2019 +0000 Merged in hotfix/farm_rendering (pull request #363) hotfix for various aspect of farm rendering Approved-by: Milan Kolar <milan@orbi.tools> commit61c9de587fMerge:1fca6f1dd64bc838Author: Ondřej Samohel <annatar@annatar.net> Date: Thu Nov 7 16:23:39 2019 +0000 Merged in hotfix/farm_rendering (pull request #364) hotfix for various aspect of farm rendering Approved-by: Milan Kolar <milan@orbi.tools> commit6f5f823e44Author: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 17:23:15 2019 +0100 fix(nuke): create_write plugin improvements - selected node operation - what if the node exists already commitd64bc8388aAuthor: Ondrej Samohel <ondrej@samohel.cz> Date: Thu Nov 7 16:22:26 2019 +0100 fixed python2/3 compatibility commit86ddb924b5Author: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 15:59:18 2019 +0100 feat(nuke): rewriting create write plugin - self.families and self.nCass for easier applications commit803936950aAuthor: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 15:56:25 2019 +0100 fix(nuke): colorspace presets didn't work with families commit2ef74e33cbAuthor: Jakub Jezek <jakub@pype.club> Date: Thu Nov 7 15:55:43 2019 +0100 fix(nuke): overwriting create write function - adding input node to connect to selected node in Create - fixing prenode to be functional if more node before write need to be added [prep for mask/prerender] - `preset` data rewrited to be `families` commitba32b5f4a1Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 23:44:48 2019 +0100 typo(nuke): removing todo commit7bb247528cAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 23:44:17 2019 +0100 fix(nuke): didn't reload modules correctly python 27 and 3 supported commitfd2e0f8c27Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 15:52:19 2019 +0100 fix(nuke): nuke.templates renamed to nuke.presets - it was still remaining as templates in some modules commit637862f22dAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 15:51:32 2019 +0100 fix(nuke): create plugin correct way of working with families commitfe918b1bd6Merge:2d6e11c11fca6f1dAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 14:36:24 2019 +0100 Merge branch 'develop' into hotfix/nuke-publish-fixes commit1fca6f1d36Merge:c83b4ee5a6daff37Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 14:21:08 2019 +0100 Merge branch 'hotfix/ftrack-event-thumbnail-sintax_error' into develop commit714131908bMerge:e2669ddea6daff37Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 14:21:08 2019 +0100 Merge branch 'hotfix/ftrack-event-thumbnail-sintax_error' commita6daff37eeAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 14:20:39 2019 +0100 fix(ftrack): thumbnail event syntax error commitc83b4ee58cMerge:cb6ffb0fdd967d87Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 14:06:36 2019 +0100 Merge branch 'hotfix/ftrack-signals' into develop commite2669dde7dMerge:85c9422add967d87Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 14:06:36 2019 +0100 Merge branch 'hotfix/ftrack-signals' commit50438283cdAuthor: Ondrej Samohel <ondrej@samohel.cz> Date: Wed Nov 6 14:06:24 2019 +0100 hotfix for various aspect of farm rendering commitdd967d87aaAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 14:06:06 2019 +0100 fix(ftrack): signals for linux commit85c9422a25Merge:bb5100089d32095cAuthor: Milan Kolar <milan@orbi.tools> Date: Wed Nov 6 10:34:12 2019 +0000 Merged in release/2.3.0 (pull request #361) Realease 2.3.0 Approved-by: Milan Kolar <milan@orbi.tools> commit9d32095c3aAuthor: Milan Kolar <milan@orbi.tools> Date: Wed Nov 6 10:38:18 2019 +0100 update changelog commit90da0921d9Merge:61978b38cb6ffb0fAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 10:27:21 2019 +0100 Merge branch 'develop' into feature/nuke-create-backdrop commit45b2ec6020Merge:e0b4bec2cb6ffb0fAuthor: Milan Kolar <milan@orbi.tools> Date: Wed Nov 6 10:23:07 2019 +0100 Merge branch 'refs/heads/develop' into release/2.3.0 commitcb6ffb0f63Merge:321028eab22f7536Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Wed Nov 6 09:21:41 2019 +0000 Merged in feature/faster_loader_actions (pull request #357) feature/ faster loader actions menu Approved-by: Milan Kolar <milan@orbi.tools> commit321028ead8Merge:16463867275bd6daAuthor: Jakub Ježek <jakub@pype.club> Date: Wed Nov 6 09:20:57 2019 +0000 Merged in hotfix/eallin_fixes_nks_nk (pull request #359) fix(nks): thumbnails, build workfile with preview mov Approved-by: Milan Kolar <milan@orbi.tools> commit16463867a7Merge:12d8c5202d6e11c1Author: Jakub Ježek <jakub@pype.club> Date: Wed Nov 6 09:20:30 2019 +0000 Merged in hotfix/nuke-publish-fixes (pull request #358) Nuke publising fixes related to avalon.nuke Approved-by: Milan Kolar <milan@orbi.tools> commit12d8c520e2Merge:e6ac4fcb95655d00Author: Ondřej Samohel <annatar@annatar.net> Date: Wed Nov 6 09:19:36 2019 +0000 Merged in feature/PYPE-580-yeti-connect-mesh-when-loading (pull request #346) connect shapes to loaded Yeti Rig Approved-by: Milan Kolar <milan@orbi.tools> commite6ac4fcb75Merge:4b8aa14cb3dbf0f2Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Wed Nov 6 09:18:52 2019 +0000 Merged in bugfix/thumbnail_event_on_not_task (pull request #355) fixed not crashing event thumbnail updates if thumbnail is not happening on task Approved-by: Milan Kolar <milan@orbi.tools> commit275bd6da64Merge:c009f6614b8aa14cAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 10:09:09 2019 +0100 Merge branch 'develop' into hotfix/eallin_fixes_nks_nk commit2d6e11c19aAuthor: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 01:17:42 2019 +0100 feat(nuke): node avalon knob prefix as list for backward compatibility - `avalon:` or `ak:` - omit tags for later clearing in pype.nuke.presets commitf35f4c1e93Author: Jakub Jezek <jakub@pype.club> Date: Wed Nov 6 01:14:09 2019 +0100 feat(nuke): templates.py to presets.py - rename key `preset` to `families` - `families`: looping family as preset - omit tags for later clearing commitb22f7536caAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 5 18:27:09 2019 +0100 moved pymel.core imports to process parts of actions to not slow down discover commit4cfb4d2558Merge:4b8aa14ca2574043Author: Jakub Jezek <jakub@pype.club> Date: Tue Nov 5 14:40:58 2019 +0100 Merge branch 'hotfix/nuke_publish_load_workflow_improvment' into hotfix/nuke-publish-fixes commita2574043c8Merge:1df729c24b8aa14cAuthor: Jakub Jezek <jakub@pype.club> Date: Tue Nov 5 14:06:38 2019 +0100 Merge branch 'hotfix/nuke_publish_fixes' into hotfix/nuke_publish_load_workflow_improvment commit4b8aa14c55Merge:2cb1c7ef1df729c2Author: Jakub Ježek <jakub@pype.club> Date: Tue Nov 5 10:13:08 2019 +0000 Merged in hotfix/nuke_publish_load_workflow_improvment (pull request #352) feat(nuke): improving nuke features Approved-by: Milan Kolar <milan@orbi.tools> commit2cb1c7efe3Merge:1cbf9c5ea188d37dAuthor: Jakub Ježek <jakub@pype.club> Date: Tue Nov 5 10:12:32 2019 +0000 Merged in hotfix/validate_ftrack_attributes (pull request #353) Hotfix/validate ftrack attributes Approved-by: Milan Kolar <milan@orbi.tools> commit1cbf9c5eefMerge:4dee025cb170fe1aAuthor: Jakub Ježek <jakub@pype.club> Date: Tue Nov 5 10:11:53 2019 +0000 Merged in hotfix/integrate_new_image_sequence (pull request #351) removing hashes from path in image sequence Approved-by: Milan Kolar <milan@orbi.tools> commit0af320f9f7Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 5 10:33:17 2019 +0100 $or queries replaced with $in which is much easier to read in code and prepare commitb3dbf0f228Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 5 10:29:02 2019 +0100 variable name fix commit26454a752bAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 5 10:23:49 2019 +0100 fixed not crashing event thumbnail updates if thumbnail is not happening on task commit3833adb30aAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 5 10:19:50 2019 +0100 use warning log instead of info commit0957cffbfdAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 5 10:09:21 2019 +0100 created PreregisterException to recognize preregistration failed and do not print traceback commit91832e50edAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Nov 5 10:08:37 2019 +0100 actions rv and djv view use preregister instead of overriding register method commit1df729c206Author: Jakub Jezek <jakub@pype.club> Date: Mon Nov 4 20:31:21 2019 +0100 fix(nuke): version data frameStart/end excluded handles commita188d37d62Author: Jakub Jezek <jakub@pype.club> Date: Mon Nov 4 19:37:33 2019 +0100 fix(gloabal): validator didn't work properly commit66d0b1b253Author: Jakub Jezek <jakub@pype.club> Date: Mon Nov 4 19:28:39 2019 +0100 feat(nuke): improving nuke features - loader reads fpath and convert to hashes in path - adding `review` knob to write - removing extract_frames.py to _unused plugins commitb170fe1a6fAuthor: Jakub Jezek <jakub@pype.club> Date: Mon Nov 4 19:23:29 2019 +0100 fix(global): data.path without hashes - removing hashes from data.path commit95655d0056Author: Ondrej Samohel <ondrej@samohel.cz> Date: Mon Nov 4 16:04:54 2019 +0100 added texture extraction to yeti rig extractor commit4dee025cfeMerge:f7dae6aad698a577Author: Jakub Ježek <jakub@pype.club> Date: Mon Nov 4 15:04:03 2019 +0000 Merged in hotfix/nuke-custom-ocio-path (pull request #350) Nuke Support for OCIO custom path commitd698a57733Author: Jakub Jezek <jakub@pype.club> Date: Mon Nov 4 15:59:35 2019 +0100 fix(nuke): adding custom ocio path support commitf7dae6aa5dMerge:bce9abe1fdccabeeAuthor: Toke Jepsen <tokejepsen@bumpybox.com> Date: Mon Nov 4 13:56:57 2019 +0000 Merged in tokejepsen/pype/deadline_priority_nuke (pull request #349) Support Deadline priority in Nuke. Approved-by: Jakub Ježek <jakub@pype.club> commitbce9abe189Merge:d40ba5ebf217899eAuthor: Ondřej Samohel <annatar@annatar.net> Date: Mon Nov 4 13:42:06 2019 +0000 Merged in hofix/rv-action-preset-error (pull request #344) fixed rv action not to load when preset is missing commitfdccabeeb9Author: Toke Jepsen <tokejepsen@gmail.com> Date: Sun Nov 3 18:45:30 2019 +0000 Support Deadline priority in Nuke. commit963d6fb18fAuthor: Toke Jepsen <tokejepsen@gmail.com> Date: Sun Nov 3 18:41:23 2019 +0000 Validate containers. commit73886c5079Author: Toke Jepsen <tokejepsen@gmail.com> Date: Sun Nov 3 18:43:57 2019 +0000 Bugfix for string based knobs. commit5dcffac491Author: Toke Jepsen <tokejepsen@gmail.com> Date: Sun Nov 3 18:43:22 2019 +0000 Validate knobs inside write group. commit66544273fdAuthor: Ondrej Samohel <ondrej@samohel.cz> Date: Fri Nov 1 19:06:00 2019 +0100 connect shapes to loaded Yeti Rig commitd40ba5ebbdMerge:9d994dd72d65ab83Author: Jakub Ježek <jakub@pype.club> Date: Fri Nov 1 17:06:36 2019 +0000 Merged in hotfix/assum-dest-ftrack-hierarchy (pull request #345) Hotfix/assum dest ftrack hierarchy Approved-by: Milan Kolar <milan@orbi.tools> commitc009f661e6Author: Jana Mizikova <mizikova.jana@gmail.com> Date: Fri Nov 1 17:06:35 2019 +0100 fix(nks): thumbnails, build workfile with preview mov - thumbnail for clip is taken from middle of duration commite0b4bec245Merge:00b497cc2d65ab83Author: Milan Kolar <milan@orbi.tools> Date: Fri Nov 1 15:34:56 2019 +0100 Merge remote-tracking branch 'refs/remotes/origin/hotfix/assum-dest-ftrack-hierarchy' into release/2.3.0 commit2d65ab83f1Author: Jana Mizikova <mizikova.jana@gmail.com> Date: Fri Nov 1 11:27:46 2019 +0100 fix(plugins): changing the way ftrack is querying entity_type this will remove the server entity duplicity error on mysql commitd2c8810470Author: Jana Mizikova <mizikova.jana@gmail.com> Date: Fri Nov 1 11:25:48 2019 +0100 fix(plugins): ditching `silo` from assumig destination commitf217899ea1Author: Ondřej Samohel <annatar@annatar.net> Date: Fri Nov 1 09:09:16 2019 +0000 fixed rv action not to load when preset is missing commit312d3c96abMerge:588199829d994dd7Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Oct 31 23:35:28 2019 +0100 Merge branch 'develop' into feature/advanced_rest_api commit00b497cc21Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 20:16:16 2019 +0100 update changelog commit2c6b451485Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 20:15:13 2019 +0100 update chagnelog commit8f1ff9e31bAuthor: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 20:07:03 2019 +0100 update changelog and version commit9d994dd7fcMerge:92ca7d900de66c1cAuthor: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Oct 31 18:30:59 2019 +0000 Merged in hotfix/job_killer_log_fix (pull request #341) fixed logging of job killer action Approved-by: Milan Kolar <milan@orbi.tools> commit92ca7d9041Merge:78519aa0384843a8Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 18:11:42 2019 +0000 Merged in feature/PYPE-349_parallel_event_server (pull request #343) Feature/PYPE-349 parallel event server commit78519aa066Merge:ad41ffaf6f93743cAuthor: Jakub Trllo <jakub.trllo@gmail.com> Date: Thu Oct 31 18:06:54 2019 +0000 Merged in feature/PYPE-349_parallel_event_server (pull request #330) Feature/PYPE-349 parallel event server Approved-by: Milan Kolar <milan@orbi.tools> commit384843a8b4Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 18:52:35 2019 +0100 change `old way` to `legacy commit8df857bb89Merge:c3cbab14ad41ffafAuthor: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 18:42:26 2019 +0100 Merge branch 'develop' into feature/PYPE-349_parallel_event_server commitc3cbab14b9Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 18:42:15 2019 +0100 missing self commitad41ffafe5Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 18:15:30 2019 +0100 hotfix: frames in representation commit3c4083fb99Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 17:07:54 2019 +0100 hotfix: yeti frames in integrator commitb02ca38674Merge:38981581dbe79c77Author: Milan Kolar <milan@orbi.tools> Date: Thu Oct 31 08:41:20 2019 +0000 Merged in hotfix/yeti_cache (pull request #342) add frames to published representations commitdbe79c7741Author: Jana Mizikova <mizikova.jana@gmail.com> Date: Wed Oct 30 19:06:18 2019 +0100 add frames to published representations commit3898158144Merge:48efc6bc62851494Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Wed Oct 30 11:56:18 2019 +0000 Merged in bugfix/PYPE-578_idle_manager_bug (pull request #340) Bugfix/PYPE-578 idle manager bug Approved-by: Milan Kolar <milan@orbi.tools> commit48efc6bceeMerge:6195e16b64e86e39Author: Ondřej Samohel <annatar@annatar.net> Date: Wed Oct 30 11:55:46 2019 +0000 Merged in hotfix/maya-set-fps (pull request #339) fixed Maya set fps Approved-by: Milan Kolar <milan@orbi.tools> commit6195e16b9eMerge:ff44a00383367047Author: Ondřej Samohel <annatar@annatar.net> Date: Wed Oct 30 11:55:13 2019 +0000 Merged in feature/PYPE-523-validator-for-comparing-arbitrary-attributes (pull request #335) Global validator for ftrack attributes Approved-by: Milan Kolar <milan@orbi.tools> commit0de66c1c45Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 30 10:48:25 2019 +0100 fixed logging of job killer action commit6285149489Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 30 10:44:47 2019 +0100 enhanced signal dictionary creating commit744a606d69Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 30 10:44:19 2019 +0100 added try except of Attribute error to catch not existing thread error commitff44a00354Author: Milan Kolar <milan@orbi.tools> Date: Tue Oct 29 20:57:41 2019 +0100 hotfix: ignore shapes when referencing and preserve references when importing commit6f93743c8dAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 18:01:02 2019 +0100 added old_way_server which can handle same way as was before and restart event server when ftrack connection fails commit92ccd406c5Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 18:00:20 2019 +0100 created exception for mongo permission error commit5b70ddf32fAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 17:59:36 2019 +0100 added `oldway` argument to event server cli commit75ce8f1196Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 17:58:29 2019 +0100 added subprocess file for oldway event server commit61978b38cfMerge:317b13b5160d285dAuthor: Jakub Jezek <jakub@pype.club> Date: Tue Oct 29 16:58:00 2019 +0100 Merge branch 'develop' into feature/nuke-create-backdrop commit64e86e3988Author: Ondřej Samohel <annatar@annatar.net> Date: Tue Oct 29 15:41:45 2019 +0000 fixed Maya set fps commit160d285d9eMerge:ed48b8521b936d6eAuthor: Milan Kolar <milan@orbi.tools> Date: Tue Oct 29 15:54:18 2019 +0100 Merge branch 'develop' of bitbucket.org:pypeclub/pype into develop commit1b936d6e81Merge:749852fc5ccc34abAuthor: Jana Mizikova <mizikova.jana@gmail.com> Date: Tue Oct 29 14:53:39 2019 +0000 Merged in bugfix/validate-unicode-strings (pull request #326) validate unicode strings Approved-by: Milan Kolar <milan@orbi.tools> commited48b85233Author: Milan Kolar <milan@orbi.tools> Date: Tue Oct 29 15:50:22 2019 +0100 missing families commit749852fc8bMerge:e2446100b3dca2d0Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Oct 29 14:18:54 2019 +0000 Merged in hotfix/review_integrate_fix (pull request #337) Hotfix/review integrate fix commite24461007dMerge:e35e4f18e52e6241Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Tue Oct 29 14:17:22 2019 +0000 Merged in hotfix/standalone_model_fix (pull request #338) Hotfix/standalone model fix commitb3dca2d0ceAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 15:12:37 2019 +0100 fixed ftrack integration commite35e4f1899Author: Milan Kolar <milan@orbi.tools> Date: Tue Oct 29 14:42:45 2019 +0100 fix families in subset publishing commit317b13b5f9Author: Jakub Jezek <jakub@pype.club> Date: Tue Oct 29 14:22:05 2019 +0100 feat(nuke): add create plugin for backdrop creation commite52e6241fbAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 11:05:41 2019 +0100 version is refreshed on pyblish close commit1b27cc59f8Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 11:05:31 2019 +0100 get_parents get parents from entity instead of getting through all parents if possible commit918d23c9abAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 10:56:06 2019 +0100 fixed role variable naming and way of getting asset commitdede49f2c6Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 10:47:28 2019 +0100 extract review creates mov in temp instead of stagigng dir commitb3c693fc5aAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 29 10:47:02 2019 +0100 removed delete tag from plates when collecting commit10d6956037Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:27:31 2019 +0200 event server will wait some time if subprocess crashed many times in row commit38a6c84fe5Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:26:38 2019 +0200 its used lib to get mongo port and host in event server cli commit11f0c41e90Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:25:44 2019 +0200 crash all server if mongo error happened commit5d6f91d614Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:24:36 2019 +0200 socket thread stores info if mongo error has happened during subprocess commite0f7752205Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:24:12 2019 +0200 sub event processor print traceback commit4313cc5667Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:23:52 2019 +0200 mongo permissions error is sent with socket message commit24175a2587Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:22:28 2019 +0200 atexit register has args now commite7c9a61b2eAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 25 18:21:44 2019 +0200 added lib to ftrack_server with functios able to handle mongo url parts commitebbc5f6fa9Author: Milan Kolar <milan@orbi.tools> Date: Fri Oct 25 16:20:23 2019 +0200 hotfix: forgotten instance of silos commit83367047abAuthor: Ondrej Samohel <ondrej@samohel.cz> Date: Fri Oct 25 13:51:11 2019 +0200 added global validator for ftrack attributes commit588199821aAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Thu Oct 24 15:25:45 2019 +0200 removed statics server since rest api server can handle statics too commit3a5525edf6Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 18:45:41 2019 +0200 processed events older than 3 days are removed from mongo db commit7c59df5ec5Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 18:03:29 2019 +0200 max timeout of heartbeat increased to 35 commit11f4451af1Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 18:02:53 2019 +0200 added basic docstrings commitbfa61e2e98Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 17:34:11 2019 +0200 kill threads with subprocesses on exit commit565c43971cAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 17:33:32 2019 +0200 added sigkill signal commitee8f09cf46Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 16:52:07 2019 +0200 added error logs commit68fb2c2e27Merge:785926556fcc28abAuthor: Ondrej Samohel <ondrej@samohel.cz> Date: Wed Oct 23 16:49:48 2019 +0200 Merge remote-tracking branch 'origin/develop' into feature/PYPE-523-validator-for-comparing-arbitrary-attributes commitaad641f233Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 16:48:13 2019 +0200 import fixes commitac290711b9Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 16:47:45 2019 +0200 sort events by date there were stored commit45370876e3Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 15:29:05 2019 +0200 replaced args with options(kwargs) in custom db connector commit1ca674f33fAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 15:05:07 2019 +0200 added atexit to custom db connector to run uninstall on exit commit19f810ff57Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 15:01:51 2019 +0200 added check active table to custom db connector commit4290af23e7Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 14:57:53 2019 +0200 moved event server files in hierarchy commitf1c873fedcAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 14:38:32 2019 +0200 minor fixes, occupied socket ports are skipped and logger is renamed commit4921783d1aAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 14:36:54 2019 +0200 terminate signal is registered too to be able terminate subprocesses commitd1bfa2412eAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 14:33:01 2019 +0200 pymongo connection error cause that subprocess will end commitb7c2954061Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Wed Oct 23 14:26:31 2019 +0200 changed default ports commitbcf8bf17a5Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 14:02:49 2019 +0200 session instance validation also checks for process session and raises exception if does not match ftrack_api session commit28f2d14318Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 14:01:58 2019 +0200 pype logging is not used in event_server_cli for cases when mongo is not accessible and removed backup solution commit5c70f3eb13Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 12:12:54 2019 +0200 modified event_server_cli to be able run subprocesses and handle their liveability commit631dcb56eaAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 12:12:15 2019 +0200 added modified ftrack sessions, one for storing, second for processing events commit1ee8ab0dabAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 12:11:46 2019 +0200 added socket thread which is able to start subprocess with connection to specific port with sockets commit8b8427ca87Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 12:11:12 2019 +0200 added scripts to be able to be run as subprocess, one for storing, second for processing events commitf0e5f39342Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 12:02:22 2019 +0200 run server in ftrack server gives ability to use other session and not to load plugins commit43f63fd260Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 12:01:43 2019 +0200 print traceback when error during plugin registration happens commit11e2382dfdAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Tue Oct 22 12:00:04 2019 +0200 session check is happening during initialization not before register of each plugin commita2ae970b65Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Oct 21 13:42:14 2019 +0200 added docstrings commitee143aaee0Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Oct 21 13:37:09 2019 +0200 added possibility to turn off auto regex without entity specificment commit5ccc34abb4Author: Jana Mizikova <mizikova.jana@gmail.com> Date: Fri Oct 18 15:09:47 2019 +0200 validate unicode strings checking for unicode strings in environment variables that block extracting review commitd1b294e4a2Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 18 11:21:36 2019 +0200 implemented options to methods args to have access to use all optional args commite0827d0597Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 18 11:20:32 2019 +0200 added __getattribute__ to have acces to not implemented methods of pymongo db commit9233530df5Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Fri Oct 18 11:19:48 2019 +0200 added default message to NotActiveTable commit339b623e89Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Fri Oct 18 00:27:01 2019 +0200 minor changes in prefix and fullpath preparing commit70853e25e3Author: Jakub Trllo <jakub.trllo@gmail.com> Date: Fri Oct 18 00:26:23 2019 +0200 removed unused variables commit518885a39fAuthor: Jakub Trllo <jakub.trllo@gmail.com> Date: Fri Oct 18 00:26:10 2019 +0200 added docstrings commit7d623a2bb5Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Thu Oct 17 12:17:46 2019 +0200 minor change in request class commitdc14235e97Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Thu Oct 17 12:03:03 2019 +0200 rest api is not sending to callback specific data by args but send request info obj that contain all of that commitcc9dd16d98Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Thu Oct 17 11:20:52 2019 +0200 changed registering troute info are not stored to callback commitcdd6bd9c52Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Oct 14 19:09:25 2019 +0200 created first rest api for avalon module commit0ff704a733Author: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Oct 14 19:08:20 2019 +0200 enchancements of custom db connector commit1298bf73bfAuthor: iLLiCiTiT <jakub.trllo@gmail.com> Date: Mon Oct 14 19:07:52 2019 +0200 initial commit of rest api module with partially working rest api handling commit752af5e5ccAuthor: Toke Jepsen <tokejepsen@gmail.com> Date: Wed Sep 18 10:26:51 2019 +0100 Separate comments collection to plugin. commit096709abf7Merge:46c06ce207fc12bbAuthor: Toke Jepsen <tokejepsen@gmail.com> Date: Wed Sep 18 09:38:35 2019 +0100 Merge branch 'develop' into feature/nukestudio_comments # Conflicts: # pype/plugins/nukestudio/publish/collect_shots.py commitbb51000871Merge:6e294529f2d1613bAuthor: Milan Kolar <milan@pype.club> Date: Fri Sep 6 19:09:18 2019 +0200 Merge branch 'release/2.2.0' commit6e294529b8Merge:c20f4ba57dc7fbd3Author: Milan Kolar <milan@orbi.tools> Date: Fri Sep 6 17:01:23 2019 +0000 Merged in release/2.2.0 (pull request #294) Release/2.2.0 Approved-by: Milan Kolar <milan@orbi.tools> commit049e9ba716Author: Toke Jepsen <tokejepsen@gmail.com> Date: Wed Aug 21 16:43:54 2019 +0100 Validate knobs to studio presets. commit46c06ce20dAuthor: Toke Jepsen <tokejepsen@gmail.com> Date: Wed Aug 21 16:09:31 2019 +0100 Publish comments from NukeStudio. commit3f3932cff1Author: Toke Jepsen <tokejepsen@gmail.com> Date: Wed Aug 21 14:29:25 2019 +0100 Enable "Force Copy" option. In cases where hardlinking is not an option (cloud syncing), copying is the only option.
This commit is contained in:
parent
b840fca4de
commit
f9e3104042
786 changed files with 9876 additions and 168710 deletions
|
|
@ -18,3 +18,6 @@ class CreateLook(avalon.maya.Creator):
|
|||
|
||||
# Whether to automatically convert the textures to .tx upon publish.
|
||||
self.data["maketx"] = True
|
||||
|
||||
# Enable users to force a copy.
|
||||
self.data["forceCopy"] = False
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class CreateRenderGlobals(avalon.maya.Creator):
|
|||
self.log.warning("Deadline REST API url not found.")
|
||||
else:
|
||||
argument = "{}/api/pools?NamesOnly=true".format(deadline_url)
|
||||
response = requests.get(argument)
|
||||
response = self._requests_get(argument)
|
||||
if not response.ok:
|
||||
self.log.warning("No pools retrieved")
|
||||
else:
|
||||
|
|
@ -135,7 +135,7 @@ class CreateRenderGlobals(avalon.maya.Creator):
|
|||
'authToken': self._token
|
||||
}
|
||||
api_entry = '/api/pools/list'
|
||||
response = requests.get(
|
||||
response = self._requests_get(
|
||||
self.MUSTER_REST_URL + api_entry, params=params)
|
||||
if response.status_code != 200:
|
||||
if response.status_code == 401:
|
||||
|
|
@ -160,7 +160,35 @@ class CreateRenderGlobals(avalon.maya.Creator):
|
|||
api_url = "{}/muster/show_login".format(
|
||||
os.environ["PYPE_REST_API_URL"])
|
||||
self.log.debug(api_url)
|
||||
login_response = requests.post(api_url, timeout=1)
|
||||
login_response = self._requests_post(api_url, timeout=1)
|
||||
if login_response.status_code != 200:
|
||||
self.log.error('Cannot show login form to Muster')
|
||||
raise Exception('Cannot show login form to Muster')
|
||||
|
||||
def _requests_post(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.post(*args, **kwargs)
|
||||
|
||||
def _requests_get(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.get(*args, **kwargs)
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ class ImportMayaLoader(api.Loader):
|
|||
with maya.maintained_selection():
|
||||
cmds.file(self.fname,
|
||||
i=True,
|
||||
preserveReferences=True,
|
||||
namespace=namespace,
|
||||
returnNewNodes=True,
|
||||
groupReference=True,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
from avalon import api
|
||||
import pype.maya.plugin
|
||||
import os
|
||||
import pymel.core as pm
|
||||
from pypeapp import config
|
||||
|
||||
|
||||
|
|
@ -70,6 +69,7 @@ class AssProxyLoader(pype.maya.plugin.ReferenceLoader):
|
|||
|
||||
import os
|
||||
from maya import cmds
|
||||
import pymel.core as pm
|
||||
|
||||
node = container["objectName"]
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ from avalon import api
|
|||
import pype.maya.plugin
|
||||
import os
|
||||
from pypeapp import config
|
||||
import pymel.core as pm
|
||||
reload(config)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
import pymel.core as pc
|
||||
|
||||
from avalon import api
|
||||
from Qt import QtWidgets
|
||||
|
||||
|
|
@ -14,6 +12,8 @@ class ImagePlaneLoader(api.Loader):
|
|||
color = "orange"
|
||||
|
||||
def load(self, context, name, namespace, data):
|
||||
import pymel.core as pc
|
||||
|
||||
new_nodes = []
|
||||
image_plane_depth = 1000
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
|
||||
import pype.maya.plugin
|
||||
import os
|
||||
from pypeapp import config
|
||||
import pymel.core as pm
|
||||
reload(config)
|
||||
|
||||
import pype.maya.plugin
|
||||
reload(pype.maya.plugin)
|
||||
|
||||
class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""Load the model"""
|
||||
|
|
@ -19,9 +18,10 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
|||
color = "orange"
|
||||
|
||||
def process_reference(self, context, name, namespace, data):
|
||||
|
||||
import maya.cmds as cmds
|
||||
from avalon import maya
|
||||
import pymel.core as pm
|
||||
|
||||
|
||||
try:
|
||||
family = context["representation"]["context"]["family"]
|
||||
|
|
@ -42,11 +42,17 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
|||
|
||||
namespace = cmds.referenceQuery(nodes[0], namespace=True)
|
||||
|
||||
shapes = cmds.ls(nodes, shapes=True, long=True)
|
||||
print(shapes)
|
||||
|
||||
newNodes = (list(set(nodes) - set(shapes)))
|
||||
print(newNodes)
|
||||
|
||||
groupNode = pm.PyNode(groupName)
|
||||
roots = set()
|
||||
print(nodes)
|
||||
|
||||
for node in nodes:
|
||||
for node in newNodes:
|
||||
try:
|
||||
roots.add(pm.PyNode(node).getAllParents()[-2])
|
||||
except:
|
||||
|
|
@ -59,7 +65,6 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
|||
root.setParent(groupNode)
|
||||
|
||||
cmds.setAttr(groupName + ".displayHandle", 1)
|
||||
groupNode
|
||||
|
||||
presets = config.get_presets(project=os.environ['AVALON_PROJECT'])
|
||||
colors = presets['plugins']['maya']['load']['colors']
|
||||
|
|
@ -68,7 +73,7 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
|||
groupNode.useOutlinerColor.set(1)
|
||||
groupNode.outlinerColor.set(c[0], c[1], c[2])
|
||||
|
||||
self[:] = nodes
|
||||
self[:] = newNodes
|
||||
|
||||
cmds.setAttr(groupName + ".displayHandle", 1)
|
||||
# get bounding box
|
||||
|
|
@ -88,7 +93,7 @@ class ReferenceLoader(pype.maya.plugin.ReferenceLoader):
|
|||
cmds.setAttr(groupName + ".selectHandleY", cy)
|
||||
cmds.setAttr(groupName + ".selectHandleZ", cz)
|
||||
|
||||
return nodes
|
||||
return newNodes
|
||||
|
||||
def switch(self, container, representation):
|
||||
self.update(container, representation)
|
||||
|
|
|
|||
|
|
@ -47,12 +47,18 @@ class RigLoader(pype.maya.plugin.ReferenceLoader):
|
|||
cmds.setAttr(groupName + ".outlinerColor",
|
||||
c[0], c[1], c[2])
|
||||
|
||||
shapes = cmds.ls(nodes, shapes=True, long=True)
|
||||
print(shapes)
|
||||
|
||||
newNodes = (list(set(nodes) - set(shapes)))
|
||||
print(newNodes)
|
||||
|
||||
# Store for post-process
|
||||
self[:] = nodes
|
||||
self[:] = newNodes
|
||||
if data.get("post_process", True):
|
||||
self._post_process(name, namespace, context, data)
|
||||
|
||||
return nodes
|
||||
return newNodes
|
||||
|
||||
def _post_process(self, name, namespace, context, data):
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,17 @@
|
|||
import pype.maya.plugin
|
||||
import os
|
||||
from collections import defaultdict
|
||||
|
||||
from pypeapp import config
|
||||
import pype.maya.plugin
|
||||
from pype.maya import lib
|
||||
|
||||
|
||||
class YetiRigLoader(pype.maya.plugin.ReferenceLoader):
|
||||
"""
|
||||
This loader will load Yeti rig. You can select something in scene and if it
|
||||
has same ID as mesh published with rig, their shapes will be linked
|
||||
together.
|
||||
"""
|
||||
|
||||
families = ["yetiRig"]
|
||||
representations = ["ma"]
|
||||
|
|
@ -18,6 +26,32 @@ class YetiRigLoader(pype.maya.plugin.ReferenceLoader):
|
|||
import maya.cmds as cmds
|
||||
from avalon import maya
|
||||
|
||||
# get roots of selected hierarchies
|
||||
selected_roots = []
|
||||
for sel in cmds.ls(sl=True, long=True):
|
||||
selected_roots.append(sel.split("|")[1])
|
||||
|
||||
# get all objects under those roots
|
||||
selected_hierarchy = []
|
||||
for root in selected_roots:
|
||||
selected_hierarchy.append(cmds.listRelatives(
|
||||
root,
|
||||
allDescendents=True) or [])
|
||||
|
||||
# flatten the list and filter only shapes
|
||||
shapes_flat = []
|
||||
for root in selected_hierarchy:
|
||||
shapes = cmds.ls(root, long=True, type="mesh") or []
|
||||
for shape in shapes:
|
||||
shapes_flat.append(shape)
|
||||
|
||||
# create dictionary of cbId and shape nodes
|
||||
scene_lookup = defaultdict(list)
|
||||
for node in shapes_flat:
|
||||
cb_id = lib.get_id(node)
|
||||
scene_lookup[cb_id] = node
|
||||
|
||||
# load rig
|
||||
with maya.maintained_selection():
|
||||
nodes = cmds.file(self.fname,
|
||||
namespace=namespace,
|
||||
|
|
@ -26,6 +60,20 @@ class YetiRigLoader(pype.maya.plugin.ReferenceLoader):
|
|||
groupReference=True,
|
||||
groupName="{}:{}".format(namespace, name))
|
||||
|
||||
# for every shape node we've just loaded find matching shape by its
|
||||
# cbId in selection. If found outMesh of scene shape will connect to
|
||||
# inMesh of loaded shape.
|
||||
for destination_node in nodes:
|
||||
source_node = scene_lookup[lib.get_id(destination_node)]
|
||||
if source_node:
|
||||
self.log.info("found: {}".format(source_node))
|
||||
self.log.info(
|
||||
"creating connection to {}".format(destination_node))
|
||||
|
||||
cmds.connectAttr("{}.outMesh".format(source_node),
|
||||
"{}.inMesh".format(destination_node),
|
||||
force=True)
|
||||
|
||||
groupName = "{}:{}".format(namespace, name)
|
||||
|
||||
presets = config.get_presets(project=os.environ['AVALON_PROJECT'])
|
||||
|
|
@ -38,6 +86,4 @@ class YetiRigLoader(pype.maya.plugin.ReferenceLoader):
|
|||
c[0], c[1], c[2])
|
||||
self[:] = nodes
|
||||
|
||||
self.log.info("Yeti Rig Connection Manager will be available soon")
|
||||
|
||||
return nodes
|
||||
|
|
|
|||
|
|
@ -93,6 +93,9 @@ class CollectInstances(pyblish.api.ContextPlugin):
|
|||
parents = self.get_all_parents(members)
|
||||
members_hierarchy = list(set(members + children + parents))
|
||||
|
||||
if 'families' not in data:
|
||||
data['families'] = [data.get('family')]
|
||||
|
||||
# Create the instance
|
||||
instance = context.create_instance(objset)
|
||||
instance[:] = members_hierarchy
|
||||
|
|
@ -100,6 +103,7 @@ class CollectInstances(pyblish.api.ContextPlugin):
|
|||
# Store the exact members of the object set
|
||||
instance.data["setMembers"] = members
|
||||
|
||||
|
||||
# Define nice label
|
||||
name = cmds.ls(objset, long=False)[0] # use short name
|
||||
label = "{0} ({1})".format(name,
|
||||
|
|
@ -117,6 +121,8 @@ class CollectInstances(pyblish.api.ContextPlugin):
|
|||
# Produce diagnostic message for any graphical
|
||||
# user interface interested in visualising it.
|
||||
self.log.info("Found: \"%s\" " % instance.data["name"])
|
||||
self.log.debug("DATA: \"%s\" " % instance.data)
|
||||
|
||||
|
||||
def sort_by_family(instance):
|
||||
"""Sort by family"""
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class CollectMayaScene(pyblish.api.ContextPlugin):
|
|||
"label": subset,
|
||||
"publish": False,
|
||||
"family": 'workfile',
|
||||
"families": ['workfile'],
|
||||
"setMembers": [current_file]
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -206,6 +206,11 @@ class ExtractLook(pype.api.Extractor):
|
|||
destination = self.resource_destination(
|
||||
instance, source, do_maketx
|
||||
)
|
||||
|
||||
# Force copy is specified.
|
||||
if instance.data.get("forceCopy", False):
|
||||
mode = COPY
|
||||
|
||||
if mode == COPY:
|
||||
transfers.append((source, destination))
|
||||
elif mode == HARDLINK:
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import avalon.maya
|
|||
|
||||
from maya import cmds, mel
|
||||
import pymel.core as pm
|
||||
from pype.vendor import ffmpeg
|
||||
import ffmpeg
|
||||
# from pype.scripts import otio_burnin
|
||||
reload(ffmpeg)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import pype.api
|
|||
|
||||
from maya import cmds
|
||||
import pymel.core as pm
|
||||
from pype.vendor import ffmpeg
|
||||
import ffmpeg
|
||||
reload(ffmpeg)
|
||||
|
||||
import avalon.maya
|
||||
|
|
|
|||
|
|
@ -73,7 +73,9 @@ class ExtractYetiCache(pype.api.Extractor):
|
|||
'ext': 'fur',
|
||||
'files': cache_files[0] if len(cache_files) == 1 else cache_files,
|
||||
'stagingDir': dirname,
|
||||
'anatomy_template': 'publish'
|
||||
'anatomy_template': 'publish',
|
||||
'frameStart': int(start_frame),
|
||||
'frameEnd': int(end_frame)
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -126,6 +126,18 @@ class ExtractYetiRig(pype.api.Extractor):
|
|||
with open(settings_path, "w") as fp:
|
||||
json.dump(settings, fp, ensure_ascii=False)
|
||||
|
||||
# add textures to transfers
|
||||
if 'transfers' not in instance.data:
|
||||
instance.data['transfers'] = []
|
||||
|
||||
for resource in instance.data.get('resources', []):
|
||||
for file in resource['files']:
|
||||
src = file
|
||||
dst = os.path.join(image_search_path, os.path.basename(file))
|
||||
instance.data['transfers'].append([src, dst])
|
||||
|
||||
self.log.info("adding transfer {} -> {}". format(src, dst))
|
||||
|
||||
# Ensure the imageSearchPath is being remapped to the publish folder
|
||||
attr_value = {"%s.imageSearchPath" % n: str(image_search_path) for
|
||||
n in yeti_nodes}
|
||||
|
|
|
|||
|
|
@ -111,7 +111,11 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.IntegratorOrder + 0.1
|
||||
hosts = ["maya"]
|
||||
families = ["renderlayer"]
|
||||
optional = True
|
||||
if not os.environ.get("DEADLINE_REST_URL"):
|
||||
optional = False
|
||||
active = False
|
||||
else:
|
||||
optional = True
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -267,20 +271,21 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin):
|
|||
for key in environment:
|
||||
clean_path = ""
|
||||
self.log.debug("key: {}".format(key))
|
||||
to_process = environment[key]
|
||||
self.log.debug("value: {}".format(environment[key]))
|
||||
to_process = str(environment[key])
|
||||
if key == "PYPE_STUDIO_CORE_MOUNT":
|
||||
clean_path = environment[key]
|
||||
elif "://" in environment[key]:
|
||||
clean_path = environment[key]
|
||||
elif os.pathsep not in to_process:
|
||||
clean_path = to_process
|
||||
elif "://" in to_process:
|
||||
clean_path = to_process
|
||||
elif os.pathsep not in str(to_process):
|
||||
try:
|
||||
path = environment[key]
|
||||
path = to_process
|
||||
path.decode('UTF-8', 'strict')
|
||||
clean_path = os.path.normpath(path)
|
||||
except UnicodeDecodeError:
|
||||
print('path contains non UTF characters')
|
||||
else:
|
||||
for path in environment[key].split(os.pathsep):
|
||||
for path in to_process.split(os.pathsep):
|
||||
try:
|
||||
path.decode('UTF-8', 'strict')
|
||||
clean_path += os.path.normpath(path) + os.pathsep
|
||||
|
|
@ -319,7 +324,7 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin):
|
|||
|
||||
# E.g. http://192.168.0.1:8082/api/jobs
|
||||
url = "{}/api/jobs".format(DEADLINE_REST_URL)
|
||||
response = requests.post(url, json=payload)
|
||||
response = self._requests_post(url, json=payload)
|
||||
if not response.ok:
|
||||
raise Exception(response.text)
|
||||
|
||||
|
|
@ -340,3 +345,31 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin):
|
|||
"%f=%d was rounded off to nearest integer"
|
||||
% (value, int(value))
|
||||
)
|
||||
|
||||
def _requests_post(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.post(*args, **kwargs)
|
||||
|
||||
def _requests_get(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.get(*args, **kwargs)
|
||||
|
|
|
|||
|
|
@ -1,12 +1,16 @@
|
|||
import os
|
||||
import json
|
||||
from maya import cmds
|
||||
from avalon import api
|
||||
from avalon.vendor import requests
|
||||
import pyblish.api
|
||||
import pype.maya.lib as lib
|
||||
import getpass
|
||||
import appdirs
|
||||
import platform
|
||||
|
||||
from maya import cmds
|
||||
|
||||
from avalon import api
|
||||
from avalon.vendor import requests
|
||||
|
||||
import pyblish.api
|
||||
import pype.maya.lib as lib
|
||||
from pypeapp import config
|
||||
|
||||
|
||||
|
|
@ -137,8 +141,12 @@ class MayaSubmitMuster(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.IntegratorOrder + 0.1
|
||||
hosts = ["maya"]
|
||||
families = ["renderlayer"]
|
||||
optional = True
|
||||
icon = "satellite-dish"
|
||||
if not os.environ.get("MUSTER_REST_URL"):
|
||||
optional = False
|
||||
active = False
|
||||
else:
|
||||
optional = True
|
||||
|
||||
_token = None
|
||||
|
||||
|
|
@ -175,7 +183,7 @@ class MayaSubmitMuster(pyblish.api.InstancePlugin):
|
|||
"select": "name"
|
||||
}
|
||||
api_entry = '/api/templates/list'
|
||||
response = requests.post(
|
||||
response = self._requests_post(
|
||||
self.MUSTER_REST_URL + api_entry, params=params)
|
||||
if response.status_code != 200:
|
||||
self.log.error(
|
||||
|
|
@ -226,7 +234,7 @@ class MayaSubmitMuster(pyblish.api.InstancePlugin):
|
|||
"name": "submit"
|
||||
}
|
||||
api_entry = '/api/queue/actions'
|
||||
response = requests.post(
|
||||
response = self._requests_post(
|
||||
self.MUSTER_REST_URL + api_entry, params=params, json=payload)
|
||||
|
||||
if response.status_code != 200:
|
||||
|
|
@ -318,7 +326,10 @@ class MayaSubmitMuster(pyblish.api.InstancePlugin):
|
|||
muster_python = ("\"C:\\\\Program Files\\\\Virtual Vertex\\\\"
|
||||
"Muster 9\\\\MPython.exe\"")
|
||||
else:
|
||||
muster_python = "/usr/local/muster9/mpython"
|
||||
# we need to run pype as different user then Muster dispatcher
|
||||
# service is running (usually root).
|
||||
muster_python = ("/usr/sbin/runuser -u {}"
|
||||
" -- /usr/bin/python3".format(getpass.getuser()))
|
||||
|
||||
# build the path and argument. We are providing separate --pype
|
||||
# argument with network path to pype as post job actions are run
|
||||
|
|
@ -550,3 +561,17 @@ class MayaSubmitMuster(pyblish.api.InstancePlugin):
|
|||
"%f=%d was rounded off to nearest integer"
|
||||
% (value, int(value))
|
||||
)
|
||||
|
||||
def _requests_post(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.post(*args, **kwargs)
|
||||
|
|
|
|||
|
|
@ -25,6 +25,11 @@ class VraySubmitDeadline(pyblish.api.InstancePlugin):
|
|||
order = pyblish.api.IntegratorOrder
|
||||
hosts = ["maya"]
|
||||
families = ["vrayscene"]
|
||||
if not os.environ.get("DEADLINE_REST_URL"):
|
||||
optional = False
|
||||
active = False
|
||||
else:
|
||||
optional = True
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
|
|
@ -109,7 +114,7 @@ class VraySubmitDeadline(pyblish.api.InstancePlugin):
|
|||
|
||||
self.log.info("Job Data:\n{}".format(json.dumps(payload)))
|
||||
|
||||
response = requests.post(url=deadline_url, json=payload)
|
||||
response = self._requests_post(url=deadline_url, json=payload)
|
||||
if not response.ok:
|
||||
raise RuntimeError(response.text)
|
||||
|
||||
|
|
@ -188,7 +193,7 @@ class VraySubmitDeadline(pyblish.api.InstancePlugin):
|
|||
self.log.info(json.dumps(payload_b))
|
||||
|
||||
# Post job to deadline
|
||||
response_b = requests.post(url=deadline_url, json=payload_b)
|
||||
response_b = self._requests_post(url=deadline_url, json=payload_b)
|
||||
if not response_b.ok:
|
||||
raise RuntimeError(response_b.text)
|
||||
|
||||
|
|
@ -272,3 +277,17 @@ class VraySubmitDeadline(pyblish.api.InstancePlugin):
|
|||
result = filename_zero.replace("\\", "/")
|
||||
|
||||
return result
|
||||
|
||||
def _requests_post(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.post(*args, **kwargs)
|
||||
|
|
|
|||
50
pype/plugins/maya/publish/validate_assembly_name.py
Normal file
50
pype/plugins/maya/publish/validate_assembly_name.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
import pyblish.api
|
||||
import maya.cmds as cmds
|
||||
import pype.maya.action
|
||||
|
||||
|
||||
class ValidateAssemblyName(pyblish.api.InstancePlugin):
|
||||
""" Ensure Assembly name ends with `GRP`
|
||||
|
||||
Check if assembly name ends with `_GRP` string.
|
||||
"""
|
||||
|
||||
label = "Validate Assembly Name"
|
||||
order = pyblish.api.ValidatorOrder
|
||||
families = ["assembly"]
|
||||
actions = [pype.maya.action.SelectInvalidAction]
|
||||
active = False
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
cls.log.info("Checking name of {}".format(instance.name))
|
||||
|
||||
content_instance = instance.data.get("setMembers", None)
|
||||
if not content_instance:
|
||||
cls.log.error("Instance has no nodes!")
|
||||
return True
|
||||
|
||||
# All children will be included in the extracted export so we also
|
||||
# validate *all* descendents of the set members and we skip any
|
||||
# intermediate shapes
|
||||
descendants = cmds.listRelatives(content_instance,
|
||||
allDescendents=True,
|
||||
fullPath=True) or []
|
||||
descendants = cmds.ls(descendants, noIntermediate=True, long=True)
|
||||
content_instance = list(set(content_instance + descendants))
|
||||
assemblies = cmds.ls(content_instance, assemblies=True, long=True)
|
||||
|
||||
invalid = []
|
||||
for cr in assemblies:
|
||||
if not cr.endswith('_GRP'):
|
||||
cls.log.error("{} doesn't end with _GRP".format(cr))
|
||||
invalid.append(cr)
|
||||
|
||||
return invalid
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
invalid = self.get_invalid(instance)
|
||||
if invalid:
|
||||
raise RuntimeError("Found {} invalid named assembly "
|
||||
"items".format(len(invalid)))
|
||||
|
|
@ -28,8 +28,22 @@ class ValidateDeadlineConnection(pyblish.api.ContextPlugin):
|
|||
raise ValueError("Deadline REST API url not found.")
|
||||
|
||||
# Check response
|
||||
response = requests.get(DEADLINE_REST_URL)
|
||||
response = self._requests_get(DEADLINE_REST_URL)
|
||||
assert response.ok, "Response must be ok"
|
||||
assert response.text.startswith("Deadline Web Service "), (
|
||||
"Web service did not respond with 'Deadline Web Service'"
|
||||
)
|
||||
|
||||
def _requests_get(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.get(*args, **kwargs)
|
||||
|
|
|
|||
98
pype/plugins/maya/publish/validate_model_name.py
Normal file
98
pype/plugins/maya/publish/validate_model_name.py
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
from maya import cmds
|
||||
import pyblish.api
|
||||
import pype.api
|
||||
import pype.maya.action
|
||||
import re
|
||||
|
||||
|
||||
class ValidateModelName(pyblish.api.InstancePlugin):
|
||||
"""Validate name of model
|
||||
|
||||
starts with (somename)_###_(materialID)_GEO
|
||||
materialID must be present in list
|
||||
padding number doesn't have limit
|
||||
|
||||
"""
|
||||
optional = True
|
||||
order = pype.api.ValidateContentsOrder
|
||||
hosts = ["maya"]
|
||||
families = ["model"]
|
||||
label = "Model Name"
|
||||
actions = [pype.maya.action.SelectInvalidAction]
|
||||
# path to shader names definitions
|
||||
# TODO: move it to preset file
|
||||
material_file = None
|
||||
active = False
|
||||
regex = '(.*)_(\\d)*_(.*)_(GEO)'
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
|
||||
# find out if supplied transform is group or not
|
||||
def is_group(groupName):
|
||||
try:
|
||||
children = cmds.listRelatives(groupName, children=True)
|
||||
for child in children:
|
||||
if not cmds.ls(child, transforms=True):
|
||||
return False
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
invalid = []
|
||||
content_instance = instance.data.get("setMembers", None)
|
||||
if not content_instance:
|
||||
cls.log.error("Instance has no nodes!")
|
||||
return True
|
||||
pass
|
||||
descendants = cmds.listRelatives(content_instance,
|
||||
allDescendents=True,
|
||||
fullPath=True) or []
|
||||
|
||||
descendants = cmds.ls(descendants, noIntermediate=True, long=True)
|
||||
trns = cmds.ls(descendants, long=False, type=('transform'))
|
||||
|
||||
# filter out groups
|
||||
filter = [node for node in trns if not is_group(node)]
|
||||
|
||||
# load shader list file as utf-8
|
||||
if cls.material_file:
|
||||
shader_file = open(cls.material_file, "r")
|
||||
shaders = shader_file.readlines()
|
||||
shader_file.close()
|
||||
|
||||
# strip line endings from list
|
||||
shaders = map(lambda s: s.rstrip(), shaders)
|
||||
|
||||
# compile regex for testing names
|
||||
r = re.compile(cls.regex)
|
||||
|
||||
for obj in filter:
|
||||
m = r.match(obj)
|
||||
if m is None:
|
||||
cls.log.error("invalid name on: {}".format(obj))
|
||||
invalid.append(obj)
|
||||
else:
|
||||
# if we have shader files and shader named group is in
|
||||
# regex, test this group against names in shader file
|
||||
if 'shader' in r.groupindex and shaders:
|
||||
try:
|
||||
if not m.group('shader') in shaders:
|
||||
cls.log.error(
|
||||
"invalid materialID on: {0} ({1})".format(
|
||||
obj, m.group('shader')))
|
||||
invalid.append(obj)
|
||||
except IndexError:
|
||||
# shader named group doesn't match
|
||||
cls.log.error(
|
||||
"shader group doesn't match: {}".format(obj))
|
||||
invalid.append(obj)
|
||||
|
||||
return invalid
|
||||
|
||||
def process(self, instance):
|
||||
|
||||
invalid = self.get_invalid(instance)
|
||||
|
||||
if invalid:
|
||||
raise RuntimeError("Model naming is invalid. See log.")
|
||||
|
|
@ -50,7 +50,7 @@ class ValidateMusterConnection(pyblish.api.ContextPlugin):
|
|||
'authToken': self._token
|
||||
}
|
||||
api_entry = '/api/pools/list'
|
||||
response = requests.get(
|
||||
response = self._requests_get(
|
||||
MUSTER_REST_URL + api_entry, params=params)
|
||||
assert response.status_code == 200, "invalid response from server"
|
||||
assert response.json()['ResponseData'], "invalid data in response"
|
||||
|
|
@ -87,7 +87,35 @@ class ValidateMusterConnection(pyblish.api.ContextPlugin):
|
|||
api_url = "{}/muster/show_login".format(
|
||||
os.environ["PYPE_REST_API_URL"])
|
||||
cls.log.debug(api_url)
|
||||
response = requests.post(api_url, timeout=1)
|
||||
response = cls._requests_post(api_url, timeout=1)
|
||||
if response.status_code != 200:
|
||||
cls.log.error('Cannot show login form to Muster')
|
||||
raise Exception('Cannot show login form to Muster')
|
||||
|
||||
def _requests_post(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.post(*args, **kwargs)
|
||||
|
||||
def _requests_get(self, *args, **kwargs):
|
||||
""" Wrapper for requests, disabling SSL certificate validation if
|
||||
DONT_VERIFY_SSL environment variable is found. This is useful when
|
||||
Deadline or Muster server are running with self-signed certificates
|
||||
and their certificate is not added to trusted certificates on
|
||||
client machines.
|
||||
|
||||
WARNING: disabling SSL certificate validation is defeating one line
|
||||
of defense SSL is providing and it is not recommended.
|
||||
"""
|
||||
if 'verify' not in kwargs:
|
||||
kwargs['verify'] = False if os.getenv("PYPE_DONT_VERIFY_SSL", True) else True # noqa
|
||||
return requests.get(*args, **kwargs)
|
||||
|
|
|
|||
78
pype/plugins/maya/publish/validate_shader_name.py
Normal file
78
pype/plugins/maya/publish/validate_shader_name.py
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
from maya import cmds
|
||||
|
||||
import pyblish.api
|
||||
import pype.api
|
||||
import pype.maya.action
|
||||
import re
|
||||
|
||||
|
||||
class ValidateShaderName(pyblish.api.InstancePlugin):
|
||||
"""Validate shader name assigned.
|
||||
|
||||
It should be <assetName>_<*>_SHD
|
||||
|
||||
"""
|
||||
optional = True
|
||||
active = False
|
||||
order = pype.api.ValidateContentsOrder
|
||||
families = ["look"]
|
||||
hosts = ['maya']
|
||||
label = 'Validate Shaders Name'
|
||||
actions = [pype.maya.action.SelectInvalidAction]
|
||||
regex = r'(?P<asset>.*)_(.*)_SHD'
|
||||
|
||||
# The default connections to check
|
||||
def process(self, instance):
|
||||
|
||||
invalid = self.get_invalid(instance)
|
||||
if invalid:
|
||||
raise RuntimeError("Found shapes with invalid shader names "
|
||||
"assigned: "
|
||||
"\n{}".format(invalid))
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
|
||||
invalid = []
|
||||
|
||||
# Get all shapes from the instance
|
||||
content_instance = instance.data.get("setMembers", None)
|
||||
if not content_instance:
|
||||
cls.log.error("Instance has no nodes!")
|
||||
return True
|
||||
pass
|
||||
descendants = cmds.listRelatives(content_instance,
|
||||
allDescendents=True,
|
||||
fullPath=True) or []
|
||||
|
||||
descendants = cmds.ls(descendants, noIntermediate=True, long=True)
|
||||
shapes = cmds.ls(descendants, type=["nurbsSurface", "mesh"], long=True)
|
||||
asset_name = instance.data.get("asset", None)
|
||||
|
||||
# Check the number of connected shadingEngines per shape
|
||||
r = re.compile(cls.regex)
|
||||
for shape in shapes:
|
||||
shading_engines = cmds.listConnections(shape,
|
||||
destination=True,
|
||||
type="shadingEngine") or []
|
||||
shaders = cmds.ls(
|
||||
cmds.listConnections(shading_engines), materials=1
|
||||
)
|
||||
|
||||
for shader in shaders:
|
||||
m = r.match(cls.regex, shader)
|
||||
if m is None:
|
||||
invalid.append(shape)
|
||||
cls.log.error(
|
||||
"object {0} has invalid shader name {1}".format(shape,
|
||||
shader)
|
||||
)
|
||||
else:
|
||||
if 'asset' in r.groupindex:
|
||||
if m.group('asset') != asset_name:
|
||||
invalid.append(shape)
|
||||
cls.log.error(("object {0} has invalid "
|
||||
"shader name {1}").format(shape,
|
||||
shader))
|
||||
|
||||
return invalid
|
||||
40
pype/plugins/maya/publish/validate_unicode_strings.py
Normal file
40
pype/plugins/maya/publish/validate_unicode_strings.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import os
|
||||
from maya import cmds
|
||||
|
||||
import pyblish.api
|
||||
import pype.api
|
||||
import pype.maya.action
|
||||
|
||||
|
||||
class ValidateUnicodeStrings(pyblish.api.Validator):
|
||||
"""Validate all environment variables are string type.
|
||||
|
||||
"""
|
||||
|
||||
order = pype.api.ValidateContentsOrder
|
||||
hosts = ['maya']
|
||||
families = ['review']
|
||||
label = 'Unicode Strings'
|
||||
actions = [pype.api.RepairAction]
|
||||
|
||||
def process(self, instance):
|
||||
invalid = self.get_invalid(instance)
|
||||
if invalid:
|
||||
raise RuntimeError("Found unicode strings in environment variables.")
|
||||
|
||||
@classmethod
|
||||
def get_invalid(cls, instance):
|
||||
invalid = []
|
||||
for key, value in os.environ.items():
|
||||
if type(value) is type(u't'):
|
||||
invalid.append((key, value))
|
||||
|
||||
return invalid
|
||||
|
||||
@classmethod
|
||||
def repair(cls, instance):
|
||||
"""Retype all unicodes to strings."""
|
||||
|
||||
for key, value in os.environ.items():
|
||||
if type(value) is type(u't'):
|
||||
os.environ[key] = str(value)
|
||||
Loading…
Add table
Add a link
Reference in a new issue