Ruff configuration
Previously we were using only a few of Ruff's rules. Now we use stricter checking. Check here for all rule codes.
Main changes:
- removed isort dependency since imports sorting is now handled by ruff (faster and also allows for including
__from__ future import annotations
in every file so future upgrade to newer version of Python will be easier) - now there is a check for
if TYPE_CHECKING
imports, so it is required to place them in this section (its an huge advantage since it resolves an issue with circular imports)