* TemplatesDict can create different type of template
* anatomy templates can be formatted on their own
* return objected templates on get item
* '_rootless_path' is public classmethod 'rootless_path_from_result'
* 'AnatomyStringTemplate' expect anatomy templates
* remove key getters
* fix typo 'create_ojected_templates' -> 'create_objected_templates'
* Fix type of argument
* Fix long line
* Optimize formatting to use single template formatting instead of formatting full anatomy
* Optimize formatting to use single template formatting instead of formatting full anatomy
* Optimize formatting to use single template formatting instead of formatting full anatomy
* Optimize formatting to use single template formatting instead of formatting full anatomy
* Optimize formatting to use single template formatting instead of formatting full anatomy
* Optimize formatting to use single template formatting instead of formatting full anatomy
* Optimize formatting to use single template formatting instead of formatting full anatomy
* Use format strict + code cosmetics
* Get template from the formatted data
* Update openpype/plugins/publish/integrate_legacy.py
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
* Cosmetics
* Move template obj definition for path up + rename to `path_template_obj`
* Refactor more cases from `anatomy.format` to template obj `.format_strict`
* Refactor more cases from `anatomy.format` to template obj `.format_strict`
* Refactor more cases from `anatomy.format` to template obj `.format_strict`
---------
Co-authored-by: Jakub Trllo <jakub.trllo@gmail.com>
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
* remove hosts filter in ExtractBurnin
* skip instances without representations instead of crash
---------
Co-authored-by: Jakub Ježek <jakubjezek001@gmail.com>
* Remove "preview" data from representation
* pop "preview" from component in standalone publisher
---------
Co-authored-by: Jakub Trllo <jakub.trllo@gmail.com>
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
* OP-4258 - Settings for transient template
* OP-4258 - added collector for transient staging dir
Allows setting profiles to create persistent stagingDir.
* OP-4258 - implemented persistent stagingDir in cleanup
* OP-4258 - updated logging
* OP-4258 - updated settings
* OP-4258 - Hound
* OP-4258 - renamed class to better name
* OP-4258 - changed location of Settings
Should be used in create and collecting phase also.
* OP-4258 - remove version placeholder from transient template
It was discussed that it shouldn't be used for now.
* OP-4258 - extracted transient dir query logic
This should be used in collection and creation phase for DCCs which are storing staging dir path directly into nodes.
* OP-4258 - added use of scene_name placeholder in collector
DCC dependent, way how to implement versioning, might not be used.
* OP-4258 - fix scene_name
* OP-4258 - remove wrong defaults
* OP-4258 - added possibility of different template name
Studio might want to put renders to different place from caches.
* OP-4258 - renamed according to GH comments
* OP-4258 - use is active filter
* OP-4258 - use is active filter
* OP-4793 - added project_settings to signature
* OP-4793 - updated logging message
* OP-4793 - added documentation
* OP-4258 - fix function arguments
* OP-4258 - updates to documentation
* OP-4258 - added known issues to documentation
---------
Co-authored-by: Roy Nieterau <roy_nieterau@hotmail.com>
* Tweak variable names
* Use `filter_profiles` from lib
* Fix type fallback
* Simplify additional family filters
* Use legacy_io.Session instead of os.environ
* Fix logging message
* Indent todo comment for better todo highlighting in Pycharm
* Simplify gap filling logic
* Optimize getting nearest frames
* Fix logic for nearest frame
- This fixes cases where nearest frame isn't directly the next frame
* Refactor `index` in variable `idx` to match `missing_idx` naming
* Use `filter_profiles` from lib
* Match family filter validation of extract review
* Fix typo `overscal` -> `overscan`
* Use `legacy_io.Session` instead of `os.environ`
* Remove unused import
* use 'KnownPublishError' instead of 'AssertionError'
* modify nearest frame logic in holes fill
* Fix unsupported indexing of clique Collection + slightly simplify
---------
Co-authored-by: Jakub Trllo <jakub.trllo@gmail.com>
* Avoid command pop-ups during publishing (tip by @iLLiCiTiT)
* No need to pass creationflags because it's already done in `run_subprocess`
* Hide command window for `shell=True` calls
* Update openpype/lib/execute.py
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
---------
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
* Fix#4656: Enforce unique destination transfer in Integrator
Note that this is per instance - it doesn't validate cross-instance destinations in the context
* Use explicit DuplicateDestinationError and raise as KnownPublishError