MCPcopy
hub / github.com/PyGithub/PyGithub / sort_class

Function sort_class

scripts/sort_class.py:177–207  ·  view source on GitHub ↗
(class_name: str, filename: str, dry_run: bool, locks: dict[str, multiprocessing.Lock])

Source from the content-addressed store, hash-verified

175
176
177def sort_class(class_name: str, filename: str, dry_run: bool, locks: dict[str, multiprocessing.Lock]):
178 print(f"Sorting {class_name} ({filename})")
179
180 file_lock = locks.get(filename) if not dry_run else None
181 stdout_lock = locks.get("stdout")
182
183 if file_lock:
184 file_lock.acquire()
185 try:
186 with open(filename) as r:
187 code = "".join(r.readlines())
188
189 tree = cst.parse_module(code)
190 transformer = SortMethodsTransformer(class_name)
191 tree_updated = tree.visit(transformer)
192
193 if dry_run:
194 diff = "".join(difflib.unified_diff(code.splitlines(1), tree_updated.code.splitlines(1)))
195 if diff:
196 stdout_lock.acquire()
197 print(f"Diff of {class_name}:")
198 print(diff)
199 print()
200 stdout_lock.release()
201 else:
202 if not tree_updated.deep_equals(tree):
203 with open(filename, "w") as w:
204 w.write(tree_updated.code)
205 finally:
206 if file_lock:
207 file_lock.release()
208
209
210class SortFileWorker:

Callers 1

sortMethod · 0.85

Calls 3

getMethod · 0.80
writeMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…