Bug fixes and some new refactorings

New Refactorings
Replace dict.get(x, None) with dict.get(x)
Before:
hats = {"bowler": Bowler(), "sombrero": Sombrero()}
fedora = hats.get("fedora", None)
After:
hats = {"bowler": Bowler(), "sombrero": Sombrero()}
fedora = hats.get("fedora")
Explanation:
When using a dictionary’s get method you can specify a default to return if
the key is not found. This defaults to None, so it is unnecessary to specify
None if this is the required behaviour. Removing the unnecessary argument
makes the code slightly shorter and clearer.
Remove unit step from range
Sourcery refactoring id: remove-unit-step-from-range
Description:
Replace range(x, y, 1) with range(x, y)
Before:
for i in range(y, len(x), 1):
do_t()
After:
for i in range(y, len(x)):
do_t()
Explanation:
The default step value for a call to range() is 1, so it is unnecessary to
explicitly define it. This refactoring removes this argument, slightly
shortening the code.
Small fixes and enhancements
- Enhance removal of redundant exception handlers to support tuples
- Improved installation instructions for VS Code
- Fix for issue where conditionals could be removed incorrectly
- Fix issues with internal tracking metrics