J'ai une fonction C++ qui est appelée à partir de nombreuses fonctions Python via Boost :: Python. Lorsque la fonction C++ détecte les mauvais arguments, je veux écrire un message de journal et continuer le traitement. Dans ce message de journal je voudrais noter le module Python et le numéro de ligne qui a appelé en C++. Comment puis-je faire ceci?Comment puis-je obtenir le module Python et le numéro de ligne qui appelait ma fonction C++ via Boost :: Python?
Je peux lancer une exception de C++ qui est traduite en une exception Python que je peux attraper, mais qui annule la fonction C++ que je ne peux pas avoir. Par exemple, disons que je veux enregistrer un message d'avertissement si factorial() reçoit un nombre inférieur à un. Ignorer le fait qu'il peut facilement gérer le cas (et fait) - mon patron veut un avertissement de toute façon. ;)
Ce code peut être appelé à partir de Python directement ou à partir d'autres fonctions C++ qui sont appelées à partir de Python afin que la trace de la pile C++ ne soit pas très utile. J'espère que la bibliothèque Boost :: Python fournit cette capacité de C++.
avez-vous déjà trouvé un moyen? Je cherche également à obtenir le numéro de ligne (d'où ma fonction Python a été appelée, sans C++ impliqué) sans lancer une exception – Anentropic
@Anentropic - Tristement, non. :( –