Scikit-learn: warnings.filterwarnings -- bitte tun Sie dies nicht. es ist schlechtes Benehmen.

Erstellt am 10. Aug. 2018  ·  3Kommentare  ·  Quelle: scikit-learn/scikit-learn

# Make sure that DeprecationWarning within this package always gets printed
warnings.filterwarnings('always', category=DeprecationWarning,
module=r'^{0}\.'.format(re.escape(__name__)))

über __init__.py

Das ist wirklich ein ziemlich schlechtes Verhalten. Wenn Sie das Gefühl haben, dass Sie dies wirklich tun müssen, verwenden Sie bitte append=True

Hilfreichster Kommentar

Könnten Sie bitte erläutern, warum sklearn eine benutzerdefinierte Warnungskonfiguration überschreibt?

Wenn Sie append=True hinzufügen, überschreiben Sie keine nicht angepasste Warnungskonfiguration.

Das Problem ist, dass der globale Status meiner Anwendungen durch den Import Ihres Pakets nicht beeinflusst werden sollte. Ich möchte auch nicht, dass Sie Dinge tun, wie zum Beispiel meine Protokollierungskonfiguration ändern.

Alle 3 Kommentare

Könnten Sie bitte erläutern, inwiefern dies ein Problem für Ihre Anwendung ist? Aus den Kommentaren geht hervor, dass es nur DeprecationWarnings innerhalb von scikit-learn betreffen sollte.

(Siehe auch die entsprechende Diskussion in https://github.com/scikit-learn/scikit-learn/pull/6930)

Könnten Sie bitte erläutern, warum sklearn eine benutzerdefinierte Warnungskonfiguration überschreibt?

Wenn Sie append=True hinzufügen, überschreiben Sie keine nicht angepasste Warnungskonfiguration.

Das Problem ist, dass der globale Status meiner Anwendungen durch den Import Ihres Pakets nicht beeinflusst werden sollte. Ich möchte auch nicht, dass Sie Dinge tun, wie zum Beispiel meine Protokollierungskonfiguration ändern.

Wenn Sie append=True hinzufügen, überschreiben Sie keine nicht angepasste Warnungskonfiguration.

Das habe ich versucht, indem ich sklearn aus den Quellen installiert und manuell eine Einstellung in sklearn.utils.__init__.py ausgelöst habe. In der Standardkonfiguration wurde die Warnung wie erwartet ausgegeben, wenn python -c "import sklearn.utils" . Wenn wir append=True zu warnings.filterwarnings hinzufügen, die in sklearn/__init__.py DeprecationWarning nicht mehr erhöht. Ich habe nicht untersucht warum.

Ich stimme zu, dass die aktuelle Situation schlecht ist, ich wollte nur wissen, auf welche praktischen Probleme Sie mit diesem Setup stoßen (abgesehen von der Tatsache, dass es grundsätzlich schlecht ist). Ein gutes Verständnis der Anwendungsfälle würde uns auch helfen, die richtige Lösung zu finden. Dieses Problem wurde in https://github.com/scikit-learn/scikit-learn/issues/9857 diskutiert (siehe insbesondere https://github.com/scikit-learn/scikit-learn/issues/9857#issuecomment- 333351913 und https://github.com/scikit-learn/scikit-learn/issues/9857#issuecomment-333359072), die den Grund für die aktuellen Situationen umreißen.

Schließen Sie dies als Duplikat von https://github.com/scikit-learn/scikit-learn/issues/9857 (um eine Fragmentierung derselben Diskussion über mehrere Probleme zu vermeiden). Sie können dort jedoch gerne Kommentare abgeben oder Lösungen vorschlagen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen