Closed YannickJadoul closed 3 years ago
I had the same issue +1
I'm having the same problem. The issue is not in ghap, but rather in fastcore/urlsend:
~/opt/anaconda3/lib/python3.8/site-packages/ghapi/core.py in __call__(self, path, verb, headers, route, query, data)
102 headers = {**self.headers,**(headers or {})}
103 if path[:7] not in ('http://' class="ansi-blue-fg">,'https:/'): path = GH_HOST+path
--> 104 res,self.recv_hdrs = urlsend(path, verb, headers=headers or None, debug=self.debug, return_headers=True,
105 route=route or None, query=query or None, data=data or None)
106 if 'X-RateLimit-Remaining' in self.recv_hdrs:
If you look at https://github.com/fastai/fastcore/blob/master/fastcore/net.py#L170
you see that there is a return_json
flag -- however urlread
has a separate flag decode
that we need to be able to pass through (see https://github.com/fastai/fastcore/blob/26a818f505d1c343b526c38f78ead6423363f5a7/fastcore/net.py#L107 )
This means that changes would be needed to the fastai/fastcore library. This is a fairly simple change, is it possible to get a maintainer to do this? I will file an issue there.
There is a work around - you can retrieve the archive_download_url
from the artifacts list and then use that with urllib or requests. The following is an example of retrieving a file named in an artifact:
the issue with downloads is fixed now.
@pradeepbbl Thanks, I can confirm this works for me now! For anyone else reading this: the main thing is to make sure to not just pip install --update ghapi
, but also do this for fastcore
.
Thank you very much for resolving this; I'll close the issue now!
I might obviously be missing something, but I'm getting a
UnicodeDecodeError
, when trying to download an artifact:It seems like the download
bytes
are attempted to be decoded to a unicode string? I hope I didn't miss any advice in the docs on how to disable this.The issue doesn't seem to be happening for e.g.
git.get_blob
, because the response there is base64-encoded, whileGhApi.get_content
does return somebytes
(though it's not possible to download artifacts this way, as far as I know).