-
Notifications
You must be signed in to change notification settings - Fork 44
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
Static type checking / problem annotation / improvements / refactoring #152
base: master
Are you sure you want to change the base?
Conversation
0f58f93
to
09fa421
Compare
eeecbd5
to
d414934
Compare
This prevents subsequent errors and fixes errors thrown by static code analysis.
- Correctly override optionxform - String can not be None - Fixed import of urllib - Exit if game id is not present - Allow paths to be str or Path
- Typed config - Separate sections in object - Easy and clean interface - Reusable
- use print functions instead of manual - class methods - caching - format string
d414934
to
739a137
Compare
- Changed ruff's docstring style to "google" - Removed ignored ruff rules, that are already satisfied - Ignore missing cls annotations (ANN102) - Added docstrings to Config and ConfigBase (+Engine)
- enable static type checking via pyright-action - added pyproject.toml with basic meta data and pyright configuration - use action-shellcheck instead of installing it manually - use ruff-action instead of installing it manually - Cache pip dependencies
- Use pathlib if possible - Return Path() object is possible - Parse ProtonVersion correctly - Reimplemented get_resolution() with RegEx - Reimplemented _get_case_insensitive_name() - Reimplemented _killhanging() - Reimplemented _checkinstalled() - Improved some logging - Some caching
util.py: - Added create_dos_device() - Added patch_conf_value() - Added patch_voodoo_conf() - Added get_path_syswow64() - Moved class ReplaceType from Bethesda mod support (class Redirect) Other: - Refactored gamefixes to use pathlib - Simplified / reimplemented some fixes - Some docstrings - Linked Gobliiins 5 demo to main game - Unified Gothic 3 and Gothic 3 Forsaken Gods Enhanced Edition - Fixes after rebase
- Logger: use Enum values for colors - Use default parameters, if argument is equal
- Fixed relative imports - Removed import handling via ImportError exception - Fixed CI by running via module, instead of file - Added / improved handling in __init__.py for unit tests
739a137
to
71eb0da
Compare
The PR should be ready to go. I know it's heavy... but if you go through it commit by commit, it shouldn't be too complex. Sorry about that. Splitting wasn't really an option. If it gets merged, I would vote for keeping the commit history and avoiding squashing it. I finally tested it and fixed the last remaining issue, the "ugly" imports for the unit tests. Disclaimer: I have only tested it with Steam and it works for me. It would be nice if someone could test it on other platforms. |
This PR enables static type checking and annotation of CI issues on GitHub.
It has not been tested much though, so I am opening it as a draft PR.
I'm also not sure if the relative imports will cause problems.
Feedback and testing welcome.
pathlib
inutil.py
and gamefixesutil.py
util.py
ConfigBase
classlogger.py
CC #50