This repository was archived by the owner on Sep 20, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 124
Farm publishing of existing frames #5451
Closed
jakubjezek001
wants to merge
49
commits into
develop
from
enhancement/OP-6317_abstraction_farm_publishing
Closed
Changes from all commits
Commits
Show all changes
49 commits
Select commit
Hold shift + click to select a range
4454755
traypublisher: publishing via farm wip
jakubjezek001 cc9d961
colorspace: abstracting publishing functions out of mixin
jakubjezek001 eb80100
initialisation of expected files module
jakubjezek001 4d18781
initialisation of frames module
jakubjezek001 68c115b
updating pipeline publish plugins module
jakubjezek001 2de6e74
nuke: rewriting collect write to use abstracted utility functions
jakubjezek001 a8598ad
renaming first / last frame to frame start/end
jakubjezek001 85fdb28
Merge branch 'develop' into enhancement/OP-6317_abstraction_farm_publ…
jakubjezek001 812c8e0
fix how version definition order
iLLiCiTiT a39a10f
added 'folder' to anatomy data
iLLiCiTiT 3e4a7d9
Merge branch 'bugfix/versions-post-fixes' into enhancement/OP-6317_ab…
jakubjezek001 bf93c90
houdini: implementing expected_files
jakubjezek001 242c32d
houdini: adding expected files to renderers
jakubjezek001 b7471ab
houdini: adding expected files to mantra
jakubjezek001 aeb7852
nuke: updating expected files for farm representation
jakubjezek001 ea97f14
rename function to more appropriate name based on content
jakubjezek001 7d5811e
nuke, general: simplifying code for farm publishing representation
jakubjezek001 ad11460
removing strange imports
jakubjezek001 118b7de
Merge branch 'develop' into enhancement/OP-6317_abstraction_farm_publ…
jakubjezek001 c4368af
nuke, general: simplifying collect write
jakubjezek001 d21824b
traypublisher, general: updating simple instances collector
jakubjezek001 cc6f9e2
adding exception for farm publishing
jakubjezek001 819c838
removing colorspace and making frame start and end optional
jakubjezek001 f90add8
deadline: exception for missing expectedFiles
jakubjezek001 b1cd2be
farm publishing target plugin and other work
jakubjezek001 97ef1ed
global farm target collector
jakubjezek001 e4b5c37
farm targeting update
jakubjezek001 40a7297
updating submit publish job
jakubjezek001 83e3d10
removing hardcoded render and prerender family - skeleton instance data
jakubjezek001 c41e8b7
adding representation level persistent staging dir
jakubjezek001 9ee389a
adding persistent staging dir to representation
jakubjezek001 0feea51
adding question for persistency at representation
jakubjezek001 2d91f42
adding more families configs
jakubjezek001 769494f
set only enabled farm modules to render target
jakubjezek001 51a596c
colorspace is not needed
jakubjezek001 492e9cf
existing frames validation fix of condition
jakubjezek001 254c260
missing instances
jakubjezek001 6fbf255
validation of any existing frames without explicit farm publishing
jakubjezek001 0d863eb
Merge branch 'develop' into enhancement/OP-6317_abstraction_farm_publ…
jakubjezek001 a3261b3
nuke: slate recalculation fix
jakubjezek001 e5c8b64
fixing optional arguments condition
jakubjezek001 68254b5
colorspace: making the plugin more useful at collecting time
jakubjezek001 874e9fb
Merge branch 'develop' into enhancement/OP-6317_abstraction_farm_publ…
jakubjezek001 070d3d5
Merge branch 'develop' into enhancement/OP-6317_abstraction_farm_publ…
jakubjezek001 67a382d
Update openpype/pipeline/colorspace.py
jakubjezek001 eb850d1
Update openpype/pipeline/colorspace.py
jakubjezek001 3a83de7
Update openpype/modules/deadline/plugins/publish/submit_publish_job.py
jakubjezek001 4db8667
Update openpype/modules/deadline/plugins/publish/validate_expected_an…
jakubjezek001 7388171
Update openpype/pipeline/farm/pyblish_functions.py
jakubjezek001 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,6 +4,7 @@ | |
| import hou | ||
| import pyblish.api | ||
|
|
||
| from openpype.pipeline import expected_files | ||
| from openpype.hosts.houdini.api.lib import ( | ||
| evalParmNoFrame, | ||
| get_color_management_preferences | ||
|
|
@@ -31,6 +32,8 @@ class CollectRedshiftROPRenderProducts(pyblish.api.InstancePlugin): | |
| def process(self, instance): | ||
|
|
||
| rop = hou.node(instance.data.get("instance_node")) | ||
| frame_start = instance.data["frameStart"] | ||
| frame_end = instance.data["frameEnd"] | ||
|
|
||
| # Collect chunkSize | ||
| chunk_size_parm = rop.parm("chunkSize") | ||
|
|
@@ -49,8 +52,9 @@ def process(self, instance): | |
| ) | ||
| render_products.append(beauty_product) | ||
| files_by_aov = { | ||
| "_": self.generate_expected_files(instance, | ||
| beauty_product)} | ||
| "_": expected_files.generate_expected_filepaths( | ||
| frame_start, frame_end, beauty_product) | ||
| } | ||
|
|
||
| num_aovs = rop.evalParm("RS_aov") | ||
| for index in range(num_aovs): | ||
|
|
@@ -68,8 +72,8 @@ def process(self, instance): | |
| aov_product = self.get_render_product_name(aov_prefix, aov_suffix) | ||
| render_products.append(aov_product) | ||
|
|
||
| files_by_aov[aov_suffix] = self.generate_expected_files(instance, | ||
| aov_product) # noqa | ||
| files_by_aov[aov_suffix] = expected_files.generate_expected_filepaths( | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. line too long (82 > 79 characters) |
||
| frame_start, frame_end, aov_product) | ||
|
|
||
| for product in render_products: | ||
| self.log.debug("Found render product: %s" % product) | ||
|
|
@@ -115,27 +119,3 @@ def get_render_product_name(self, prefix, suffix): | |
| product_name = prefix | ||
|
|
||
| return product_name | ||
|
|
||
| def generate_expected_files(self, instance, path): | ||
| """Create expected files in instance data""" | ||
|
|
||
| dir = os.path.dirname(path) | ||
| file = os.path.basename(path) | ||
|
|
||
| if "#" in file: | ||
| def replace(match): | ||
| return "%0{}d".format(len(match.group())) | ||
|
|
||
| file = re.sub("#+", replace, file) | ||
|
|
||
| if "%" not in file: | ||
| return path | ||
|
|
||
| expected_files = [] | ||
| start = instance.data["frameStart"] | ||
| end = instance.data["frameEnd"] | ||
| for i in range(int(start), (int(end) + 1)): | ||
| expected_files.append( | ||
| os.path.join(dir, (file % i)).replace("\\", "/")) | ||
|
|
||
| return expected_files | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
similar to @BigRoy 's comment, only the part of the code that collects the chunk size should be under that scope:
Or if we actually require that parm to exist, error out and return early