This PR is the snekbox side of changes made to allow bot's !eval to support colored output. The first of the two commits for bot's side allows ANSI codes to be rendered when given via print or such, but Python 3.13 does not produce these colors in tracebacks without an environment variable. Per documentation, there are two such envars - PYTHON_COLORS and FORCE_COLOR. Testing has shown FORCE_COLOR to have no effect in eval output, while PYTHON_COLORS (even by itself) produces colored tracebacks.
The insertion of ANSI codes produces significant problems when code is long enough to require uploading to pinnwand, however, so this PR probably should not be merged unless the Prevent 3.13's ANSI escapes from mangling pinnwand uploads commit from bot's PR is also merged, which fixes the problems.
coverage: 89.158%. remained the same
when pulling 1d4c8480490bf8a6ea7146338e3288c347697c16 on thurisatic:colorsnek
into 2fc04c663e77f253444729673eda06d62d540efd on python-discord:main.
This PR is the snekbox side of changes made to allow bot's
!eval
to support colored output. The first of the two commits for bot's side allows ANSI codes to be rendered when given viaprint
or such, but Python 3.13 does not produce these colors in tracebacks without an environment variable. Per documentation, there are two such envars -PYTHON_COLORS
andFORCE_COLOR
. Testing has shownFORCE_COLOR
to have no effect in eval output, whilePYTHON_COLORS
(even by itself) produces colored tracebacks.The insertion of ANSI codes produces significant problems when code is long enough to require uploading to pinnwand, however, so this PR probably should not be merged unless the
Prevent 3.13's ANSI escapes from mangling pinnwand uploads
commit from bot's PR is also merged, which fixes the problems.python-discord/bot#3198 is bot's half