Skip to content

Commit

Permalink
Refactor file name handling and sequence padding logic.
Browse files Browse the repository at this point in the history
- Extracted file name from basename for processing.
- Improved handling of sequence padding using regex pattern matching.
- Enhanced file filtering based on the extracted file name.
  • Loading branch information
jakubjezek001 committed Sep 26, 2024
1 parent b605102 commit 651d54b
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions client/ayon_traypublisher/plugins/create/create_csv_ingest.py
Original file line number Diff line number Diff line change
Expand Up @@ -644,9 +644,21 @@ def _add_representation(
# convert ### string in file name to %03d
# this is for correct frame range validation
# example: file.###.exr -> file.%03d.exr
file_name = basename.split(".")[0]
if "#" in basename:
padding = len(basename.split("#")) - 1
basename = basename.replace("#" * padding, f"%0{padding}d")
seq_padding = f"%0{padding}d"
basename = basename.replace("#" * padding, seq_padding)
file_name = basename.split(seq_padding)[0]
is_sequence = True
if "%" in basename:
pattern = re.compile(r"%\d+d|%d")
padding = pattern.findall(basename)
if not padding:
raise CreatorError(
f"File sequence padding not found in '{basename}'."
)
file_name = basename.split("%")[0]
is_sequence = True

# make absolute path to file
Expand All @@ -662,8 +674,13 @@ def _add_representation(
frame_end: Union[int, None] = None
files: Union[str, List[str]] = basename
if is_sequence:
# get only filtered files form dirname
files_from_dir = [
file for file in os.listdir(dirname)
if file_name in file
]
# collect all data from dirname
cols, _ = clique.assemble(list(os.listdir(dirname)))
cols, _ = clique.assemble(files_from_dir)
if not cols:
raise CreatorError(
f"No collections found in directory '{dirname}'."
Expand Down

0 comments on commit 651d54b

Please sign in to comment.