For BAM and filled materials the default would give a warning position since for a filament switch it needs to retract more than for the normal print.
Done as a 5 minute fix.
Added additional option for disabling all retract options
Added more comments.
Added support for firmware based retractions.
Added support for outputting changes to LCD (untested).
Added type hints to most functions and variables.
Created GCodeCommand class for better detection of G1 vs G10 or G11 commands, and accessing arguments.
Fixed issue of properly restoring previous values in single layer option.
Improved wording of Single Layer vs Keep Layer to better reflect what was happening.
Moved most GCode methods to GCodeCommand class.
* Fix PermissionError when importing http.server
Instead of crashing, now it'll just not start the server. This means that you won't be able to receive the response from the log-in so you won't be able to log in. The browser gives an error that it can't find the page on localhost. But at least it doesn't crash.
Fixes crash CURA-3Q.
* Log an error when the HTTP server can't be started
Contributes to crash CURA-3Q.
* Indicate that types are optional
Attempt to fix the typing issue with MyPy. I can't run this locally so the CI server will have to tell me if this fixed it.
Contributes to Sentry issue CURA-3Q.
See CURA-3M in sentry. It most commonly happens with the anycubic,
since it had some weird stuff with it suddenly supporting materials.
This change will make it so that no crash happens. Old profiles will still have
an empty material. This isn't really an issue, since the interface will mark this
as an error (prompting users to switch).