MCPcopy
hub / github.com/langchain-ai/langchain / _rewrite_file

Function _rewrite_file

libs/cli/langchain_cli/namespaces/migrate/main.py:164–195  ·  view source on GitHub ↗
(
    filename: str,
    codemods: List[Type[ContextAwareTransformer]],
    diff: bool,
    context: CodemodContext,
)

Source from the content-addressed store, hash-verified

162
163
164def _rewrite_file(
165 filename: str,
166 codemods: List[Type[ContextAwareTransformer]],
167 diff: bool,
168 context: CodemodContext,
169) -> Tuple[Union[str, None], Union[List[str], None]]:
170 file_path = Path(filename)
171 with file_path.open("r+", encoding="utf-8") as fp:
172 code = fp.read()
173 fp.seek(0)
174
175 input_tree = cst.parse_module(code)
176
177 for codemod in codemods:
178 transformer = codemod(context=context)
179 output_tree = transformer.transform_module(input_tree)
180 input_tree = output_tree
181
182 output_code = input_tree.code
183 if code != output_code:
184 if diff:
185 lines = difflib.unified_diff(
186 code.splitlines(keepends=True),
187 output_code.splitlines(keepends=True),
188 fromfile=filename,
189 tofile=filename,
190 )
191 return None, list(lines)
192 else:
193 fp.write(output_code)
194 fp.truncate()
195 return None, None
196
197
198def _rewrite_notebook(

Callers 1

run_codemodsFunction · 0.85

Calls 3

listFunction · 0.85
writeMethod · 0.80
readMethod · 0.45

Tested by

no test coverage detected