MCPcopy Index your code
hub / github.com/modelscope/FunASR / DatadirWriter

Class DatadirWriter

funasr/utils/datadir_writer.py:6–95  ·  view source on GitHub ↗

Writer class to create kaldi like data directory. Examples: >>> with DatadirWriter("output") as writer: ... # output/sub.txt is created here ... subwriter = writer["sub.txt"] ... # Write "uttidA some/where/a.wav" ... subwriter["uttidA"] =

Source from the content-addressed store, hash-verified

4
5
6class DatadirWriter:
7 """Writer class to create kaldi like data directory.
8
9 Examples:
10 >>> with DatadirWriter("output") as writer:
11 ... # output/sub.txt is created here
12 ... subwriter = writer["sub.txt"]
13 ... # Write "uttidA some/where/a.wav"
14 ... subwriter["uttidA"] = "some/where/a.wav"
15 ... subwriter["uttidB"] = "some/where/b.wav"
16
17 """
18
19 def __init__(self, p: Union[Path, str]):
20 """Initialize DatadirWriter.
21
22 Args:
23 p: TODO.
24 """
25 self.path = Path(p)
26 self.chilidren = {}
27 self.fd = None
28 self.has_children = False
29 self.keys = set()
30
31 def __enter__(self):
32 """Internal: enter ."""
33 return self
34
35 def __getitem__(self, key: str) -> "DatadirWriter":
36 """Internal: getitem .
37
38 Args:
39 key: Sample identifiers.
40 """
41 if self.fd is not None:
42 raise RuntimeError("This writer points out a file")
43
44 if key not in self.chilidren:
45 w = DatadirWriter((self.path / key))
46 self.chilidren[key] = w
47 self.has_children = True
48
49 retval = self.chilidren[key]
50 return retval
51
52 def __setitem__(self, key: str, value: str):
53 """Internal: setitem .
54
55 Args:
56 key: Sample identifiers.
57 value: TODO.
58 """
59 if self.has_children:
60 raise RuntimeError("This writer points out a directory")
61 if key in self.keys:
62 warnings.warn(f"Duplicated: {key}")
63

Callers 15

inference_llmMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
inferenceMethod · 0.90
generate_chunkMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…