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

Static type checking / problem annotation / improvements / refactoring #152

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

Conversation

Root-Core
Copy link
Contributor

@Root-Core Root-Core commented Oct 17, 2024

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.

  • Fixed all type errors
  • Added enums / type aliases
  • Added docstrings
  • Removed some ruff rule exceptions
  • Use pathlib in util.py and gamefixes
  • Refactoring of some gamefixes
  • Added some functions to util.py
    • create_dos_device()
    • patch_conf_value()
    • patch_voodoo_conf()
    • get_path_syswow64()
  • Reimplemented some functions in util.py
    • parsing of Proton version strings
    • get_resolution() with RegEx
    • _get_case_insensitive_name()
    • _killhanging()
    • _checkinstalled()
  • Implemented new ConfigBase class
  • Use config for caching dir
  • Refactored logger.py
  • et cetera..

CC #50

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
- 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
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.

1 participant