AnswerDotAI / AnswerDotAI/ghapi

Library is inconsistent with its documentation and some methods just do not work

Aperta
#109 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
686
Fork
69
Merge medio
1m
PR unite (30g)
2

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da GhApi.get_content in ghapi/core.py e confronta la sua firma get_content(path) con repos.get_content(owner, repo, path, ref) nella documentazione collegata. Riproduci entrambi gli esempi, quindi verifica che la firma pubblica, l’utilizzo documentato e il comportamento supportato per la ricerca dei contenuti siano coerenti senza il KeyError o il TypeError mostrati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
api
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.