You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using fire in Git Bash on Windows, the initialize_or_disable function in the formatting_windows.py unnecessarily invokes colorama.init(wrap=True) even though Git Bash already supports native ANSI escape sequences. This behavior causes issues, such as double-wrapped output or incorrect handling of ANSI sequences, which can lead to degraded user experience or unexpected output.
Steps to Reproduce
Use Git Bash on a Windows system.
Run a script that uses fire with formatting enabled.
Observe that the output is handled incorrectly due to the invocation of colorama.init(wrap=True).
Root Cause Analysis
The initialize_or_disable function currently does not differentiate between Git Bash and other Windows environments like cmd.exe or powershell.exe. Specifically:
Git Bash natively supports ANSI escape sequences.
The function does not explicitly check for Git Bash and thus assumes it must handle formatting via colorama.
This leads to colorama.init(wrap=True) being invoked unnecessarily, causing redundant processing and potential output issues.
Proposed Solution
Add an explicit check for Git Bash environments in the initialize_or_disable function. This can be achieved by inspecting environment variables such as MSYSTEM or TERM, which are typically set in Git Bash.
Additionally, provide a configuration option to control whether the formatting_windows functionality is enabled or disabled. This will allow users to explicitly manage how formatting is handled.
Suggested Changes
Modify initialize_or_disable to detect Git Bash:
definitialize_or_disable():
is_git_bash=os.environ.get('MSYSTEM') oros.environ.get('TERM') in ['xterm', 'xterm-256color']
ifis_git_bash:
print("Detected Git Bash, skipping colorama.init")
return# Skip colorama initialization for Git Bash# Existing logic for colorama and ANSI initialization
Add a configuration flag to enable or disable the formatting_windows logic explicitly. For example:
ENABLE_FORMATTING_WINDOWS=os.environ.get('ENABLE_FORMATTING_WINDOWS', '1') =='1'ifENABLE_FORMATTING_WINDOWS:
initialize_or_disable()
else:
print("Formatting for Windows is disabled")
Please consider implementing the above solution
The text was updated successfully, but these errors were encountered:
Description
When using
fire
in Git Bash on Windows, theinitialize_or_disable
function in theformatting_windows.py
unnecessarily invokescolorama.init(wrap=True)
even though Git Bash already supports native ANSI escape sequences. This behavior causes issues, such as double-wrapped output or incorrect handling of ANSI sequences, which can lead to degraded user experience or unexpected output.Steps to Reproduce
Use Git Bash on a Windows system.
Run a script that uses
fire
with formatting enabled.Observe that the output is handled incorrectly due to the invocation of
colorama.init(wrap=True)
.Root Cause Analysis
The initialize_or_disable function currently does not differentiate between Git Bash and other Windows environments like
cmd.exe
orpowershell.exe
. Specifically:Git Bash natively supports ANSI escape sequences.
The function does not explicitly check for Git Bash and thus assumes it must handle formatting via
colorama
.This leads to
colorama.init(wrap=True)
being invoked unnecessarily, causing redundant processing and potential output issues.Proposed Solution
Add an explicit check for Git Bash environments in the
initialize_or_disable
function. This can be achieved by inspecting environment variables such asMSYSTEM
orTERM
, which are typically set in Git Bash.Additionally, provide a configuration option to control whether the formatting_windows functionality is enabled or disabled. This will allow users to explicitly manage how formatting is handled.
Suggested Changes
Modify
initialize_or_disable
to detect Git Bash:Add a configuration flag to enable or disable the
formatting_windows
logic explicitly. For example:Please consider implementing the above solution
The text was updated successfully, but these errors were encountered: