You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The uploader in question stores the compress media file as a file_bytes io.BytesIO() file object, then attempts to add_location. This works fine with panoptes version 1.61. and 1.6.2 on windows (all be it with a libmagic WARNING). It now fails with an error:
Two cases:
Updating a Python 3.10 environment to version 1.7 on a windows machine throws this error:
Traceback (most recent call last):
File "C:\py_scripts\Scripts_Skunks\subject_uploader_tree_variable_resize_grouped_3revised_02-03-2023.py", line 203, in
subject.add_location(file_bytes)
File "C:\Users\User1\AppData\Local\Programs\Python\Python310\lib\site-packages\panoptes_client\subject.py", line 272, in add_location
media_type = magic.from_buffer(media_data, mime=True)
AttributeError: module 'magic' has no attribute 'from_buffer'
Workaround:
installing python-magic-bin after the update seems to fix it.
A clean install with Python 3.12 and installing panoptes-client 1.7.0 fails with another error:
Traceback (most recent call last):
File "C:\py_scripts _with_venv\Scripts_python_3.13\subject_uploader_tree_variable_resize_grouped_3revised_02-03-2023.py", line 203, in
subject.add_location(file_bytes)
File "C:\py_scripts _with_venv\Scripts_python_3.13\venv\Lib\site-packages\panoptes_client\subject.py", line 274, in add_location
media_type = mimetypes.guess_type(location)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User1\AppData\Local\Programs\Python\Python311\Lib\mimetypes.py", line 307, in guess_type
return _db.guess_type(url, strict)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User1\AppData\Local\Programs\Python\Python311\Lib\mimetypes.py", line 122, in guess_type
url = os.fspath(url)
^^^^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not BytesIO
Workaround:
Again fixing the libmagic with installing python-magic-bin resolves the issue.
So you have gone from having a libmagic warning with a standard install of panoptes client on a Windows machine to a full error situation - at least when the add-location refers to a BytesIO object - likely because the fall back mime type solution does not work with BytesIO????
The text was updated successfully, but these errors were encountered:
The uploader in question stores the compress media file as a file_bytes io.BytesIO() file object, then attempts to add_location. This works fine with panoptes version 1.61. and 1.6.2 on windows (all be it with a libmagic WARNING). It now fails with an error:
Two cases:
Updating a Python 3.10 environment to version 1.7 on a windows machine throws this error:
Traceback (most recent call last):
File "C:\py_scripts\Scripts_Skunks\subject_uploader_tree_variable_resize_grouped_3revised_02-03-2023.py", line 203, in
subject.add_location(file_bytes)
File "C:\Users\User1\AppData\Local\Programs\Python\Python310\lib\site-packages\panoptes_client\subject.py", line 272, in add_location
media_type = magic.from_buffer(media_data, mime=True)
AttributeError: module 'magic' has no attribute 'from_buffer'
Workaround:
installing python-magic-bin after the update seems to fix it.
A clean install with Python 3.12 and installing panoptes-client 1.7.0 fails with another error:
Traceback (most recent call last):
File "C:\py_scripts _with_venv\Scripts_python_3.13\subject_uploader_tree_variable_resize_grouped_3revised_02-03-2023.py", line 203, in
subject.add_location(file_bytes)
File "C:\py_scripts _with_venv\Scripts_python_3.13\venv\Lib\site-packages\panoptes_client\subject.py", line 274, in add_location
media_type = mimetypes.guess_type(location)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User1\AppData\Local\Programs\Python\Python311\Lib\mimetypes.py", line 307, in guess_type
return _db.guess_type(url, strict)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User1\AppData\Local\Programs\Python\Python311\Lib\mimetypes.py", line 122, in guess_type
url = os.fspath(url)
^^^^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not BytesIO
Workaround:
Again fixing the libmagic with installing python-magic-bin resolves the issue.
So you have gone from having a libmagic warning with a standard install of panoptes client on a Windows machine to a full error situation - at least when the add-location refers to a BytesIO object - likely because the fall back mime type solution does not work with BytesIO????
The text was updated successfully, but these errors were encountered: