Library is inconsistent with its documentation and some methods just do not work
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 42/100
Research direction
Start with GhApi.get_content in ghapi/core.py and compare its get_content(path) signature with repos.get_content(owner, repo, path, ref) in the linked documentation. Reproduce both examples, then verify that the public signature, documented usage, and supported content lookup behavior agree without the shown KeyError or TypeError.
Written by the indexing model from the issue text.
Description
from ghapi.all import GhApi
gh_api = GhApi()
gh_api.get_content("https://github.com/Ark-kun/pipeline_components/blob/47f3621344c884666a926c8a15d77562f1cc5e0a/components/XGBoost/Train/component.yaml")
KeyError Traceback (most recent call last)
<ipython-input-10-f6314c774e4a> in <module>
----> 1 gh_api.get_content("https://github.com/Ark-kun/pipeline_components/blob/47f3621344c884666a926c8a15d77562f1cc5e0a/components/XGBoost/Train/component.yaml")
/opt/conda/lib/python3.7/site-packages/ghapi/core.py in get_content(self, path)
222 @patch
223 def get_content(self:GhApi, path):
--> 224 res = self.repos.get_content(path)
225 return base64.b64decode(res.content)
226
/opt/conda/lib/python3.7/site-packages/ghapi/core.py in __call__(self, headers, *args, **kwargs)
61 route_p,query_p,data_p = [{p:kwargs[p] for p in o if p in kwargs}
62 for o in (self.route_ps,self.params,d)]
---> 63 return self.client(self.path, self.verb, headers=headers, route=route_p, query=query_p, data=data_p)
64
65 def __str__(self): return f'{self.tag}.{self.name}{signature(self)}\n{self.doc_url}'
/opt/conda/lib/python3.7/site-packages/ghapi/core.py in __call__(self, path, verb, headers, route, query, data)
107 for k,v in route.items(): route[k] = quote(str(route[k]))
108 res,self.recv_hdrs = urlsend(path, verb, headers=headers or None, debug=self.debug, return_headers=True,
--> 109 route=route or None, query=query or None, data=data or None)
110 if 'X-RateLimit-Remaining' in self.recv_hdrs:
111 newlim = self.recv_hdrs['X-RateLimit-Remaining']
/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlsend(url, verb, headers, route, query, data, json_data, return_json, return_headers, debug)
204 return_json=True, return_headers=False, debug=None):
205 "Send request with `urlrequest`, converting result to json if `return_json`"
--> 206 req = urlrequest(url, verb, headers, route=route, query=query, data=data, json_data=json_data)
207 if debug: debug(req)
208
/opt/conda/lib/python3.7/site-packages/fastcore/net.py in urlrequest(url, verb, headers, route, query, data, json_data)
187 def urlrequest(url, verb, headers=None, route=None, query=None, data=None, json_data=True):
188 "`Request` for `url` with optional route params replaced by `route`, plus `query` string, and post `data`"
--> 189 if route: url = url.format(**route)
190 if query: url += '?' + urlencode(query)
191 if isinstance(data,dict): data = (json.dumps if json_data else urlencode)(data).encode('ascii')
KeyError: 'repo'
This does not work either:
gh_api.get_content("Ark-kun", "pipeline_components", "/components/XGBoost/Train/component.yaml", "47f3621344c884666a926c8a15d77562f1cc5e0a")
ipython-input-12-c8d271a17611> in <module>
----> 1 gh_api.get_content("Ark-kun", "pipeline_components", "/components/XGBoost/Train/component.yaml", "47f3621344c884666a926c8a15d77562f1cc5e0a")
TypeError: get_content() takes 2 positional arguments but 5 were given
Parameters:
help(gh_api.get_content)
# get_content(path) method of ghapi.core.GhApi instance
but in documentation:
repos.get_content(owner, repo, path, ref): Get repository content
- Dominant language
- Python
- Stars
- 687
- Forks
- 69
- Avg merge
- 1m
- Merged PRs (30d)
- 2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AnswerDotAI/ghapi
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
AnswerDotAI/ghapi#158 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
AnswerDotAI/ghapi#120 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 58/100
AnswerDotAI/ghapi#208 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
AnswerDotAI/ghapi#201 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
AnswerDotAI/ghapi#186 ·
All issues in AnswerDotAI/ghapi
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
stephrobert/dsoxlab#238 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
sublimehq/package_control#1780 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
nwg-piotr/nwg-displays#145 ·