Skip to content

Commit

Permalink
V0.5.2 commit
Browse files Browse the repository at this point in the history
not done
  • Loading branch information
shenjackyuanjie committed Sep 16, 2021
1 parent d20567c commit fd76914
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 20 deletions.
20 changes: 14 additions & 6 deletions Difficult_Rocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,29 @@
sys.path.append('Difficult_Rocket/libs')

print(hi)

DEBUGGING = False
from Difficult_Rocket.api.Exp import *
try:
from Difficult_Rocket import crash
from Difficult_Rocket import main

game = main.Game()
game.start()

if DEBUGGING:
raise TestError('debugging')
except TestError:
print('the game is debugging. this crash is raise by TestError')
error = traceback.format_exc()
print(error)
crash.create_crash_report(error)
except:
print('the game has error , now outputting error message')
print('the game has unknown error , now outputting error message')
error = traceback.format_exc()
print(error)
from Difficult_Rocket.api import thread

crash_thread = thread.Threads(target=crash.create_crash_report, args=(error,), name='Crash report thread')
crash_thread.start()
crash_thread.join()
crash.create_crash_report(error)
else:
crash.record_thread = False
print(crash.all_thread)
sys.exit(1)
1 change: 0 additions & 1 deletion Difficult_Rocket/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,5 +206,4 @@ def on_close(self) -> None:
config_file['window']['width'] = str(self.width)
config_file['window']['height'] = str(self.height)
config_file.write(open('configs/main.config', 'w', encoding='utf-8'))
create_crash_report()
super(ClientWindow, self).on_close()
42 changes: 31 additions & 11 deletions Difficult_Rocket/crash.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,15 @@


import os
import threading
import time
import platform
import traceback
import threading
from typing import Optional

# import psutil
# for more system info

# where the crash report from
# this can't be crash , or the game will really crash!

Expand All @@ -30,42 +34,44 @@
Thread_message = """## Thread info
"""

Python_message = """## Python info
"""

System_message = """## System info
"""


all_thread = [threading.main_thread()]
record_thread = True


def crash_info_handler(info: str = None) -> str:
if not info:
info = traceback.format_exc()
format_info = '- {}'.format(info.replace('\n', '\n- '))
if (format_info.rfind('- ') + 2) == len(format_info):
format_info = format_info[:-2]
format_info = f"<pre>\n{info}</pre>\n"
return format_info


def markdown_line_handler(string: Optional[str or bool or int or float], code: bool = False, level: int = 1) -> str:
def markdown_line_handler(string: Optional[str or bool or int or float], code: bool = False, level: int = 1, end: str = '\n') -> str:
lvl = '- ' * level
f_string = string
if code:
f_string = '`{}`'.format(f_string)
return '{}{}\n'.format(lvl, f_string)
return '{}{}{}'.format(lvl, f_string, end)


def create_crash_report(info: str = None) -> None:
if info:
crash_info = crash_info_handler(info)
else:
crash_info = crash_info_handler(traceback.format_exc())
crash_info = crash_info_handler(info)
if 'crash_report' not in os.listdir('./'):
os.mkdir('./crash_report')
date_time = time.strftime('%Y-%m-%d %H-%M-%S', time.gmtime(time.time()))
filename = 'crash-{}.md'.format(date_time)
with open('./crash_report/{}'.format(filename), 'w+') as crash_file:
crash_file.write(Head_message) # 开头信息
# 开头信息
crash_file.write(Head_message)
# 崩溃信息
crash_file.write(crash_info)
# 运行线程信息
crash_file.write(Thread_message)
for thread in all_thread:
thread: threading.Thread
Expand All @@ -74,7 +80,21 @@ def create_crash_report(info: str = None) -> None:
crash_file.write(markdown_line_handler(f'Ident: {thread.ident}', level=2))
crash_file.write(markdown_line_handler(f'Daemon: {thread.isDaemon()}', level=2))
crash_file.write(markdown_line_handler(f'Running: {thread.is_alive()}', level=2))
# Python 信息
crash_file.write(Python_message)
crash_file.write(markdown_line_handler(f'Version: {platform.python_version()}', code=True, level=1))
# crash_file.write(markdown_line_handler(f'Version tuple: {platform.python_version_tuple()}', code=True, level=1))
# crash_file.write(markdown_line_handler(f'Build: {platform.python_build()}', code=True, level=1))
crash_file.write(markdown_line_handler(f'Implementation: {platform.python_implementation()}', code=True, level=1))
crash_file.write(markdown_line_handler(f'Compiler: {platform.python_compiler()}', code=True, level=1))
# 电脑系统信息
crash_file.write(System_message)
crash_file.write(markdown_line_handler(f'System: {platform.platform()}', code=True, level=1))
crash_file.write(markdown_line_handler(f'Computer name: {platform.node()}', code=True, level=1))
crash_file.write(markdown_line_handler(f'machine: {platform.machine()}', code=True, level=1))
crash_file.write(markdown_line_handler(f'processor: {platform.processor()}', code=True, level=1))
crash_file.write(markdown_line_handler(f'release: {platform.release()}', code=True, level=1))
crash_file.write(markdown_line_handler(f'version: {platform.version()}', code=True, level=1))


if __name__ == '__main__':
Expand Down
4 changes: 3 additions & 1 deletion docs/update_logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@

- now bin folder use the name `Difficult_Rocket`
- now test files no longer have `_test_` prefix
- now will always use local `pyglet`
- now will always use local `pyglet` # may change
- now fitting `pypy3.10`
- now `crash-report` have more information

### Add

Expand Down
3 changes: 2 additions & 1 deletion requirement.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
-i https://pypi.tuna.tsinghua.edu.cn/simple
semver
psutil
pyglet
pillow
json5
json5

0 comments on commit fd76914

Please sign in to comment.