AnswerDotAI / AnswerDotAI/nbdev
Error in nbdev_readme due to potential bug in ```_non_empty_keys(d: dict)```
- Vorherrschende Sprache
- Jupyter Notebook
- Sterne
- 5.3k
- Forks
- 513
- Ø Merge
- 2 T. 30 Min.
- Gemergte PRs (30 T.)
- 8
Beschreibung
I got an error when running ```nbdev_readme```. Traceback:
```
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/IPython/core/formatters.py", line 221, in catch_format_error
r = method(self, *args, **kwargs)
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/IPython/core/formatters.py", line 342, in __call__
return method()
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/nbdev/showdoc.py", line 175, in _repr_markdown_
if self.dm.has_docment: doc += f"\n\n{self.dm}"
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/nbdev/showdoc.py", line 64, in has_docment
def has_docment(self): return 'docment' in self._columns and self._row_list
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/nbdev/showdoc.py", line 59, in _columns
cols = set(flatten(L(self.dm.values()).filter().map(_non_empty_keys)))
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/fastcore/foundation.py", line 156, in map
def map(self, f, *args, gen=False, **kwargs): return self._new(map_ex(self, f, *args, gen=gen, **kwargs))
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/fastcore/basics.py", line 840, in map_ex
return list(res)
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/fastcore/basics.py", line 825, in __call__
return self.func(*fargs, **kwargs)
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/nbdev/showdoc.py", line 23, in _non_empty_keys
def _non_empty_keys(d:dict): return L([k for k,v in d.items() if v != inspect._empty])
File "/home/nikolas/Programs/miniconda3/lib/python3.9/site-packages/nbdev/showdoc.py", line 23, in
def _non_empty_keys(d:dict): return L([k for k,v in d.items() if v != inspect._empty])
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
```
Fixed this as follows:
In ```nbs/api/08_showdoc.ipynb```,
modify the function ```_non_empty_keys``` to
```
def _non_empty_keys(d:dict): return L([k for k,v in d.items() if all(v != inspect._empty)])
```
```nbdev_readme``` then works and creates the correct output.
Beitragsleitfaden
Rechercherichtung
Beginne in nbs/api/08_showdoc.ipynb und untersuche _non_empty_keys(d: dict), das im nbdev_readme-Traceback erscheint. Führe nbdev_readme aus, um den mehrdeutigen Array-Wahrheitswertfehler zu reproduzieren, und überprüfe anschließend, dass die korrigierte Filterung die erwartete Ausgabe erzeugt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- jupyter-notebook, python
- Bereich
- documentation
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 55/100