# Make sure that DeprecationWarning within this package always gets printed
warnings.filterwarnings('always', category=DeprecationWarning,
module=r'^{0}\.'.format(re.escape(__name__)))
via __init__.py
C'est vraiment un très mauvais comportement. Si vous pensez que vous devez vraiment le faire, veuillez utiliser append=True
Pourriez-vous s'il vous plaît expliquer en quoi cela pose problème pour votre application ? D'après les commentaires, il semble que cela ne devrait affecter que DeprecationWarnings
dans scikit-learn.
(Voir également la discussion connexe dans https://github.com/scikit-learn/scikit-learn/pull/6930)
Pourriez-vous s'il vous plaît expliquer pourquoi sklearn
remplace une configuration d'avertissement personnalisée ?
Si vous ajoutez append=True
, vous ne remplacerez pas une configuration d'avertissement qui n'a pas été personnalisée.
Le problème est que l'état global de mes applications ne devrait pas être affecté par l'importation de votre package. Je ne voudrais pas non plus que vous fassiez des choses comme changer ma configuration de journalisation.
Si vous ajoutez append=True, vous ne remplacerez pas une configuration d'avertissement qui n'a pas été personnalisée.
Essayé, cela, en installant sklearn à partir des sources et en levant manuellement une dépréciation dans sklearn.utils.__init__.py
. Avec la configuration par défaut, l'avertissement s'est déclenché comme prévu lors de l'appel de python -c "import sklearn.utils"
. Si nous ajoutons append=True
à warnings.filterwarnings
utilisé dans sklearn/__init__.py
le DeprecationWarning
n'est plus levé. Je n'ai pas cherché pourquoi.
Je suis d'accord que la situation actuelle est mauvaise, j'étais juste curieux de savoir quel genre de problèmes pratiques vous rencontrez avec cette configuration (au-delà du fait que c'est mauvais par principe). Avoir une bonne compréhension des cas d'utilisation nous aiderait également à trouver la bonne solution. Ce problème a été discuté dans https://github.com/scikit-learn/scikit-learn/issues/9857 (voir notamment https://github.com/scikit-learn/scikit-learn/issues/9857#issuecomment- 333351913 et https://github.com/scikit-learn/scikit-learn/issues/9857#issuecomment-333359072) qui explique la raison des situations actuelles.
En fermant ceci en tant que duplicata de https://github.com/scikit-learn/scikit-learn/issues/9857 (pour éviter de fragmenter la même discussion sur plusieurs problèmes). Vous êtes cependant les bienvenus pour commenter ou proposer des solutions.
Commentaire le plus utile
Pourriez-vous s'il vous plaît expliquer pourquoi
sklearn
remplace une configuration d'avertissement personnalisée ?Si vous ajoutez
append=True
, vous ne remplacerez pas une configuration d'avertissement qui n'a pas été personnalisée.Le problème est que l'état global de mes applications ne devrait pas être affecté par l'importation de votre package. Je ne voudrais pas non plus que vous fassiez des choses comme changer ma configuration de journalisation.