MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / nth_multifile_path

Function nth_multifile_path

convert.py:1050–1070  ·  view source on GitHub ↗

Given any path belonging to a multi-file model (e.g. foo.bin.1), return the nth path in the model.

(path: Path, n: int)

Source from the content-addressed store, hash-verified

1048 return out
1049
1050def nth_multifile_path(path: Path, n: int) -> Path | None:
1051 '''Given any path belonging to a multi-file model (e.g. foo.bin.1), return
1052 the nth path in the model.
1053 '''
1054 # Support the following patterns:
1055 patterns: list[tuple[str, str]] = [
1056 # - x.00.pth, x.01.pth, etc.
1057 (r'\.[0-9]{2}\.pth$', f'.{n:02}.pth'),
1058 # - x-00001-of-00002.bin, x-00002-of-00002.bin, etc.
1059 (r'-[0-9]{5}-of-(.*)$', fr'-{n:05}-of-\1'),
1060 # x.bin, x.bin.1, etc.
1061 (r'(\.[0-9]+)?$', r'\1' if n == 0 else fr'\1.{n}'),
1062 # x_0.pt, x_1.pt, etc.
1063 (r'(_[0-9]+)?\.pt$', fr'_{n}.pt'),
1064 ]
1065 for regex, replacement in patterns:
1066 if re.search(regex, path.name):
1067 new_path = path.with_name(re.sub(regex, replacement, path.name))
1068 if new_path.exists():
1069 return new_path
1070 return None
1071
1072
1073def find_multifile_paths(path: Path) -> list[Path]:

Callers 1

find_multifile_pathsFunction · 0.70

Calls 2

subMethod · 0.80
searchMethod · 0.45

Tested by

no test coverage detected