* convert family text field to enum field
* get families from loaders and not creators
* refactor the list families part
* remove discover_loader_plugins call since there is already a variable with loaders plugins
---------
Co-authored-by: Thomas Fricard <tfricard@ws114.prs.vfx.int>
Co-authored-by: Clément Hector <clement.hector@gmail.com>
* 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>
In case the workfile only contains the project name, the workfile is not found because while the regex matches, the match doesn't have any group, and so it throws an exception.