Windows ANSI initialization uses nonexistent subprocess.STD_OUTPUT_HANDLE

Offen Anfängerfreundlich
#721 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

@Fire162 arbeitet bereits daran.

Seit 29.10.2026.

  • #727 von @Fire162 — offen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
72/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
cli

Rechercherichtung

Beginne mit initialize_or_disable() in fire/formatting_windows.py und prüfe, wie das Windows-Standardausgabe-Handle ermittelt wird. Das Issue weist auf die fehlende Referenz subprocess.STD_OUTPUT_HANDLE hin und merkt an, dass der vollständige Initialisierungspfad unter Windows nicht getestet wurde. Die Aufgabe ist abgeschlossen, wenn der Code eine gültige Win32-Konstante verwendet und der Windows-Initialisierungspfad unter den angegebenen Bedingungen funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

In fire/formatting_windows.py, initialize_or_disable() references a constant that does not exist in Python's subprocess module.

Problematic code
out_handle = kernel32.GetStdHandle(
    subprocess.STD_OUTPUT_HANDLE
)
Verification
import subprocess

print(hasattr(subprocess, 'STD_OUTPUT_HANDLE'))
# False
Expected behavior

The application should obtain the Windows standard output handle using a valid Win32 constant.

Actual behavior

When this code path executes, accessing the missing attribute would raise AttributeError.

Environment

This affects the Windows-specific code path when Colorama is installed, standard output is a terminal, and platform.release() returns '10'.

Testing

Verified that the attribute is absent. The complete Windows initialization path has not been tested on Windows.

Vorherrschende Sprache
Python
Sterne
28.2k
Forks
1.5k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus google/python-fire

Alle Issues in google/python-fire

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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