Modify ↓
Opened 3 years ago
Last modified 3 years ago
#14144 new defect
Python 3 compatibility
| Reported by: | Owned by: | ttressieres | |
|---|---|---|---|
| Priority: | normal | Component: | DownloadsPlugin |
| Severity: | normal | Keywords: | |
| Cc: | Trac Release: |
Description
Hello, This plugin seems to need only one change to run with Python 3.
File "/usr/local/lib/python3.10/dist-packages/tracdownloads/api.py", line 827
except Exception, error:
^^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized (api.py, line 827)
As said by Python, adding the parentheses there fixes the problem. Could you integrate that in the next release? Thanks!
Attachments (0)
Note: See
TracTickets for help on using
tickets.



Some more patching is needed, otherwise the downloads themselves don't work. This seems to be working for me:
Index: tracdownloads/api.py =================================================================== --- tracdownloads/api.py (révision 18497) +++ tracdownloads/api.py (copie de travail) @@ -311,7 +311,7 @@ def _edit_item(self, table, id, item): fields = item.keys() - values = item.values() + values = list(item.values()) with self.env.db_transaction as db: db(""" UPDATE %s SET %s WHERE id=%%s @@ -513,7 +513,7 @@ listener.download_changed(context, new_download, download) # Guess mime type. - with open(filepath.encode('utf-8'), 'r') as fileobj: + with open(filepath.encode('utf-8'), 'rb') as fileobj: file_data = fileobj.read(1000) mimeview = Mimeview(self.env) mime_type = mimeview.get_mimetype(filepath, file_data) @@ -824,7 +824,7 @@ with open(filepath.encode('utf-8'), 'wb+') as fileobj: file.seek(0) shutil.copyfileobj(file, fileobj) - except Exception, error: + except (Exception, error): self.delete_download(download['id']) self.log.debug(error) try: