First of all, thanks for thinking of contributing to this project. 💖
From here on, we assume you have the application up and running. Before creating a pull request, please make sure that you've tested everything thoroughly and you've run all the linting tools:
python -m poetry run black .\src\ --check
python -m poetry run isort .\src\ --diff
python -m poetry run flake8 .\src\ --statistics
To add new dependencies to the project, please check the Poetry documentation.
All utils can be found in the utils
directory. Here you can contribute by improving or implementing stuff regarding:
Keyboard interaction with the GB Operator software
Retrieving image data from the GB Operator software
- Whatever you can think of
The core source code for the shiny hunters can be found in the shunter
directory. If you want to create a new shiny hunter you must implement the shiny hunter interface
when doing so. You can extend the shiny hunter interface
, if needed, or create new interfaces in the abstract
directory. If you want to create a data object, do it under the models
directory by using pydantic
. The newly created shiny hunter should be located in the shunter
directory. The last step, to make the newly created shiny hunter available, is to add a new type in the ShinyHunterType class
and expose it in main
:
class ShinyHunterType(Enum):
stationary = "stationary"
new_shiny_hunter = "new_shiny_hunter"
def main():
shiny_hunter = None
hunter_type = parse_hunter_type()
if hunter_type == ShinyHunterType.stationary:
shiny_hunter = ShinyHunterStationary()
elif hunter_type == ShinyHunterType.new_shiny_hunter:
shiny_hunter = NewShinyHunter()
shiny_hunter.start_loop()