Error handling when trying to pass a directory #19

Open
opened 2026-05-10 07:31:47 +00:00 by mdaleo404 · 0 comments
Owner

Currently mirro doesn't know the difference between a text file and a directory. So when a directory is passed mirro returns a

Traceback (most recent call last):
  File "/usr/bin/mirro", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/lib/python3/dist-packages/mirro/main.py", line 505, in main
    original_content = read_file(target)
                       ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/mirro/main.py", line 23, in read_file
    return path.read_text(encoding="utf-8", errors="replace")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/pathlib.py", line 1029, in read_text
    with self.open(mode='r', encoding=encoding, errors=errors) as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/pathlib.py", line 1015, in open
    return io.open(self, mode, buffering, encoding, errors, newline)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
IsADirectoryError: [Errno 21] Is a directory: '/path/to/dir'

We just want to return something like '/path/to/dir' is a directory!

Currently `mirro` doesn't know the difference between a text file and a directory. So when a directory is passed mirro returns a ``` Traceback (most recent call last): File "/usr/bin/mirro", line 8, in <module> sys.exit(main()) ^^^^^^ File "/usr/lib/python3/dist-packages/mirro/main.py", line 505, in main original_content = read_file(target) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mirro/main.py", line 23, in read_file return path.read_text(encoding="utf-8", errors="replace") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/pathlib.py", line 1029, in read_text with self.open(mode='r', encoding=encoding, errors=errors) as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/pathlib.py", line 1015, in open return io.open(self, mode, buffering, encoding, errors, newline) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IsADirectoryError: [Errno 21] Is a directory: '/path/to/dir' ``` We just want to return something like `'/path/to/dir' is a directory!`
mdaleo404 added the enhancement label 2026-05-10 07:31:47 +00:00
Sign in to join this conversation.