Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: code rationalization - WIP #27

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

sanzoghenzo
Copy link

@sanzoghenzo sanzoghenzo commented Jan 3, 2021

Hi there, happy new year!

this is a (still dirty) refactor of the code to make it more readable and maintainable.

Feature highlight:

  • use src layout for python modules
  • use pydantic for (json) settings management
  • centralize paths and url management / constants, using pathlib
  • use typer for CLI design (I changed some options and organized them by commands)
  • move dashboard in systray process (it is still the default command in the CLI, but not used by the systray)
  • use classes for tkinter (Frame subclass) and pygame (Sprite and Group subclasses) windows and components
  • using a model class for each tkinter window to handle variables and pass the data to the related methods
  • use the Frame.mainloop() in tkinter windows instead of manually handle the loop.

Still need to extensively test, add animations and build the pyinstaller executables.

I'm publishing it as a Draft because I don't think I'll have much time in the following weeks to continue;
I hope this all makes sense to you and that can be helpful to build the next iteration.

- use src layout for python modules
- use classes for tkinter and pygame windows
- use pydantic for settings management
- centralize paths management
- use typer for CLI
- move dashboard in systray process

Still need to extensively test and add animations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant