mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
26 lines
839 B
Python
26 lines
839 B
Python
import re
|
|
|
|
|
|
def get_unique_layer_name(layers, asset_name, subset_name):
|
|
"""
|
|
Gets all layer names and if 'name' is present in them, increases
|
|
suffix by 1 (eg. creates unique layer name - for Loader)
|
|
Args:
|
|
layers (list): of namedtuples, expects 'name' field present
|
|
asset_name (string): in format asset_subset (Hero)
|
|
subset_name (string): (LOD)
|
|
|
|
Returns:
|
|
(string): name_00X (without version)
|
|
"""
|
|
name = "{}_{}".format(asset_name, subset_name)
|
|
names = {}
|
|
for layer in layers:
|
|
layer_name = re.sub(r'_\d{3}$', '', layer.name)
|
|
if layer_name in names.keys():
|
|
names[layer_name] = names[layer_name] + 1
|
|
else:
|
|
names[layer_name] = 1
|
|
occurrences = names.get(name, 0)
|
|
|
|
return "{}_{:0>3d}".format(name, occurrences + 1)
|