Releases: bennett-nguyen/KAY
v0.8.1
Version 0.8.1
This patch includes a new command error-handling system. By overriding the default argparse.ArgumentParser.exit()
, this will now raise a CommandException
for the CommandManager
to catch instead of exiting the application. The new parser is called ArgumentParserNoExit
. Other than that, if the parser detects any argument errors like invalid type for example, the parser will raise an ArgumentError
and it's the responsibility of CommandManager
to catch that as well.
I also reworked the line-drawing algorithm by adding anti-aliasing. Now the lines that connect the nodes will look 100000x smoother than before.
Changes
2a0abd6: New command error-handling system.
79f136c: Anti-aliasing for line-drawing.
v0.8.0
Version 0.8.0
This version introduced a new command processing system and added commands so users can freely interact with the app.
Each command has its own parser implemented using the argparse
Python library and they can access the states of the app to change the app's behavior. This version only includes basic command support, command error handling is not yet a feature and the app may exit on error.
This version also changes the roles of some components. Particularly, Model
is now changed to AppState
so that it only holds the states and data of the app (rendering, theme management, tree management, etc.). This change is critical as it allows commands to modify certain stuff within the app.
I'm too lazy to describe what has changed so here's the changelog.
Changelog
154d130: Restructured the codebase and add a base class for implementing commands. I also created some basic commands for interacting with the tree and stuff.
627cf36: Restructured the codebase again and added even more commands. This also includes rendering access from the AppState
for highlighting-range
658a620: Docstrings to the win! (+ a description
attribute for QueryFunction
)
v0.7.0
Version 0.7.0
This version introduces a lot of breaking changes to the app, mainly to replace the old command line system with a new one that is easier to program and maintain in the future. Along with that, I also ditches some UI implementation in the previous version to make it less bloated.
The app now has some QOL updates after a year of inactivity:
- Window resizing;
- Dynamic FPS - frame rate will automatically set to lowest if the window is not focused;
- Better module management;
- Resizable window.
Changes
05379fb: Removed basically everything about the old command line system.
9fc2dbf: Added the infrastructure to change the segment tree's query function, the front-end to interact with this will be implemented via a command in the new command line system.
74b7444: Rewritten the tree drawing part using BFS and merged finding hovered node into this process as well.
d9d221f: Added tree zooming.
4d7a6c7 & 21dc56a: Added more code documentation.
05379fb: Restructured the project files and revamp the codebase once again to make importing stuff less of a hassle.
45613ca: Fix that one minor inconsistency in the requirements.
bba0bfe: Added window resizing support, also the window now has its own class.
d8fd64a: Completed the front-end for inputting commands.
v0.6.1
This is the last version which still implement the pygamegui
GUI engine. From this version onwards, the app will be rewritten entirely using a new GUI engine with a simpler user interface.
This version includes some patches and minor optimizations.