Verbose Information on TypeError runtime crashes?
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Es werden keine Dateien, Tests oder Einstiegspunkte genannt. Beginne damit, die Stelle zu finden, an der der PyArray-Konvertierungs-TypeError-Text erzeugt wird, und ermittle dann, ob dort Typparameter und Argumentnamen verfügbar sind; abgeschlossen wäre die Arbeit, wenn ein definierter, getesteter Ansatz vorliegt, um den angeforderten zusätzlichen Kontext ohne nicht spezifizierte Laufzeitkosten bereitzustellen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Thank you for pyo3.
Using pyo3, when my python code sends the wrong shape (can typically happen given python's dynamic typing during any development work) I get a python backtrace going down to my line of code calling into my rust, and a text error description like:
TypeError: 'float64' object cannot be converted to 'PyArray<T, D>'
Is there a more verbose mode to pyo3 runtime for cases like this?
Of course if my dev workflow is linear enough, I know I should check my types at that line and have good context in mind for quickly resolving it even without re-running with try-except for logging more details.
However it would be nice to have more information already in the error description if possible:
- What are the type values of
TandD? - Which function argument is the error arising for?
Of course, user code can always try-except the offending python call and we can work to reproduce that crash in repeat runs, even if it's outside the development cycle. But having more information by default provides more peace of mind knowing that before you have managed to reproduce you have some more details than the line of user code. All-in-all this is an enhancement which some may object if it adds runtime cost, especially for release builds.
Consider that when we expose rust code to python, some python developers would much appreciate knowing more about the expected types than those developers who understand pyo3 or can directly work with the rust code.
- Vorherrschende Sprache
- Rust
- Sterne
- 1.4k
- Forks
- 141
- Ø Merge
- 15 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PyO3/rust-numpy
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
PyO3/rust-numpy#565 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
PyO3/rust-numpy#563 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 56/100
PyO3/rust-numpy#557 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
PyO3/rust-numpy#547 · 2 Kommentare ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 20/100
PyO3/rust-numpy#535 ·
Alle Issues in PyO3/rust-numpy
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
linebender/parley#849 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
boxlite-ai/boxlite#1729 ·
Maintainer antworten meist innerhalb von 1 Tag
-
external
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
langchain-ai/docs#6255 ·
Maintainer antworten meist innerhalb von 1 Tag
-
P2 testing
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag