Browse Source

fix: expose safe import move errors

master
Codex 2 months ago
parent
commit
16fd900271
  1. 4
      ingestion/guided_imports.py

4
ingestion/guided_imports.py

@ -162,14 +162,14 @@ def _rename_without_replacement(name: str, source_fd: int, destination_fd: int)
# The supported Docker runtime is Linux. Fail closed if atomic no-replace # The supported Docker runtime is Linux. Fail closed if atomic no-replace
# rename is unavailable instead of falling back to a check-then-replace race. # rename is unavailable instead of falling back to a check-then-replace race.
try: try:
rename = ctypes.CDLL(None, use_errno=True).renameat2 rename = ctypes.CDLL(None).renameat2
except AttributeError: except AttributeError:
raise ParseError("UNREADABLE_FILE") from None raise ParseError("UNREADABLE_FILE") from None
rename.argtypes = [ctypes.c_int, ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p, ctypes.c_uint] rename.argtypes = [ctypes.c_int, ctypes.c_char_p, ctypes.c_int, ctypes.c_char_p, ctypes.c_uint]
rename.restype = ctypes.c_int rename.restype = ctypes.c_int
encoded_name = os.fsencode(name) encoded_name = os.fsencode(name)
if rename(source_fd, encoded_name, destination_fd, encoded_name, 1) != 0: # RENAME_NOREPLACE if rename(source_fd, encoded_name, destination_fd, encoded_name, 1) != 0: # RENAME_NOREPLACE
raise OSError(ctypes.get_errno(), "Cannot move import source") raise ParseError("UNREADABLE_FILE")
def _move_file(name: str, source: str | None, destination: str | None, *, overwrite=False) -> None: def _move_file(name: str, source: str | None, destination: str | None, *, overwrite=False) -> None:

Loading…
Cancel
Save