[Bug Report]: "Is a directory" error
Closed this issue · 10 comments
BlackboardSync Version
0.17.0
BlackboardSync Release
pipx
Python Version
3.12.6
Operating System and Version
Linux
University Name
Humber Polytechnic
Problem Description
After what seems to be the end of the sync (Shutting down download workers
), I get an error that results in files not being downloaded, and instead some sort of shell HTML file instead.
Log File Contents
Exception in thread Thread-2 (_sync_task):
Traceback (most recent call last):
File "/usr/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
self.run()
File "/usr/lib/python3.12/threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/sync.py", line 177, in _sync_task
start_time = self.download()
^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/sync.py", line 153, in download
start_time = self._download.download()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/download.py", line 109, in download
self.executor.raise_exceptions()
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/executor.py", line 44, in raise_exceptions
error = future.result()
^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/base.py", line 27, in _write
with path.open("wb") as f:
^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/pathlib.py", line 1013, in open
return io.open(self, mode, buffering, encoding, errors, newline)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
IsADirectoryError: [Errno 21] Is a directory: '/home/<user>/Documents/Humber/bbsync/2024/<my course>/Learning Materials/labs/Lab 02_Examples_pluginShell.c A shell that dynamically loads functions/pluginShell.c A shell that dynamically loads functions'
Thanks for your report. I'll look into it.
Can you show me how the file structure looks for this content?
The folder path is <sync folder>/2024/<course>/Learning Materials/labs/Lab 02_Examples_pluginShell.c A shell that dynamically loads functions/pluginShell.c A shell that dynamically loads functions/
. Within that folder there is only one file, called pluginShell.html
.
A fix is coming
Hi there, can you try out 0.17.1-rc.1
? It's available in the releases section or even on pypi. You may need to delete your configuration file (~/.config/blackboard_sync
) and your previous downloads
Just let me know if this content is downloaded correctly, and if you have any further download exceptions.
Definitely downloaded more content, but I did get this error, maybe unrelated:
Exception in thread Thread-2 (_sync_task):
Traceback (most recent call last):
File "/usr/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
self.run()
File "/usr/lib/python3.12/threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/sync.py", line 177, in _sync_task
start_time = self.download()
^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/sync.py", line 153, in download
start_time = self._download.download()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/download.py", line 104, in download
Course(course, job).write(self.download_location, self.executor)
^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/course.py", line 33, in __init__
self.children.append(Content(content, api_path, job))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/content.py", line 44, in __init__
self.handler = Handler(content, api_path, job)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/folder.py", line 22, in __init__
self.children.append(content.Content(child, child_path, job))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/content.py", line 44, in __init__
self.handler = Handler(content, api_path, job)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/folder.py", line 22, in __init__
self.children.append(content.Content(child, child_path, job))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/content.py", line 44, in __init__
self.handler = Handler(content, api_path, job)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/document.py", line 30, in __init__
Attachment(attachment, api_path, job)
File "/home/<user>/.local/pipx/venvs/blackboardsync/lib/python3.12/site-packages/blackboard_sync/content/attachment.py", line 30, in __init__
self.filename = filename + real_ext
~~~~~~~~~^~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str
This is without deleting config or previous downloads.
@sanjacob ok I'm still getting "is a directory" errors with 0.17.1 unfortunately
@ColeAnthonyCapilongo5735 you need to delete all your downloads and start from scratch. Delete your config file too.
Were you able to fix it?