AnswerDotAI / AnswerDotAI/nbdev

Error in nbdev_readme due to potential bug in ```_non_empty_keys(d: dict)```

Offen
#1,322 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.