Page MenuHomePhabricator

TypeError: mime param in api.Request() must not be boolean
Closed, ResolvedPublicBUG REPORT

Description

This error raise when I trying use the upload.py script with the parameter -chunked.

Uploading file to commons:commons...
ERROR: Upload error: 
Traceback (most recent call last):
  File "/home/vladislav/usr/pwb/core/pywikibot/specialbots/_upload.py", line 395, in upload_file
    success = imagepage.upload(file_url,
  File "/home/vladislav/usr/pwb/core/pywikibot/page/__init__.py", line 2450, in upload
    return self.site.upload(self, source_filename=filename, source_url=url,
  File "/home/vladislav/usr/pwb/core/pywikibot/tools/__init__.py", line 1479, in wrapper
    return obj(*__args, **__kw)
  File "/home/vladislav/usr/pwb/core/pywikibot/site/_decorators.py", line 93, in callee
    return fn(self, *args, **kwargs)
  File "/home/vladislav/usr/pwb/core/pywikibot/site/_apisite.py", line 4501, in upload
    req = self._request(
  File "/home/vladislav/usr/pwb/core/pywikibot/site/_apisite.py", line 287, in _request
    return self._request_class(kwargs)(site=self, **kwargs)
  File "/home/vladislav/usr/pwb/core/pywikibot/data/api.py", line 1029, in __init__
    raise TypeError('mime param in api.Request() must not be boolean')
TypeError: mime param in api.Request() must not be boolean

As far as I see, cause of the error is the mime=Trueinstead mime={} or something kind in pywikibot/site/_apisite.py, line #4501, req = self._request( throttle=throttle, mime=True.
It call pywikibot/data/api.py → class Request(MutableMapping) that have def __init__(self, site=None, mime: Optional[dict] = None, it's type annotation dict.
This mime and self.mime using only in def _build_mime_request(cls, params: dict, mime_params: dict) as mime_params that also annotated as dict.

Event Timeline

Xqt triaged this task as High priority.Feb 14 2021, 6:05 AM
Xqt changed the subtype of this task from "Task" to "Bug Report".

Change 664051 had a related patch set uploaded (by Xqt; owner: Xqt):
[pywikibot/core@master] [bugfix] Don't use mime parameter as boolean in aoi.Request

https://gerrit.wikimedia.org/r/664051

Change 664051 merged by jenkins-bot:
[pywikibot/core@master] [bugfix] Don't use mime parameter as boolean in api.Request

https://gerrit.wikimedia.org/r/664051