11"""Debug functionality that allows for more useful issue reporting
22"""
33
4+ import platform
45import sys
56import traceback
67import importlib
78from typing import Tuple , Optional , Callable
89
10+ from pygame .version import ver
11+
912ImportResult = Tuple [str , bool , Optional [Callable ]]
1013
1114
@@ -53,6 +56,24 @@ def attempt_import(module, function_name, output_str=""):
5356 return (output_str , success , i )
5457
5558
59+ def _get_platform_info ():
60+ """
61+ Internal helper to get platform information
62+ """
63+ ret = f"Platform:\t \t { platform .platform ()} \n "
64+ ret += f"System:\t \t \t { platform .system ()} \n "
65+ ret += f"System Version:\t \t { platform .version ()} \n "
66+ ret += f"Processor:\t \t { platform .processor ()} \n "
67+ ret += (
68+ f"Architecture:\t \t Bits: { platform .architecture ()[0 ]} \t "
69+ f"Linkage: { platform .architecture ()[1 ]} \n \n "
70+ )
71+
72+ ret += f"Python:\t \t \t { platform .python_implementation ()} { sys .version } \n "
73+ ret += f"pygame version:\t \t { ver } \n "
74+ return ret
75+
76+
5677def print_debug_info (filename = None ):
5778 """Gets debug information for reporting bugs. Prints to console
5879 if filename is not specified, otherwise writes to that file
@@ -107,38 +128,7 @@ def default_return(linked=True):
107128 else :
108129 ft_version = freetype [1 ]
109130
110- from pygame .version import ver
111-
112- import platform
113-
114- debug_str += f"Platform:\t \t { platform .platform ()} \n "
115-
116- debug_str += f"System:\t \t \t { platform .system ()} \n "
117-
118- debug_str += f"System Version:\t \t { platform .version ()} \n "
119-
120- debug_str += f"Processor:\t \t { platform .processor ()} \n "
121-
122- debug_str += (
123- f"Architecture:\t \t Bits: { platform .architecture ()[0 ]} \t "
124- f"Linkage: { platform .architecture ()[1 ]} \n "
125- )
126-
127- if display_init ():
128- debug_str += f"Display Driver:\t \t \t { get_display_driver ()} \n \n "
129- else :
130- debug_str += "Display Driver:\t \t \t Display Not Initialized\n \n "
131-
132- if mixer_init ():
133- debug_str += f"Mixer Driver:\t \t \t { get_mixer_driver ()} \n \n "
134- else :
135- debug_str += "Mixer Driver:\t \t \t Mixer Not Initialized\n \n "
136-
137- debug_str += f"Python:\t \t \t { platform .python_implementation ()} \n "
138-
139- debug_str += f"pygame version:\t \t { ver } \n "
140-
141- debug_str += f"python version:\t \t { str_from_tuple (sys .version_info [0 :3 ])} \n \n "
131+ debug_str += _get_platform_info ()
142132
143133 debug_str += (
144134 f"SDL versions:\t \t Linked: { str_from_tuple (get_sdl_version ())} \t "
@@ -162,9 +152,19 @@ def default_return(linked=True):
162152
163153 debug_str += (
164154 f"Freetype versions:\t Linked: { str_from_tuple (ft_version ())} \t "
165- f"Compiled: { str_from_tuple (ft_version (linked = False ))} "
155+ f"Compiled: { str_from_tuple (ft_version (linked = False ))} \n \n "
166156 )
167157
158+ if display_init ():
159+ debug_str += f"Display Driver:\t \t { get_display_driver ()} \n "
160+ else :
161+ debug_str += "Display Driver:\t \t Display Not Initialized\n "
162+
163+ if mixer_init ():
164+ debug_str += f"Mixer Driver:\t \t { get_mixer_driver ()} "
165+ else :
166+ debug_str += "Mixer Driver:\t \t Mixer Not Initialized"
167+
168168 if filename is None :
169169 print (debug_str )
170170
0 commit comments